课程设计项目名称:瑞利衰落信道的影响及空间分集

题目1描述

考察衰落的影响:M=1,采用QPSK调制;得到在AWGN和瑞利信道下的误比特率性能曲线(横坐标为符号信噪比Eb/N0,单位为dB;纵坐标为误符号率),并与相应的理论曲线比较。

仿真(考察分集技术的性能提升):M取其它值时(如2、4、6),采用不同分集合并(选择式SC、最大值MRC、等增益EGC)时,误比特率性能,并与M=1时的曲线比较。

比较AWGN和瑞利信道对于误码率的影响:保持瑞利的平均信噪比和AWGN信道的信噪比相同。

系统设置

三种合并方式都假设

(1)每一支路的噪声与信号不相关,噪声均值为零,具有恒定均方根值;
(2)信号幅度的衰落速率远低于信号的最低调制频率;
(3)各支路信号的衰落互不相关,彼此独立。

仿真代码

瑞利衰落与高斯信道对于误码率的影响

仿真代码

clear all

L_frame=100; N_packet=5000;

SNRdBs=[0:30];

for i_SNR=1:length(SNRdBs)

SNRdB=SNRdBs(i_SNR);

sigma=sqrt(0.5/(10^(SNRdB/10)));

for i_packet=1:N_packet

symbol_data1=randi([0 1],L_frame*2,1);

[temp,sym_tab]=modulator(symbol_data1.');

X=temp.'; % frlg=length(X), X为调制后的信号序列

Hr=(randn(L_frame,1)+1i*randn(L_frame,1))/sqrt(2);%Rayleigh Channel

Ha=randn(L_frame,1); %AWGN channel

Z1=0;

R1=Hr.*X+ sigma*(randn(L_frame,1)+1i*randn(L_frame,1));

Z1=Z1+R1.*conj(Hr);

R2=X+sigma*Ha;

for m=1:4

d1(:,m)=abs(Z1-sym_tab(m)).^2; %最大似然译码

d2(:,m)=abs(R2-sym_tab(m)).^2;

end

[y1,i1] = min(d1,[],2);

Xd=sym_tab(i1).';

[y2,i2]=min(d2,[],2);

Xa=sym_tab(i2).';

temp1 = X>0; temp2 = Xd>0; temp3=Xa>0;

noeb_p1(i_packet)=sum(sum(temp1~=temp2));

noeb_p2(i_packet)=sum(sum(temp1~=temp3));

end

BER1(i_SNR)=sum(noeb_p1)/(N_packet*L_frame*2);

BER2(i_SNR)=sum(noeb_p2)/(N_packet*L_frame*2);

SNRw=10^(SNRdB/10);

BER3(i_SNR)=1/2*erfc(sqrt(SNRw));%theoretical BER in AWGN channel

BER4(i_SNR)=1/2*(1-sqrt(SNRw/(1+SNRw)));

end

semilogy(SNRdBs,BER1,'-rx'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0])

semilogy(SNRdBs,BER2,'-ro'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0])

semilogy(SNRdBs,BER3,'-^'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0])

semilogy(SNRdBs,BER4,'-g*'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0])

title('BER perfoemancde of AWGN and Rayleigh channel'), xlabel('SNR[dB]'), ylabel('BER')

grid on, set(gca,'fontsize',9)

legend('Rayleigh practice','AWGN theoretical','Rayleigh theoretical')

结果图:

 

分析:

在相同情况下,瑞利信道相比于高斯信道对于信号传输的影响更大;

随着信噪比的增大,高斯信道和瑞利信道下的误码率都降低;

相同信噪比时,高斯信道和瑞利信道的实际误码率比理论值偏低;

第二张图是优化之后的在AWGN信道下的无码分析

选择式合并

clear, clf

L_frame=100; N_packet=5000;

SNRdBs=[0:20];

for iter=1:4 %选择几分集

if iter==1, NT=1; NR=1; gs='-kx'; % 11

elseif iter==2, NT=1; NR=2; gs='-^'; % 12

elseif iter==3, NT=1; NR=4; gs='-ro'; % 14

else  iter==4,NT==1; NR=8; gs='-g*'; % 18

end

sq_NT=sqrt(NT);

for i_SNR=1:length(SNRdBs)

SNRdB=SNRdBs(i_SNR);

sigma=sqrt(0.5/(10^(SNRdB/10)));

for i_packet=1:N_packet

symbol_data=randi([0 1],L_frame*2,NT);

[temp,sym_tab]=modulator(symbol_data.');

X=temp.'; % frlg=length(X);

Hr = (randn(L_frame,NR)+1i*randn(L_frame,NR))/sqrt(2);

H = reshape(Hr,L_frame,NR);

Habs = sum(abs(H).^2,2);

Z=0;

for i=1:NR

R(:,i) = sum(H(:,i).*X,2)+sigma*(randn(L_frame,1)+j*randn(L_frame,1));

[z,index]=max(abs(R),[],2);

end

for e=1:100

a(e,1)=R(e,index(e,1));

end

for u=1:100

Z(u,1)=a(u,1)./H(u,index(u,1));

end

for m=1:4

d1(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+(-1+sum(Habs,2))*abs(sym_tab(m))^2;

end

[y1,i1] = min(d1,[],2);

Xd=sym_tab(i1).';

temp1 = X>0; temp2 = Xd>0;

noeb_p(i_packet)=sum(sum(temp1~=temp2));

end

BER(iter,i_SNR) = sum(noeb_p)/(N_packet*L_frame*2);

end% end of FOR loop for SNR

semilogy(SNRdBs,BER(iter,:),gs), hold on, axis([SNRdBs([1 end]) 1e-6 1e0])

end

title('BER perfoemancde of SEL Scheme'), xlabel('SNR[dB]'), ylabel('BER')

grid on, set(gca,'fontsize',9)

legend('SISO','SEL (Tx:1,Rx:2)','SEL (Tx:1,Rx:4)','SEL (Tx:1,Rx:8)')

等增益合并

clear all

L_frame=100; N_packet=5000;

SNRdBs=[0:20];

for iter=1:4 %选择几分集

if iter==1, NT=1; NR=1; gs='-kx'; % 11

elseif iter==2, NT=1; NR=2; gs='-^'; % 12

elseif iter==3, NT=1; NR=4; gs='-ro'; % 14

else  iter==4,NT==1; NR=8; gs='-g*'; % 18

end

for i_SNR=1:length(SNRdBs)

SNRdB=SNRdBs(i_SNR);

sigma=sqrt(0.5/(10^(SNRdB/10)));

for i_packet=1:N_packet

symbol_data=randi([0 1],L_frame*2,NT);

[temp,sym_tab]=modulator(symbol_data.');

X=temp.'; % frlg=length(X);

Hr = (randn(L_frame,NR)+1i*randn(L_frame,NR))/sqrt(2);

H = reshape(Hr,L_frame,NR);

Habs = sum(abs(H).^2,2);

Z=0;

for i=1:NR

R(:,i) = sum(H(:,i).*X,2)+sigma*(randn(L_frame,1)+j*randn(L_frame,1));

Z = Z + R(:,i).*(conj(H(:,i))./abs(H(:,i)));

end

for m=1:4

d1(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+(-1+sum(Habs,2))*abs(sym_tab(m))^2;

end

[y1,i1] = min(d1,[],2);

Xd=sym_tab(i1).';

temp1 = X>0; temp2 = Xd>0;

noeb_p(i_packet)=sum(sum(temp1~=temp2));

end

BER(iter,i_SNR) = sum(noeb_p)/(N_packet*L_frame*2);

end% end of FOR loop for SNR

semilogy(SNRdBs,BER(iter,:),gs), hold on, axis([SNRdBs([1 end]) 1e-6 1e0])

end

title('BER perfoemancde of EGC Scheme'), xlabel('SNR[dB]'), ylabel('BER')

grid on, set(gca,'fontsize',9)

legend('SISO','EGC (Tx:1,Rx:2)','EGC(Tx:1,Rx:4)','EGC(Tx:1,Rx:8)')

最大值合并

clear, clf

L_frame=1000; N_packet=5000;

SNRdBs=[0:20];

for iter=1:4 %选择几分集

if iter==1, NT=1; NR=1; gs='-kx'; % 11

elseif iter==2, NT=1; NR=2; gs='-^'; % 12

elseif iter==3, NT=1; NR=4; gs='-ro'; % 14

else  iter==4,NT==1; NR=8; gs='-g*'; % 18

end

sq_NT=sqrt(NT);

for i_SNR=1:length(SNRdBs)

SNRdB=SNRdBs(i_SNR);

sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差

for i_packet=1:N_packet

symbol_data=randi([0 1],L_frame*2,NT); %产生L_frame*2行NT列二进制信息

[temp,sym_tab]=modulator(symbol_data.');

X=temp.'; % frlg=length(X);

Hr = (randn(L_frame,NR)+1i*randn(L_frame,NR))/sqrt(2);

H = reshape(Hr,L_frame,NR);

Habs = sum(abs(H).^2,2);

Z=0;

for i=1:NR

R(:,i) = sum(H(:,i).*X,2)+sigma*(randn(L_frame,1)+j*randn(L_frame,1));%经过信道并加复高斯白噪声

Z = Z + R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))

end

for m=1:4  %最大似然译码

d1(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+(-1+sum(Habs,2))*abs(sym_tab(m))^2;

end

[y1,i1] = min(d1,[],2);

Xd=sym_tab(i1).';

temp1 = X>0; temp2 = Xd>0;

noeb_p(i_packet)=sum(sum(temp1~=temp2)); %累加错误比特

end

BER(iter,i_SNR) = sum(noeb_p)/(N_packet*L_frame*2); %计算误比特率

end% end of FOR loop for SNR

semilogy(SNRdBs,BER(iter,:),gs), hold on, axis([SNRdBs([1 end]) 1e-6 1e0])

end

title('BER perfoemancde of MRC Scheme'), xlabel('SNR[dB]'), ylabel('BER')

grid on, set(gca,'fontsize',9)

legend('SISO','MRC (Tx:1,Rx:2)','MRC (Tx:1,Rx:4)','MRC (Tx:1,Rx:8)')

仿真图

选择式合并

分析:

QPSK在AWGN中的误比特率公式:

γb:平均比特信噪比

在瑞利信道中的误比特率公式:

瑞利信道,MRC合并,分集为M,QPSK的误比特率公式:

由图可以看出,在保证相同的信噪比情况下,所需支路的平均信噪比在下降,意味着分集技术可以降低对接收信号的功率的要求。

例如要求误码率为10^-2,没有分集时,要求信噪比为2.01,M=2时,信噪比即降为1.49;(理论上没有分集的信噪比为二重分集的1.5倍)

等增益合并

实现方式较为简单,合并器的各个加权系数均为1,同样比较误码率为10^-2,M=2时信噪比为1.41,比选择式合并小,(理论上,没有分集时的信噪比为M=2时的1.78倍,较为吻合)

最大比值合并

它要求把各个支路信号加权后合并,即第k支路的加权系数和该支路信号幅度rk成正比,这样实现的电路复杂,在比较误码率为10^-2,M=2时,信噪比为1.34,明显比其他两种要好。

仿真分析

综上分析:信噪比的改善随着分级数目的增加而增加,但是随着M的继续增加,改善速率放慢,特别是选择式合并,电路复杂程度也增加。

在三种合并方式中,最大比值合并改善最多,其次是等增益合并,最差的是选择性合并,这是因为选择式合并之利用了其中一个信号,其他的信号没有被利用,前两者的各支路信号的能量都被利用。

选择性合并、等增益、最大比值相关推荐

  1. git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用

    优质文章,第一时间送达! 来源:机器之心 git merge.git rebase.git reset.git revert.git fetch.git pull.git reflog--你知道这些 ...

  2. idea如何选择性合并其他分支的代码

    将项目map-sub切换到develop-rwms研发分支,并更新到最新代码版本: 选择idea上方的vcs -> Browse vcs Repository -> Show git re ...

  3. git如何选择性合并_Git分支合并选择

    用Git进行多人协作开发时,必然会合并代码,解决冲突.然而合并代码也是需要点技巧的,如果对一些关键命令没有理解去使用的话,git的版本演进路线就会变得很乱,从而造成了日后维护的一些麻烦. Git上合并 ...

  4. WCDMA基本概念总结

    Reference: http://www.mscbsc.com/bbs/thread-202970-1-1.html 概念 解释 UMTS频段划分 FDD 上行:1920-1980MHz:下行:21 ...

  5. git版本回退及代码合并

    1.查看提交日志 git log 2.命令行查看分支: git branch -l :查看本地分支 git branch -r :查看远程分支 git branch -a :查看全部分支(远程的和本地 ...

  6. NC65合并报表如何取消上报并退回以及注意事项和相关问题总结

    NC65合并报表如何取消上报并退回? 在[企业绩效管理]-[合并报表]-[合并]-[合并执行]节点中,点击[数据中心]按钮,在弹出的[合并报表数据中心]界面中,点击[报送管理]-[合并方案请求退回], ...

  7. 移动通信基础知识学习笔记

    1. 移动通信的基本特点 移动通信是无线的:通信的信道是空间中电磁波. 移动通信是移动的:用户位置是在变化的,因此要求动态寻址. 2. 模拟通信系统与数字通信系统 模拟通信系统:是指在信道上把模拟信号 ...

  8. 选择分集matlab程序,无线通信分集技术matlab仿真.doc

    无线通信分集技术matlab仿真 现给出最大比合并(MRC).等增益合并(EGC)和选择性合并的分集合并程序,理解各程序,完成以下习题.将程序运行结果及各题目的解答写入word中: 1. 用matla ...

  9. MySQL数据库知识点

    基本概念 数据库管理系统(DBMS):用于数据的存储. 检索.管理和处理的数据库软件 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件).区分于DBMS(数据库管理系统), ...

最新文章

  1. torch.nn.LogSoftmax()与输入具有相同尺寸和形状的张量,其值在[-inf,0)范围内
  2. 蚂蚁金服自研的OceanBase升级到2.0了,据说性能……
  3. MySQL DDL操作--------外键最佳实战
  4. oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制
  5. python pandas for循环_python – 将一个for循环应用于Pandas中的多个DataFrame
  6. 业务id转密文短链的一种实现思路
  7. python集合类型是一种具体的数据类型_Python3基础语法之集合类型
  8. 【Python开发】Python 适合大数据量的处理吗?
  9. delve 调试带参数_带你学够浪:Go语言基础系列-环境配置和 Hello world
  10. [Swift通天遁地]五、高级扩展-(11)图像加载Loading动画效果的自定义和缓存
  11. .net mysql和php mysql数据库连接_浅谈PHP连接MySQL数据库的三种方式
  12. java实现kotlin接口_Kotlin 接口与 Java8 新特性接口详解
  13. java之pdf打印
  14. 2022.3.6总结非线性系统线性化方法,第五章
  15. Python学习笔记(15)-Python代码转换为exe可执行程序详解
  16. 青春、情动、永恒的经典——岩井俊二
  17. 移动硬盘安装ubuntu20.04.5(重装无数次的一个教程)
  18. 2.3软件测试与软件开发的关系
  19. 数据结构思维导图——Java版
  20. [收藏]POSIX标准

热门文章

  1. 有什么能在网上挣钱的项目啊?做自媒体靠谱吗?
  2. 计算机科学家尼.沃思,瑞士计算机科学家尼·沃思曾经说过,计算机科学就是研究_______的学问。...
  3. mac系统使用wireshark抓取无线网卡数据包以及常用过滤条件
  4. 华为 两条线路负载均衡_华为无线AP4050DN接入点高可靠性,高安全性!
  5. Android轮播图原理思路分析+实现方案
  6. python项目--餐厅订单数据分析
  7. 27岁女生零基础转行学软件测试,来的及吗,我陷入了迷茫......
  8. Scrum板与Kanban如何抉择?敏捷工具:plcbpb板与按照kjuaoxnu
  9. 生活篇之工资和年终奖的纳税
  10. linux远程工具怎么设置网,xshell远程工具怎么设置?xshell设置为中文的教程