資源簡介
OFDM系統的matlab實現,包括插入導頻信號和循環前綴
代碼片段和文件信息
%load?carrier_demod_out.mat;
%load?matrix_h.mat;
%?main_encode;
clc
clear?all;
close?all;
%
c=6;?????????%?子載波個數
bits=126;??????%?每個信道的比特數
nl=c*bits;???????%?總的傳送比特數
nbitpersym??=6;???%?number?of?bits?per?OFDM?symbol?(same?as?the?number?of?subcarriers?for?BPSK)
nsym????????=?126;?%?number?of?symbols
len_fft?????=?9;???%?fft?size
sub_car?????=?6;???%?number?of?data?subcarriers
EbNo????????=?0:0.5:5;
EsNo=?EbNo?+?10*log10(6/9)+?10*log10(6/14);?%?symbol?to?noise?ratio
snr=?EsNo?-?10*log10(9/14);?%?snr?as?to?be?used?by?awgn?fn
snr=0:0.5:5;
for?z=1:length(snr)
s=round(rand(1504));
[xyuanHs]=generate_h();
???????????%信噪比
err=zeros(1length(snr));??%誤碼率
for?yy=1:1000
m=252;
n=756;
%encode;??????????????
j=3;??????????%列重
k=9;??????????%行重
%
M?=?modem.pskmod(2);?%?modulation?object
encode_out?=?modulate(Mxyuan);
%
%save?encode_out?encode_out
%?
s?=?reshape(encode_outbitsc);????????%?串并變換
%?pilot?insertion
pilot_ins_data=[zeros(nsym1)?s(:[1:nbitpersym/2])?zeros(nsym1)?s(:[nbitpersym/2+1:nbitpersym])?zeros(nsym1)]?;
%?fourier?transform?time?doamain?data?and?normalizing?the?data
IFFT_data?=?(9/sqrt(6))*ifft(fftshift(pilot_ins_data.‘)).‘;
%?addition?cyclic?prefix
cylic_add_data?=?[IFFT_data(:[5:9])?IFFT_data].‘;
%并串變換
transmit=reshape(cylic_add_data?1nsym*14);
%?
h=rayleighchan(1/1000010);
changain1=filter(hones(1nsym*14));
a=max(max(abs(changain1)));
changain1=changain1./a;
chan_data?=?changain1.*transmit;
?
?????Es=1;
?r=(n-m)/n;
M=1;
Eb=Es/(r*M);
chan_awgn?=?awgn(chan_datasnr(z)‘measured‘);?%?awgn?addition?%加噪聲
chan_awgn?=a*?chan_awgn./changain1;?%?assuming?ideal?channel?estimation
sigma?=?sqrt(Eb/(2*(10^(snr(z)/10))));
?%ryuan?=?transmit?+?sigma?*?randn(1length(transmit));
%chan?=?rayleighchan(1/10000100);
%ryuan=filter(chanencode_out);
%
???
???%?ryuan?=?awgn(transmitsnr(z)‘measured‘);;%串并變換
???rec?=?reshape(chan_awgn14nsym).‘;?%?serial?to?parallel?coversion
cyclic_pre_rem?=?rec(:[6:14]);???%cyclic?prefix?removal
???FFT_recdata?=(sqrt(6)/9)*fftshift(fft(cyclic_pre_rem.‘)).‘;????%?freq?domain?transform
%??FFT_recdata?=?FFT_recdata./FFT_recdata1;
rem_pilot?=?FFT_recdata?(:[6+[1:nbitpersym/2]?3+[nbitpersym/2+1:nbitpersym]?]);?%pilot?removal
rdout=?reshape(rem_pilot.‘1nbitpersym*nsym);??%?serial?coversion?
?
???
?????q=modem.pskdemod(2);?%demodulation?object
???????demod_Data?=?demodulate(qrdout);??%demodulating?the?data
????%rdata=sign(real(uncarry));
????%rdata=sign(real(demod_Data));?
?????%num(t)=biterr(rdata+1s+1)/n;
????
????
%
liezhong=j;
hangzhong=k;
hanglieH=size(H);
hangH=hanglieH(1);??????????????%H矩陣的行數
lieH=hanglieH(2);???????????????%H矩陣的列數
ncol=zeros(liezhonglieH);??????%存儲每一列非零元“1”所在的行
nrow=zeros(hangHhangzhong);????%存儲每一行非零元“1”所在的列
lie1wei=find(H);
for?a=1:lieH
????for?b=1:liezhong
????????ncol(ba)=(lie1wei((a-1)*liezhong+b)-(a-1)*hangH);
????end
end
hang1wei=find
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3573??2013-05-21?15:37??OFDM_CP.m
-----------?---------??----------?-----??----
?????????????????3573????????????????????1
- 上一篇:遺傳-偏最小二乘回歸算法
- 下一篇:支持向量機預測風速
評論
共有 條評論