基于matlab的OFDM信号调制解调与多径传输Word文档格式.docx
- 文档编号:22663628
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:16
- 大小:251.31KB
基于matlab的OFDM信号调制解调与多径传输Word文档格式.docx
《基于matlab的OFDM信号调制解调与多径传输Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于matlab的OFDM信号调制解调与多径传输Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
10、信道估计:
在此实验中是利用多径时延信道进行信息传送的,因此信号在信道中传输的过程中会出现多径时延,多普勒频移等现象,所以接收到的信号会产生严重的失真,但是如果我们知道信道对信号的影响,在接收端对信号进行恢复,从而减弱甚至抵消信道对信号的影响。
本实验中使用基于LS算法的信道估计。
11、16QAM解调:
在实验中利用deqam.m(自己编的)子函数进行16QAM解调。
二、仿真结果
1、产生的发送序列:
随机产生的0—1序列,总数为25600个,此处只画出它的前50个值;
图1
2、经过符号的星座映射后产生的星座图:
该实验中使用16QAM进行数字调制;
图2
3、发送信号:
图3
4、接收信号:
信号在信道中传输,不仅会受到噪声的影响,还会产生多径时延、多普勒频移等现象,所以信号会出现严重的失真;
图4
5、信道估计后信号的星座图:
图5
图6
6、接收序列:
所得的接收序列应该也是一个长度为25600的0—1序列,此处只画出它的前50个值;
图7
多径时延信道对信号的一个重要影响就是会使信号产生多径时延,如图8、9、10分别列出了最大时延为16、33和41个数据单位时信道估计后的信号的矢量图;
图8
图9
图10
从图8、9、10可以看出,随着最大时延的增大,信道估计后的信号的矢量图的离散性越来越大。
所以说最大时延和误码率有关。
图11
以上所涉及的都是4-pathRayleighFadingchannel,下图是多径的条数和系统误码率的关系;
图12
从图12可以看出,在相同的信噪比下,随着信道多径条数的增大,系统的误码率也随之增大。
当信道多径的条数一定时,系统的误码率随着信噪比的增大而减小。
下面分析系统误码率和信噪比的关系(以多径条数为4为例)
图13、14和15分别给出了当系统的信噪比为20,15,10dB时,信道估计后的信号的矢量图;
图13
图14
图15
从图13、14、15可以看出,随着系统信噪比的减小,信道估计后的信号与发送信号的区别越来越大。
下图为基于4-pathRayleighFadingchannel的系统的信噪比和误码率的关系;
图16
附:
本次实验用到的程序
clc;
clearall;
rand('
state'
4);
SNR=15;
%信噪比取值,单位为db
fl=128;
%fft的长度
Ns=50;
%设置一个帧结构中OFDM信号的个数
para=128;
%设置并行传输的子载波个数
sr=250000;
%设置符号速率
br=sr*2;
%设置每个子载波的比特率
gl=32;
%设置保护时隙的长度
an=[1,0.7,0.3,0.5];
%每条多径的幅度增益
%tn=[0,1,2,3];
%每条路径的相对时延,单位为us
wn=rand(1,4).*10;
%每条路径的多普勒频移
%an=rand(1,4)*2;
tn=fix(rand(1,4)*0);
%wn=round(rand(1,4)*10);
sita=rand(1,4).*2*pi;
%设置相偏
%************信源发生器****************************************
signal=round(rand(1,para*Ns*4));
figure
(1);
stem(signal(1:
50));
title('
产生的序列'
);
%*************16QAM调制***********************************
x1=qam(signal);
x=reshape(x1,para,Ns);
figure
(2);
plot(x,'
o'
产生的复信号的星座图'
%***************加入训练序列*******************************************
training_symbols=qam(round(rand(1,para*4)));
training_symbols=training_symbols'
;
training_symbols_2=cat(2,training_symbols,training_symbols);
training_symbols_4=cat(2,training_symbols_2,training_symbols_2);
training_symbols_8=cat(2,training_symbols_4,training_symbols_4);
x=cat(2,training_symbols_8,x);
%**********************IFFT****************************************
y=ifft(x);
ich2=real(y);
qch2=imag(y);
%**************插入循环前缀************
ich3=[ich2(fl-gl+1:
fl,:
ich2];
qch3=[qch2(fl-gl+1:
qch2];
ich4=reshape(ich3,1,(fl+gl)*(Ns+8));
qch4=reshape(qch3,1,(fl+gl)*(Ns+8));
Trdata=ich4+qch4.*sqrt(-1);
%形成复数发射数据
%***************************加入噪声***********************************
Trdata_power=var(Trdata)+mean(Trdata)*mean(Trdata);
linear_SNR=10^(SNR/10);
noise_sigma=Trdata_power/linear_SNR;
noise_factor=sqrt(noise_sigma);
noise=randn(1,length(Trdata))*noise_factor;
redata=Trdata+noise;
%redata=Trdata;
figure(3)
plot(redata,'
加入噪声的发送信号'
%****************************建立信道***************************************
%*******得到信道的响应函数,然后令输入信号和信道响应做卷积得到输出信号
q=0:
max(tn);
h=zeros(4,max(tn)+1);
forp=1:
4
h(p,:
)=an(p).*exp(sqrt(-1).*(wn(p).*q)).*exp(sqrt(-1)*sita(p)).*(dirac(q-tn(p))>
1);
end
h=sum(h);
s2=conv(redata,h);
s3=s2(1:
length(redata));
figure(4)
plot(s3,'
接收信号'
)
%***********************接收端,去掉循环前缀,fft***********
idata=real(s3);
qdata=imag(s3);
idata1=reshape(idata,fl+gl,Ns+8);
qdata1=reshape(qdata,fl+gl,Ns+8);
idata2=idata1(gl+1:
gl+fl,:
qdata2=qdata1(gl+1:
Rx_data=idata2+qdata2*sqrt(-1);
Rx_carriers=fft(Rx_data);
Rx_training_symbols=Rx_carriers(:
(1:
8));
Rx_carriers=Rx_carriers(:
(9:
(Ns+8)));
%************************信道估计*******************
training_symbols=cat(2,training_symbols,training_symbols);
Rx_training_symbols=Rx_training_symbols./training_symbols;
Rx_training_symbols_deno=Rx_training_symbols.^2;
Rx_training_symbols_deno=Rx_training_symbols_deno(:
1)+Rx_training_symbols_deno(:
2)+Rx_training_symbols_deno(:
3)+Rx_training_symbols_deno(:
4)+Rx_training_symbols_deno(:
5)+Rx_training_symbols_deno(:
6)+Rx_training_symbols_deno(:
7)+Rx_training_symbols_deno(:
8);
Rx_training_symbols_nume=Rx_training_symbols(:
1)+Rx_training_symbols(:
2)+Rx_training_symbols(:
3)+Rx_training_symbols(:
4)+Rx_training_symbols(:
5)+Rx_training_symbols(:
6)+Rx_training_symbols(:
7)+Rx_training_symbols(:
%Rx_training_symbols_nume=conj(Rx_training_symbols_nume);
Rx_training_symbols=Rx_training_symbols_nume./Rx_training_symbols_deno;
Rx_training_symbols2=cat(2,Rx_training_symbols,Rx_training_symbols);
Rx_training_symbols4=cat(2,Rx_training_symbols2,Rx_training_symbols2);
Rx_training_symbols8=cat(2,Rx_training_symbols4,Rx_training_symbols4);
Rx_training_symbols16=cat(2,Rx_training_symbols8,Rx_training_symbols8);
Rx_training_symbols32=cat(2,Rx_training_symbols16,Rx_training_symbols16);
Rx_training_symbols48=cat(2,Rx_training_symbols32,Rx_training_symbols16);
Rx_training_symbols50=cat(2,Rx_training_symbols48,Rx_training_symbols2);
Rx_carriers=Rx_training_symbols50.*Rx_carriers;
%**********进行傅里叶变换****************
ry=reshape(Rx_carriers,1,para*Ns);
figure(5);
plot(ry,'
经过fft之后的信号矢量图'
%*************************16QAM解调************************************
resignal=deqam(ry);
figure(6)
stem(resignal(1:
50),'
k'
holdon
r'
接收到的序列'
[wumageshu,wumalv]=biterr(signal,resignal);
wumageshu
wumalv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab OFDM 信号 调制 解调 传输