%%%%%%LMS算法子程序%%%%%%%%%
function MSD = LMS_1(x,h,mu1,SNR,Loop)
%% 参数
N = length(x); % 信号长度
M = length(h); % 信道阶数
L = N - M + 1; % 迭代次数
%% 经过信道后的信号(没有加噪声)
y = filter(h,1,x);
%% 蒙特卡洛仿真
MSD = zeros(1,L); %生成一个1行L列的元素全为零矩阵MSD
for ii = 1:Loop
%% 理想系统的期望输出(在信号y中加入高斯白噪声)
d = awgn(y,SNR,'measured'); %函数将在加入噪声之前测定信号强度
%% 输出期望响应d
d = d(M:end); %提取d矩阵的第M个到结束元素
%% 均衡器初始化
w = zeros(M,1); %生成一个M行一列的元素全为零矩阵w
%% 迭代过程
for kk = 1:L
%% 当前时刻数据矩阵
x_n = x(kk + M - 1:-1:kk); %x_n(1)=x(kk+M),x_n(2)=x(kk+M-1)...
d_n = d(kk);
%% 误差向量
e = d_n - x_n'*w;
%% 更新权向量APA(K)
% w = w + mu1*x_n/(x_n'*x_n)*e; % 归一化LMS(NLMS)
w = w + mu1*x_n*e; % LMS
%% MSD
MSD(kk) = MSD(kk) + norm(h - w)^2/norm(h)^2/Loop; % norm(h):h的转置矩阵与矩阵A的积的最大特征根的平方根值
end
end
end
%%%%%%%%%%%%%%%主程序%%%%%%%%%%%%%%%
ccc;
%% 参数
M = 8; % 信道阶数
N = 10e3; % 数据长度
x = randn(N,1); % 数据
mu1 = [0.1, 0.01, 0.001]; % 步长
Loop = 1e1; % 蒙特卡洛仿真次数
SNR = 30; % 期望信号实际测量噪声信噪比
%% 可选信道
h = rand(M,1); % system to be identified
h = h/norm(h); % normalize channel
%% LMS算法
MSD1 = LMS_1(x,h,mu1(1),SNR,Loop);
MSD2 = LMS_1(x,h,mu1(2),SNR,Loop);
MSD3 = LMS_1(x,h,mu1(3),SNR,Loop);
%% 画图
figure;
plot(1:size(MSD1,2),10*log10(MSD1),'b');
hold on;
plot(1:size(MSD2,2),10*log10(MSD2),'r');
hold on;
plot(1:size(MSD3,2),10*log10(MSD3),'k');
hold off;
legend(['(a)LMS(\it\mu=\rm',num2str(mu1(1)),')'],...
['(b)LMS(\it\mu=\rm',num2str(mu1(2)),')'],...
['(c)LMS(\it\mu=\rm',num2str(mu1(3)),')']);
xlabel('iterations');
ylabel('NMSD(dB)');
grid on;
lms.zip_LMS步长_lms
版权申诉
194 浏览量
2022-07-15
17:59:05
上传
评论
收藏 1KB ZIP 举报
JaniceLu
- 粉丝: 85
- 资源: 1万+
最新资源
- 使用FFT算法对一个信号进行分析.rar
- 171cms游戏应用下载系统源码.zip
- 基于jsp+servlet+mysql蛋糕甜品店购物网站源码+数据库(期末大作业).zip
- Java项目:在线蛋糕商城系统(java+jsp+mysql)源码+数据库+期末大作业.zip
- ZapyaClient10_7-1.apk
- 织梦cms站长导航网站源码.zip
- 基于SSM+MySQL的网络投票调查问卷系统源码+数据库(java期末大作业).zip
- 基于jsp+servlet的宠物商城网站系统源码+数据库(java期末大作业).zip
- 基于Python+Tensorflow实现声纹识别+源代码+文档说明.zip
- java-leetcode题解之第112题路径总和.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0