论文(OFDM信道估计研究)(8)

2019-04-09 18:15

signal(pilot)=[];

X3(:,pilot)=training_symbols; X3(:,signal)=X2;

%X3=cat(1,training_symbols,X2);

IFFT_modulation=zeros(symbols_per_carrier,IFFT_bin_length); IFFT_modulation(:,carriers)=X3;

%IFFT_modulation(:,conjugate_carriers)=conj(X3); X4=ifft(IFFT_modulation,IFFT_bin_length,2); %X5=X4.';

%加保护间隔(循环前缀) for k=1:symbols_per_carrier; for i=1:IFFT_bin_length; X6(k,i+GI)=X4(k,i); end

for i=1:GI;

X6(k,i)=X4(k,i+IFFT_bin_length-GI); end end

%--------------------------------------------------------- %并串转换

X7=reshape(X6.',1,symbols_per_carrier*(IFFT_bin_length+GI)); %------------------------------------------- %信道模型:带多普勒频移的瑞利衰落信道 fd=100; %多普勒频移 r=6; %多径数

a=[0.123 0.3 0.4 0.5 0.7 0.8]; %多径的幅度 d=[2 3 4 5 9 13]; %各径的延迟 T=1; %系统采样周期

th=[90 0 72 144 216 288]*pi./180;%相移 h=zeros(1,carrier_count);

32

hh=[]; for k=1:r

Tta=[zeros(1,d(k)-1),1,zeros(1,carrier_count-d(k))]; h1=a(k)*exp(j*((2*pi*T*fd*d(k)/carrier_count))); %h1=a(k)*exp(j*((2*pi*T*fd*d(k)/carrier_count))); hh=[hh,h1]; end h(d+1)=hh;

%noise=randn(1,length(X7))+j.*randn(1,length(X7)); %-------------------------------------------------------- channel1=zeros(size(X7));

channel1(1+d(1):length(X7))=hh(1)*X7(1:length(X7)-d(1)); channel2=zeros(size(X7));

channel2(1+d(2):length(X7))=hh(2)*X7(1:length(X7)-d(2)); channel3=zeros(size(X7));

channel3(1+d(3):length(X7))=hh(3)*X7(1:length(X7)-d(3)); channel4=zeros(size(X7));

channel4(1+d(4):length(X7))=hh(4)*X7(1:length(X7)-d(4)); channel5=zeros(size(X7));

channel5(1+d(5):length(X7))=hh(5)*X7(1:length(X7)-d(5)); channel6=zeros(size(X7));

channel6(1+d(6):length(X7))=hh(6)*X7(1:length(X7)-d(6)); %--------------------------------------------------------------- Tx_data=X7+channel1+channel2+channel3+channel4;

%---------------------------------------------------------------- %加高斯白噪声

Error_ber=[];%误比特率 Error_ber1=[];

Error_ber2=[];%误比特率 Error_ber3=[];

33

%Error_ser=[];%误符号率 for snr_db=0:snr:N_snr code_power=0;

code_power=[norm(Tx_data)]^2/(length(Tx_data));%信号的符号功率 %bit_power=var(Tx_data);

bit_power=code_power/bits_per_symbol;%比特功率

noise_power=10*log10((bit_power/(10^(snr_db/10))));%噪声功率 noise=wgn(1,length(Tx_data),noise_power,'complex');%产生GAUSS白噪声信号

Y7=Tx_data+noise;

%------------------------------------------------------- %串并变换

Y6=reshape(Y7,IFFT_bin_length+GI,symbols_per_carrier).';

%去保护间隔

for k=1:symbols_per_carrier; for i=1:IFFT_bin_length; Y5(k,i)=Y6(k,i+GI); end end

Y4=fft(Y5,IFFT_bin_length,2); Y3=Y4(:,carriers);

%------------------------------------------------------------- %LS信道估计 H=[];

Y2=Y3(:,signal);

Rx_training_symbols=Y3(:,pilot);

Rx_training_symbol0=reshape(Rx_training_symbol,symbols_per_carrier*Np,1); training_symbol0=reshape(training_symbols,1,symbols_per_carrier*Np); training_symbol1=diag(training_symbol0);

34

%disp(training_symbols)

training_symbol2=inv(training_symbol1); %信道冲激响应

Hls=training_symbol2*Rx_training_symbols0; Hls1=reshape(Hls,symbols_per_carrier,Np); HLs=[]; HLs1=[];

if ceil(carrier_count/LI)==carrier_count/LI for k=1:Np-1 HLs2=[]; for t=1:LI

HLs1(:,1)=(Hls1(:,k+1)-Hls1(:,k))*(t-1)./LI+Hls1(:,k); HLs2=[HLs2,HLs1]; end

HLs=[HLs,HLs2]; end else

for k=1:Np-2 HLs2=[]; for t=1:LI

HLs1(:,1)=(Hls1(:,k+1)-Hls1(:,k))*(t-1)./LI+Hls1(:,k); HLs2=[HLs2,HLs1]; end

HLs=[HLs,HLs2]; end HLs3=[];

for t=1:mod(carrier_count,LI)

HLs1(:,1)=(Hls1(:,Np)-Hls1(:,Np-1))*(t-1)./LI+Hls1(:,Np-1); HLs3=[HLs3,HLs1]; end;

35

HLs=[HLs,HLs3]; end

%Hls1=Hls.';

%H=repmat(Hls1,symbols_per_carrier,1);%将导频扩展成symbols_per_carrier*carrier_count矩阵 Y1=Y2./HLs;

%------------------------------------------------------------- %并串变换

YY=reshape(Y2.',1,N_number/bits_per_symbol); YY1=reshape(Y1.',1,N_number/bits_per_symbol);

%------------------------------------------------------------ %QPSK解调

y_real=sign(real(YY)); y_image=sign(imag(YY)); y_re=y_real./sqrt(2); y_im=y_image./sqrt(2); y_real1=sign(real(YY1)); y_image1=sign(imag(YY1)); y_re1=y_real1./sqrt(2); y_im1=y_image1./sqrt(2); r00=[]; r01=[]; r10=[]; r11=[];

for k=1:length(y_real);

r00=[r00,[y_real(k),y_image(k)]]; end;

for k=1:length(y_real1);

r10=[r10,[y_real1(k),y_image1(k)]]; end;

36


论文(OFDM信道估计研究)(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016—2017学年度第一学期渡马乡中学九(2)班语文教学工作总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: