资源描述:
《通信原理课程设计--连续信道的仿真》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、通信原理课程设计报告设计题目连续信道的仿真摘要本次课程设计介绍了移动通信信道的基本理论,对移动通信中的衰减信道,如线性非时变信道、多径时变信道和多径非时变信道进行了分析和建模,并讨论了随参信道和恒参信道的传输特性以及对传输信号的影响。在此基础上通过MATLAB仿真软件使信号经幅频失真信道、相频失真信道和多径信道后得到输出的波形和频谱。通过MATLAB搭建仿真平台,对线性非时变信道、多径时变信道和多径非时变信道的基本方法进行了研究,就幅频响应和相频响应的变化为出发点,对比输入与输出信号波形以分析总结。就幅频响应而言,是否是常数,输
2、入信号经过信道后,频率分量衰减如何变化,输出信号是否有幅度失真。就信道的相频响应而言,相频响应是否是,信号经过信道后的时延性如何变化,输出信号是否产生相位失真。一、课程设计的目的与意义(1)理解连续信道建模仿真的原理及实验流程(2)掌握matlab连续信道建模仿真编程并理解语句含义(3)输出仿真图像并分析其幅频响应的变化二、课程设计的内容(一)、线性非时变信道1、线性非时变信道的定义发送信号经过一个线性非时变系统图1线性非时变信道模型(1)信道的频率响应函数为(2)其中是信道的幅频响应,是相频响应。当幅频响应不是常数时,输入信号
3、经过信道后,不同的频率分量衰减不同,输出信号有幅度失真。当信道的相频响应时,信号经过信道后的时延不同,信道输出信号产生相位失真,称为信道的时延性。2、线性非时变信道的建模仿真输入信号:,其中,。经过的信道:(1)(2);(3)当时,,当时,。(相位失真信道);(4)3、MATLAB程序实现:%信道失真示意clearall;%清除了所有的变量,包括全局变量closeall;%关闭所有窗口Ts=1;N_sample=8;%每个码元的抽样点数dt=Ts/N_sample;%抽样时间间隔N=1000;%码元数t=0:dt:(N*N_sa
4、mple-1)*dt;gt1=ones(1,N_sample);%NRZ非归零波形数组产生1行8列的权1矩阵d=(sign(randn(1,N))+1)/2;%产生一行1000个随机数data=sigexpand(d,N_sample);%对序列间隔插入N_sample-1个0st1=conv(data,gt1);%卷积后长度为8000+8-1xt=st1;%无失真信道[f,xf]=T2F(t,xt);傅里叶变换hf1=exp(-j*pi*f);无失真函数yf1=xf.*hf1;[t1,yt1]=F2T(f,yf1);%幅频失真
5、信道hf2=sinc(f).*exp(-j*pi*f);yf2=xf.*hf2;[t2,yt2]=F2T(f,yf2);%相频失真、群时延无失真信道f1=find(f<0);hf3=exp(-j*pi*f+j*pi);当f》0时的情况hf3(f1)=exp(-j*pi*f(f1)-j*pi);f《0时的函数yf3=xf.*hf3;[t3,yt3]=F2T(f,yf3);频域时域转换foriii=1:8007iff(iii)>=0uu(iii)=f(iii)-1;elseiff(iii)<0uu(iii)=f(iii)+1;end
6、endend%相频、群时延失真信道hf4=exp(-j*pi*f.*f-j*pi*f+j*pi);yf4=xf.*hf4;[t4,yt4]=F2T(f,yf4);figure(1)subplot(2,2,1)plotyy(f,abs(hf1),f,pi*f);ylabel('幅频、相频特性');%plot(f,abs(hf1));ylabel('幅频、相频特性');title('线性无失真信道');gridon;subplot(2,2,2)%plot(f,angle(hf1)/pi);ylabel('幅频、相频特性');plot
7、(t1,real(yt1));title('经过信道后的输出信号');axis([0,20,-1.21.2]);gridon;subplot(223)plotyy(f,abs(hf2),f,pi*f);ylabel('幅频、相频特性');title('幅频失真信道');gridon;xlabel('f')subplot(224)plot(t2,real(yt2));axis([0,20,-1.21.2]);gridon;xlabel('t');figure(2)subplot(221);plotyy(f,abs(hf3),f,u
8、u);ylabel('幅频、相频特性');title('相频失真、群时延无失真信道');gridon;subplot(222);plot(t3,real(yt3));title('经过信道后的输出信号');axis([0,20,-1.21.2]);gridon;