当前位置: 首页 > news >正文

《通信原理》多径衰落信道仿真2

一、实验内容

1.利用改进的jakes模型来产生单径的平坦型瑞利衰落信道。

(1)创建rayleigh.m文件。

1)计算振荡器数目;

2)计算信道函数的实部;

3)计算信道函数的虚部;

4)乘归一化功率系数得到传输函数;

5)计算冲激响应函数;

(2)创建rayleigh1.m文件。

调用rayleigh.m文件计算多普勒频移分别为10Hz,20Hz,30Hz和60Hz时的信道功率。

2. 利用QPSK信号通过瑞利衰落信道后的误比特率和误符号率,并与AWGN信道下的误比特率和误符号率进行对比。

二、实验结果

1.改进的jakes模型产生瑞利衰落信道

实验一:利用改进的jakes模型来产生单径的平坦型瑞利衰落信道。

(1)实验代码

代码1:rayleigh.m文件

%利用改进的jakes模型来产生单劲的平坦型瑞利衰落信道
%通过rayleigh1.m文件来调用function [h]=rayleigh(fd,t)%fd;信道的最大多普勒频移,单位Hz。%t:信号的抽样时间序列。%h:h为输出的瑞利信道函数,是一个时间函数复序列。
N=40;   %假设的入射波数目。
wm=2*pi*fd;     %每象限的入射波数目,即振荡器数目。
N0=N/4;     %信道函数的实部。
Tc=zeros(1,length(t));  %信道函数的虚部。
Ts=zeros(1,length(t));  %归一化功率系数。
P_nor=sqrt(1/N0);   %区别各条路径的均匀分布随机相位。
theta=2*pi*rand(1,1)-pi;
for ii=1:N0alfa(ii)=(2*pi*ii-pi+theta)/N;  %第i条入射波的入射角。%对每个载波而言在(-pi,pi)之间均匀分布的随机相位fi_tc=2*pi*rand(1,1)-pi;fi_ts=2*pi*rand(1,1)-pi;%计算冲激响应函数Tc=Tc+cos(cos(alfa(ii))*wm*t+fi_tc);Ts=Ts+cos(sin(alfa(ii))*wm*t+fi_ts);
end
h=P_nor*(Tc+j*Ts);  %乘归一化功率系数得到传输函数。

代码2:rayleighchan1文件

%产生最大多普勒频移
%调用rayleigh.m文件ts=1/1000;  %信号抽样时间间隔。
t=0:ts:1;   %生成时间序列。fd=10;  %多普勒频移为10。
h1=rayleigh(fd,t);  %产生信道数据。
subplot(2,2,1);plot(20*log10(abs(h1(1:1000))),'b');
title('fd=10Hz时的信道功率曲线');
xlabel('时间','fontname','黑体','fontsize',10);ylabel('功率','fontname','黑体','fontsize',10);
grid on;fd=20;  %多普勒频移为20。
h2=rayleigh(fd,t);  %产生信道数据。
subplot(2,2,2);plot(20*log10(abs(h2(1:1000))),'r');
title('fd=20Hz时的信道功率曲线');
xlabel('时间','fontname','黑体','fontsize',10);ylabel('功率','fontname','黑体','fontsize',10);
grid on;fd=30;  %多普勒频移为30。
h3=rayleigh(fd,t);  %产生信道数据。
subplot(2,2,3);plot(20*log10(abs(h3(1:1000))),'m');
title('fd=30Hz时的信道功率曲线');
xlabel('时间','fontname','黑体','fontsize',10);ylabel('功率','fontname','黑体','fontsize',10);
grid on;fd=60;  %多普勒频移为60。
h4=rayleigh(fd,t);  %产生信道数据。
subplot(2,2,4);plot(20*log10(abs(h4(1:1000))),'g');
title('fd=60Hz时的信道功率曲线');
xlabel('时间','fontname','黑体','fontsize',10);ylabel('功率','fontname','黑体','fontsize',10);
grid on;

(2)实验结果

 2.瑞利衰落信道传输

实验二:利用QPSK信号通过瑞利衰落信道后的误比特率和误符号率,并与AWGN信道下的误比特率和误符号率进行对比。其中,多普勒频移为100Hz,经过矩形脉冲成形后的信号抽样时间间隔为1/800000s。

(1)实验代码

%QPSK在AWGN和Rayleigh下的性能
nSamp=8;    %矩形脉冲的取样点。
numSymb=10000;  %每种SNR下的传输符号数。
ts=1/(numSymb*nSamp);
t=(0:numSymb*nSamp-1)*ts;
M=4;    %QPSK的符号类型书。
SNR=-3:3;   %SNR的范围。
grayencod=[0,1,3,2];    %Gray的 编码格式。for ii=1:length(SNR);msg=randsrc(1,numSymb,[0:3]);   %产生发送信号。msg_gr=grayencod(msg+1);    %进行Gray编码影射。msg_tx=pskmod(msg_gr,M);    %QPSK调制。msg_tx=rectpulse(msg_tx,nSamp);     %产生矩形成形。h=rayleigh(10,t);   %生成瑞利衰落。msg_tx1=h.*msg_tx;  %信号通过瑞利衰落信道。msg_rx=awgn(msg_tx,SNR(ii));    %通过AWGN信道。msg_rx1=awgn(msg_tx1,SNR(ii));msg_rx_down=intdump(msg_rx,nSamp);  %匹配滤波相干解调。msg_rx_down1=intdump(msg_rx1,nSamp);msg_gr_demod=pskdemod(msg_rx_down,M);   %QPSK解调。msg_gr_demod1=pskdemod(msg_rx_down1,M);[dummy graydecod]=sort(grayencod);graydecod=graydecod-1;msg_demod=graydecod(msg_gr_demod+1);    %Gray编码逆映射。msg_demod1=graydecod(msg_gr_demod1+1);[errorBit BER(ii)]=biterr(msg,msg_demod,log2(M));   %计算BER。[errorBit1 BER1(ii)]=biterr(msg,msg_demod1,log2(M));    %计算BER1。[errorSym SER(ii)]=symerr(msg,msg_demod);     %计算SER。[errorSym SER1(ii)]=symerr(msg,msg_demod1);     %计算SER1。
endfigure;
semilogy(SNR,BER,'-bx',SNR,SER,'-ro',SNR,BER1,'-k.',SNR,SER1,'-m*','markersize',7);     %画出BER和SNR随SNR变化的曲线。
legend('AWGN信道BER','AWGN信道SER','Rayleigh衰落+AWGN信道BER','Rayleigh衰落+AWGN信道SER','fontname','黑体','location','b');
title('QPSKzai Rayleigh衰落信道下的性能','fontname','黑体','fontsize',10);
xlabel('信噪比(dN)','fontname','黑体','fontsize',10);
ylabel('误符号率和误比特率','fontname','黑体','fontsize',10);

2实验结果


http://www.taodudu.cc/news/show-4811309.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • 瑞利、莱斯与Nakagami-m信道衰落模型
  • win11音频无声音排查解决方案
  • 【最新免费】CCNA中文注释题库精选模拟题
  • 视频教程-基于深度学习的计算机视觉:原理与实践(上部)-计算机视觉
  • YOLOv5原理分析及部署教程
  • 计算机组成原理的基本知识
  • 视频教程-2021考研专业课《计算机操作系统原理》精讲视频课程-操作系统
  • 串口公头(九针)母头(九孔)对应接口(转)
  • 关于点云数据的包围盒的方法总结
  • 包围盒算法基本知识(一)
  • w ndows7显示不全面怎么办,windows7系统下cad文字显示不全怎么解决
  • SDRAM控制器说明/altera/northwest logic
  • 学习FPGA有必要写SDRAM控制器吗?
  • 无法启动 IIS express
  • gettime 函数 java,Java ZipEntry getTime()用法及代码示例
  • 在线画图工具--process
  • 分享一个好用的在线画图工具
  • 微客零工驿站v2.3.0 零工 零工驿站 零工市场
  • 情感驿站 | 什么叫跟对人,才能做对事?
  • 情感驿站 | 我有一壶酒,可以慰风尘
  • 微客零工驿站v1.1.0
  • 情感驿站 | 如果这个世界真有奇迹,那一定是努力的另一个名字
  • 情感驿站 | 人生若是修行路,红尘处处皆道场
  • 漫画驿站(安卓)
  • 情感驿站 | 为人处世的行为准则总结
  • 情感驿站 | 大城市容不下肉身,小镇上容不下灵魂
  • 情感驿站 | 大学生应该明白的事情
  • 情感驿站 | 如何构建自己的知识体系?
  • TCP远程控制系统
  • 远程控制木马偷窥者的源代码 - -兰大开源社区blog