【信道估计】自适应滤波(LMS算法和RLS算法)逆辨识和信道辨识信道估计【含Matlab源码 3930期】

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【信道估计】基于matlab自适应滤波(LMS算法和RLS算法)逆辨识和信道辨识信道估计【含Matlab源码 3930期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab信号处理(初级版)

备注:
点击上面蓝色字体付费专栏Matlab信号处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab信号处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、部分源代码

%%%%%%%%%%%%%%%%%%%%%%%%%%方案一:LMS算法%%%%%%%%%%%%%%%%%%%%%%%%%%
%一、进行辨识或逆辨识处理
%二、发送数据为QPSK信号,分布为均匀分布,信号个数为N,前N1点为训练序列 ,后N-N1点为
%检验序列
%三、信道模型有三种h(1)h(2)h(3),所加噪声得到信噪比为SNR,信号过系统得到信号为recv
%四、自适应滤波器长度L,,W0=0,步长为u。
%五、若为辨识则进行LMMSE估计还原QPSK信号
%六、校验过程和结果展示(绘出信道模型、信道参数、学习曲线、星座图(逆辨识)示意图)
clear;clc;
%%%%%%%%%%%%%%%%%%%%%%一、选择是辨识(ID为1)或逆辨识(ID为0%%%%%%%%%%%%%%%%
ID=1;%ID为0是逆辨识,ID为1是辨识
%%%%%%%%%%%%%%%%%%%%%%二、QPSK信号产生,N=2000,N1=1000%%%%%%%%%%%%%%%%%%%%%%
N=2000;N1=1000;
SNR=50;%选择信号信噪比
Msg = 1-2.randsrc(1,2N,[0 1]);%randsrc以0.5的概率随机选择0或1
Msg_I = Msg(1:2:end);
Msg_Q = Msg(2:2:end);
Qpsk = Msg_I + jMsg_Q;%期望信号
%%%%%%%%%%%%%%%%%%%%%%三、信道模型,信号通过系统为recv%%%%%%%%%%%%%%%%%%%%%%
h=[0.04 -0.05 0.07 -0.21 -0.5 0.72 0.36 0 0.21 0.03 0.07
;0 0 0 0 0.407,0.815,0.407 0 0 0 0
;0 0 0 0.227 0.46 0.6888 0.46 0.227 0 0 0];
for loop=1:3
recv(loop,:)=conv(h(loop,:),Qpsk);
recv(loop,:)=awgn(recv(loop,:),SNR,‘measured’);
end
%%%%%%%%%%%%%%%%%%%%%%四、自适应滤波处理,分为学习过程和校验过程%%%%%%%%%%%%
L=13;
u=0.018;
wk(1,:)=zeros(1,L);
%用LMS算法迭代求最佳权值
cut=[0,4,3];%因后两个信道模型卷积关系前面补0,因此实际接收信号recv前后要截短cut长度
for loop=1:3
if ID1%根据选择是辨识或逆辨识设定期望信号D和滤波器输入信号xk
D=recv(loop,cut(loop)+L:N+cut(loop));xk1=Qpsk;
else
D=Qpsk;xk1=recv(loop,cut(loop)+1:N+cut(loop));
end
for i=1:N1-L+1%LMS算法学习过程
xk(i,:)=[xk1(i+L-1👎i)];%xk为自适应滤波器中的数据
yk(i)=xk(i,:)wk(i,:).';%输出信号
err(i)=D(i)-yk(i);
wk(i+1,:)=wk(i,:)+u
err(i)*conj(xk(i,:));%权值迭代
end
Wk=wk(i-1,:);
%%%%%%%%%%%%%%%%%%%%%% 五、LMMSE估计 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%校验过程
Xa=xk1(N1-L+2:N-(L-1));xk2=zeros(1,L);
X=zeros(1,N-N1);X = conv(Wk,Xa);err(N1-L+2:N-(L-1))=D(N1-L+2:N-(L-1))-X(L:N-N1+L-1);
X = X(1:N-N1);Wk = fliplr(Wk);
%若为辨识则由获的的Wk进行LMMSE估计
if ID
1%
H=zeros(N-N1,N-N1);
C1=2
eye(N-N1,N-N1);C2=10.^(-SNR/10)*eye(N-N1,N-N1);
for i=1:N-N1
if i<=L
H(i,1:i)=Wk(1:i);
else
H(i,i-L+1:i)=Wk;
end
end
Z=inv(inv(C1)+H.‘*inv(C2)*H)*H.’*inv(C2)*X.‘;
Err=Z.’-Xa;
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]焦明伟,贾振红,覃锡忠,李涛,赵君凯.改进LMS在低压电力线OFDM信道估计中的应用[J].计算机工程与应用. 2010,46(34)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值