来源:matlab帮助文件 %%LeakageFactor) w + (StepSize) u*sgn(Re(e)), for sign LMS %%(LeakageFactor) w + (StepSize) sgn(Re(u)) Re(e), for signed regressor LMS %%(LeakageFactor) w + (StepSize) sgn(Re(u)) sgn(Re(e)), for sign-sign LM 这是三种符号LMS算法的权值迭代公式,在程序里只需要选择对应的迭代公式进行权值更新即可 程序如下: %% SIGNLMS算法 实数基带系统仿真程序 % 功能:实数基带系统SIGNLMS均衡算法仿真-->BER\MSE指标 % 编写:李振兴 % E-Mail:lizhenxing@126.com % Tel: % 任何问题以及错误欢迎通过邮箱交流 %%LeakageFactor) w + (StepSize) u*sgn(Re(e)), for sign LMS %%(LeakageFactor) w + (StepSize) sgn(Re(u)) Re(e), for signed regressor LMS %%(LeakageFactor) w + (StepSize) sgn(Re(u)) sgn(Re(e)), for sign-sign LM clc clear all close all hidden %% 初始化参数设置(用户可根据需要修改此处参数) nFrame = 1; % 仿真发送的帧数(可作为蒙特卡洛仿真次数) nPacket = 2500; % 每帧的发送的数据点数 step = 0.01; % 学习步长 dB = 25; % 信噪比 e = zeros(1,nPacket); % 瞬时计算误差 E = zeros(1,nPacket); % 统计均方误差(为平滑用) h = [0.18,0.3,1,0.18]; %ISI信道参数 h = h/norm(h); nW = 25; % 均衡器阶数 leakfactor = 0.99; % 注意:当帧数nFrame不等于1的时候不要绘制星座图! % nFrame根据需要可以适当设置,只要使得MSE曲线足够平滑就可以 % 均衡器阶数对结果影响较大,这里给出的是经过实验的最佳阶数 % 学习步长不宜设置过大 %% 算法实现过程 LP = nPacket-nW; % 移掉几个数据避免负或零下标 X = zeros(nW+1,LP); % 组织均衡器输入矩阵 % 循环开始(迭代次数=nFrame*nPacket) for kk = 1:nFrame % 此处修改蒙特卡洛次数 W = zeros(nW+1,1); sX = round(rand(1,nPacket))*2-1; % BPSK 或 2PAM 信号 % scatterplot(sX); % nFrame=1时调试用 rX = filter(h,1,sX); % 通过信道 % scatterplot(rX); % nFrame=1时调试用 vn = randn(1,nPacket); % 产生噪声数据 vn = vn/norm(vn)*10^(-dB/20)*norm(rX); % 根据信噪比调整噪声功率 SNR = 20*log10(norm(rX)/norm(vn)); % 计算SNR rX = rX+vn; % 接收信号 XX = sign(rX); [num,rate] = symerr(XX,sX) % 计算均衡前的误码 % scatterplot(rX); % nFrame=1时调试用 for i=1:LP X(:,i)=rX(i+nW:-1:i).'; end % 开始均衡器参数调整 for i = 1:LP e(i) = W'*X(:,i)-sX(i); % LMS代价函数 % W = leakfactor*W - step*2*sign(e(i))*X(:,i); % SIGNLMS迭代算法 % W = leakfactor*W - step*2*e(i)*sign(X(:,i)); W = leakfactor*W - step*2*sign(e(i))*sign(X(:,i)); E(i) = E(i)+e(i)^2; end % 计算误码 rEx = W'*X; % 均衡后信号 % scatterplot(rEx) % nFrame=1时调试用 sDx = sign(rEx); % 判决信号 sErX = sDx-sX(1:length(sDx)); % 寻找误码 BER=length(find(sErX~=0))/length(sErX) end % 平滑误差 semilogy(E/nFrame) 转自:http://blog.sina.com.cn/s/blog_5def5a660100ic2g.html |
GMT+8, 2024-5-10 03:36 , Processed in 0.045910 second(s), 22 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.