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

m软件接收机中同步技术以及LMS-RLS自适应均衡技术的matlab仿真

时间:2022/12/14 19:31:03 点击:

  核心提示:01_150m包含仿真录像和参考文献...

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

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

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

点击店铺

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

2.部分仿真图预览




3.算法概述

        自适应均衡属于自适应信号处理的应用范畴,各种各样的自适应均衡算法如迫零(ZF)算法、最小均方(LMS)算法、递归最小二乘(RLS)算法、变换域均衡算法、Bussgang算法、高阶或循环统计量算法、基于非线性滤波器或神经网络的均衡算法等应运而生。均衡器通常工作在接收机的基带或中频信号部分,基带信号的复包络含有信道带宽信号的全部信息,所以,均衡器通常在基带信号完成估计信道冲激响应和解调输出信号中实现自适应算法等,本文选择了两种典型的自适应算法:以LMS自适应均衡器和RLS自适应均衡器为基础,用MATLAB仿真软件对LMS和RLS两种算法进行仿真,比较并分析了两种算法的性能。

4.部分源码

clc;

clear;

close all;

warning off;

pack;

rng(2);

%产生QAM基带信号

%二进制数据长度

N      = 10000;      

 %传送的有效数据长度

N_data = N;             

M      = 32;

for i = 1:N

    x(i) = 1 + floor(M*rand);

end

qam_sig = func_32QAM(x);

sybol1  = qam_sig(:,1);

sybol2  = qam_sig(:,2);

figure;

subplot(221);

plot(sybol1,sybol2,'b.');

axis([-7,7,-7,7]);

%成型滤波器

Fs   = 2000;         

T    = 2/Fs;           

t    =-5*T:1/Fs:5*T;   

t    = t+0.00001; 

alfa = 0.4;

p    = rcosfir(alfa,[-5,5],Fs*T,1000,'sqrt');

%%%%%%%%%%%%%%%%%%%%%基带成形

%I路成形

n    = length(sybol1);     % Number of symbols

r    = T*Fs;               % Oversampling factor 

pams1= zeros(size(1:r*n));

pams1(1:r:r*n)=sybol1;     % Pulse sequence

ynI  = filter(p,1,pams1);  % Pulse shaping filtering

%Q路成形

pams2= zeros(size(1:r*n));

pams2(1:r:r*n)=sybol2;     % Pulse sequence

ynQ  = filter(p,1,pams2);  % Pulse shaping filtering

%正交调制

yn0  = ynQ+ynI*j;

%星座图

subplot(222);

plot(ynQ,ynI,'b.');

axis([-7,7,-7,7]);

%%

%信道模型

SNR= 20;

H  = [0.47,0.8,0.6];%信道参数

yn = filter(H/sum(H),1,yn0);

%加入噪声

yn = awgn(yn,SNR); 

%接收初步滤波处理

H1    = fir1(7,0.5); 

yn    = filter(H1,1,yn);

%基带等效正解解调

r_ynQ = real(yn);

r_ynI = imag(yn);

%由于时延固定取常数 

delay       = 1; 

re_I        = r_ynI(delay);

re_Q        = r_ynQ(delay);

for i=1:(N/4-delay)

   re_I=[re_I,r_ynI(i*2+delay)];

   re_Q=[re_Q,r_ynQ(i*2+delay)];

end

%LMS均衡

uu          = 0.005;

Lens        = 1024;

%I路均衡

Order       = 18;

W           = zeros(size(1:Order+1)).';   

Start       = 1;

%取前Lens个数据作为训练序列

Ref(1:Lens) = sybol1(1:Lens);    

for i=Start+1:Lens-Order/2

    rk           = flipud(re_I(i:i+Order).');  

    Err(i-Start) = Ref(i-Start+Order/2) - W.'*rk;

    W            = W + uu*Err(i-Start)*rk;

end

%均衡

re_I        = filter(W,1,re_I);         

%Q路均衡

W           = zeros(size(1:Order+1)).';  

Ref(1:Lens) = sybol2(1:Lens);%取前512个数据作为训练序列

for i=Start+1:Lens-Order/2

    rk           = flipud(re_Q(i:i+Order).'); % Received signal vector

    Err(i-Start) = Ref(i-Start+Order/2)-W.'*rk; % Error signal, we use the symbol sequence known in

    W            = W+uu*Err(i-Start)*rk;

end

%均衡

re_Q        = filter(W,1,re_Q);  %对re_Q进行均衡

subplot(223);

s=re_I*j+re_Q;

plot(re_I,re_Q,'b.');

title('均衡后信号星座图(20db)');

axis([-7,7,-7,7]);

%%

%信道模型

SNR= 10;

H  = [0.47,0.8,0.6];%信道参数

yn = filter(H/sum(H),1,yn0);

%加入噪声

yn = awgn(yn,SNR); 

%接收初步滤波处理

H1    = fir1(7,0.5); 

yn    = filter(H1,1,yn);

%基带等效正解解调

r_ynQ = real(yn);

r_ynI = imag(yn);

%由于时延固定取常数 

delay       = 1; 

re_I        = r_ynI(delay);

re_Q        = r_ynQ(delay);

for i=1:(N/4-delay)

   re_I=[re_I,r_ynI(i*2+delay)];

   re_Q=[re_Q,r_ynQ(i*2+delay)];

end

%LMS均衡

uu          = 0.005;

Lens        = 1024;

%I路均衡

Order       = 18;

W           = zeros(size(1:Order+1)).';   

Start       = 1;

%取前Lens个数据作为训练序列

Ref(1:Lens) = sybol1(1:Lens);    

for i=Start+1:Lens-Order/2

    rk           = flipud(re_I(i:i+Order).');  

    Err(i-Start) = Ref(i-Start+Order/2) - W.'*rk;

    W            = W + uu*Err(i-Start)*rk;

end

%均衡

re_I        = filter(W,1,re_I);         

%Q路均衡

W           = zeros(size(1:Order+1)).';  

Ref(1:Lens) = sybol2(1:Lens);%取前512个数据作为训练序列

for i=Start+1:Lens-Order/2

    rk           = flipud(re_Q(i:i+Order).'); % Received signal vector

    Err(i-Start) = Ref(i-Start+Order/2)-W.'*rk; % Error signal, we use the symbol sequence known in

    W            = W+uu*Err(i-Start)*rk;

end

%均衡

re_Q        = filter(W,1,re_Q);  %对re_Q进行均衡

subplot(224);

s=re_I*j+re_Q;

plot(re_I,re_Q,'b.');

title('均衡后信号星座图(10db)');

axis([-7,7,-7,7]);

01_150m

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