您现在的位置:首页 >> 通信 >> 内容

m最小二乘法自适应均衡误码率仿真,对比LS,DEF以及LMMSE三种均衡算法误码率

时间:2022/12/13 17:05:46 点击:

  核心提示:01-139m包含操作录像,参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5mbm55q

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

       信道估计是通信系统接收机的重要功能模块,主要是用来估计信号所经历信道的冲击响应,并用于后续的信道均衡处理,以便消除多径信号混叠造成的ISI。

       信道估计的方法有很多种,大体上可分为两类,一类是基于训练序列的信道估计,而另一类是信道的盲估计(自适应估计),其估计过程不依赖已知信息。常见通信系统的信道估计,绝大部分是基于训练序列的估计方法,这里面最最常用的两个信道估计算法就是LS算法和MMSE算法。LS是最小二乘、MMSE是最小均方误差,它们都是所谓的最优化准则,即得到最优信道估计所遵循的准则,有时也被称为代价函数。

       均衡技术是对码间干扰进行适当处理,以补偿信道畸变的技术。通常把采用均衡技术来补偿码间干扰的处理器称为均衡器。设计了一种采用递归最小二乘的自适应算法的均衡滤波器,仿真结果显示均衡器可以降低码间干扰,降低误码率。

        这种方法的原理就是在发射数据符号外,还需要发射前导(Preamble)或导频(pilot)信号;如最小二乘LS、最小均方误差MMSE等基于训练序列的信道估计算法被广泛应用于信道估计;

4.部分源码

for j=1:length(SNR_in_dB)

    j

    %通过既有码间干扰又有白噪声信道

    [y,len,h] = func_channel(info,SNR_in_dB(j));

    %初始误码统计数

    numoferr1=0;     

    %从第len个码元开始为真实信号码元 

    for i=len+1:N+len  

        decis = 2*[y(i)>=0]-1;      

        %判断是否误码,统计误码码元个数 

        if decis~=info(i-5)                          

           numoferr1=numoferr1+1;          

        end;     

    end;      

    %未经均衡器均衡,得到的误码率 

    Pe1(j)=numoferr1/N;   

    

    %LS均衡,参考文献

    %https://wenku.baidu.com/view/3fb6f52f195f312b3069a5a6.html

    Order = 5;

    z     = func_LS(y,info,Order);

    %初始误码统计数

    numoferr2=0;     

    %从第len个码元开始为真实信号码元 

    for i=1:N   

        decis(i) = 2*[z(i+Order)>=0]-1;      

        %判断是否误码,统计误码码元个数 

        if decis(i)~=info(i)                          

           numoferr2=numoferr2+1;          

        end;     

    end;      

    Pe2(j)=numoferr2/N;

 

    %DEF均衡

    z     = func_DEF(y(6:length(info)+5),info,h);

    decis = [2*[z>=0]-1]; 

    %初始误码统计数

    numoferr3=0;     

    %从第len个码元开始为真实信号码元 

    for i=1:N   

        if decis(i)~=info(i)                          

           numoferr3=numoferr3+1;          

        end;     

    end;      

    Pe3(j)=numoferr3/N;

 

    %LMMSE均衡

    z     = func_LMMSE(y,h,SNR_in_dB(j));

    decis = [2*[z>=0]-1]'; 

    %初始误码统计数

    numoferr4=0;     

    %从第len个码元开始为真实信号码元 

    for i=1:N-5    

        if decis(i+5)~=info(i)                          

           numoferr4=numoferr4+1;          

        end;     

    end;      

    Pe4(j)=numoferr4/N; 

end;  

figure;

semilogy(SNR_in_dB,Pe1,'red*-');

hold on; 

semilogy(SNR_in_dB,Pe2,'b-s');

hold on; 

semilogy(SNR_in_dB,Pe3,'k--','linewidth',2);

hold on; 

semilogy(SNR_in_dB,Pe4,'m->','linewidth',2);

grid on

legend('无均衡器','LS均衡器','DEF均衡器','LMMSE均衡器');

xlabel('SNR(dB)');

ylabel('error');

01-139m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168