%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%LMS自适应滤波器性能分析

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear

clc

close all

%%%%%%%%%%%%%%参数设置%%%%%%%%%%%%%%%%%%%%%%%

w=3;

% step_len=0.075;%步长

step_len=0.05;%步长

variance_v=0.01;%方差

repeat_times=20;%重复次数

iteration_times=500;%迭代次数

filt_len=2;%滤波器长度

delay=fix(filt_len/2)-1;

delay1=1;

%%%%%%%%%%%%%%%%%%%%变量及数组初始化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Chan_factor=(1+cos(2*pi*([1:1:3]-2)/w))/2

Square_err=zeros(repeat_times,iteration_times);

% Chan_factor1=[-0.195 0.95]

Chan_factor1=[-0.195 0.95]

X=zeros(filt_len,1);

W1=[];

W2=[];

Wm1=[repeat_times,iteration_times];

Wm2=[repeat_times,iteration_times];

%%%%%%%%%%%%%外循环,重复做repeat_timws次实验,平均值%%%%%%%%%%%%%%%%

for loop1=1:repeat_times%循环次数

%%%%%%%%%%%%%%内循环变量及数组初始化%%%%%%%%%%%%%%%%%%%%%%%%

Source=zeros(iteration_times,1);

W=zeros(filt_len,1);

%%%%%%%%%%%%%内循环,做iteration_times次迭代%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for i=1:iteration_times

%%%%%%%%%%%%%%信源,产生等概率分布的正负1%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if rand<0.5

Source(i)=-1;

else

Source(i)=1;

end

end

%%%%%%%%%%%%%%信道,滤波和加噪声%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Revdata=filter(Chan_factor1,1,Source)+randn(iteration_times,1)*sqrt(variance_v);

%  Revdata=filter(Chan_factor,1,Source)+randn(iteration_times,1)*sqrt(variance_v);

%    Revdata=filter(Chan_factor1,1,Source);

% RT=filter(Chan_factor1,1,Source);

%%%%%%%%%%%%%%均衡器,基于LMS算法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for loop2=1:iteration_times-filt_len+1

%         U=Revdata(loop2:loop2+filt_len-1);

%          y(n)=W'*U=W'*x(n),U=x(n)=输入

%          d为输出

U=Source(loop2:loop2+filt_len-1);

d=Revdata(loop2+1);

%         d=Source(loop2+delay);

%         X= x(3)=v(3)-a1*x(2)-a2*x(1);

%           d=RT(loop2+delay1);

%         Y(loop2)=W'*U;

e=d-W'*U;

%         e=d-W'*U;

W=W+step_len*U*e;

Wm1(loop2,loop1)=W(1);

Wm2(loop2,loop1)=W(2);

%         W1(loop2)=W(1);

%         W2(loop2)=W(2);

Square_err(loop1,loop2)=e.^2;

end

end

%%%%%%%%%%%%%%作图,显示结果%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Square_err_mean=sum(Square_err(:,:))/repeat_times;

% Wm2

W1=Wm1(:,repeat_times);

W2=Wm2(:,repeat_times);

meanW1=mean(Wm1');

meanW2=mean(Wm2');

Square_err;

%semilogy(Square_err_mean);

figure(1);

plot(Square_err_mean);

hold on;

plot(Square_err(1,:),'r');

legend('20次重复试验平均误差','单次误差');

xlabel('迭代次数');

ylabel('均方误差');

title('步长为0.075,500次迭代均方误差变化曲线');

grid on;

hold on;

figure(2);

plot(W1);

hold on;

plot(W2,'r');

hold on;

plot(meanW1,'k');

hold on;

plot(meanW2,'--k');

legend('W1','W2','20次重复试验W1','20次重复试验W2');

xlabel('迭代次数');

ylabel('抽头权值');

title('步长为0.075,500次迭代权值学习曲线');

grid on;

lms算法的matlab实现,Matlab LMS 算法和 RLS 算法实现相关推荐

  1. GOB算法matlab,智能天线赋形EBB算法和GOB算法比较

    EBB算法和GOB算法比较 目前智能天线的赋形算法主要有以下两种: 一.GOB(Grid Of Beam)算法(又称波束扫描法):它是基于参数模型(利用信道的空域参数)的算法,使基站实现下行指向性发射 ...

  2. 【算法篇-字符串匹配算法】BF算法和KMP算法

    目录 前言 1. BF算法 1.1 画图分析 1.3 BF 算法的时间复杂度 2. KMP 算法 2.1 KMP 算法和 BF 算法 的区别 2.1.1 为什么主串不回退? 2. 2 next 数组 ...

  3. 多目标跟踪算法中之图匹配——匈牙利算法和KM算法详解

    目录 一.匈牙利算法 1.算法背景及思想 2.最大匹配 3.最优匹配/完美匹配 4.增广路径 5.代码实现 6.匈牙利算法总结 6.1.深度优先 6.2. 广度优先 二.KM算法思想及局限性 代码示例 ...

  4. matlab 牛顿 科特斯的代码,SIMP算法和BESO算法的关键技术研究

    摘要: 各项正交惩罚材料变密度法(SIMP算法)和双向渐进结构优化方法(BESO算法)是目前结构拓扑优化领域中应用较为广泛的两种算法.以SIMP算法和BESO算法为研究对象,通过算例分析了其各自的特性 ...

  5. 【Java数据结构与算法】第二十章 Dijkstra算法和Floyd算法

    第二十章 Dijkstra算法和Floyd算法 文章目录 第二十章 Dijkstra算法和Floyd算法 一.Dijkstra算法 1.介绍 2.代码实现 二.Floyd算法 1.介绍 2.代码实现 ...

  6. matlab实现prim算法,Prim算法和Kruskal算法的Matlab实现

    Prim算法和Kruskal算法的Matlab实现 <计算机仿真>期末大作业 Prim算法和Kruskal算法的Matlab实现 05605刘禹050697(30) 连线问题应用举例: 欲 ...

  7. rls算法matlab实现,第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现.PDF

    第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现 第 5章 基于 RLS算法的数据预测与 第5章 基于RLS算法的数据预测与MATLAB实现 MATLAB实现 RLS 1795 递归最 ...

  8. BF算法和KMP算法

    给定两个字符串S和T,在主串S中查找子串T的过程称为串匹配(string matching,也称模式匹配),T称为模式.这里将介绍处理串匹配问题的两种算法,BF算法和KMP算法. BF算法 (暴力匹配 ...

  9. Algorithm:C++语言实现之字符串相关算法(字符串的循环左移、字符串的全排列、带有同个字符的全排列、串匹配问题的BF算法和KMP算法)

    Algorithm:C++语言实现之字符串相关算法(字符串的循环左移.字符串的全排列.带有同个字符的全排列.串匹配问题的BF算法和KMP算法) 目录 一.字符串的算法 1.字符串的循环左移 2.字符串 ...

最新文章

  1. [C#][EF] 添加表添加不进来
  2. C++中给二维指针分配内存
  3. 提权 调试权限 OpenProcess 拒绝访问的解决办法
  4. 高级concurrent包
  5. HDU 6155 Subsequence Count(矩阵乘法+线段树+基础DP)
  6. (五)深度学习和ResNet50的COVID-19诊断结果
  7. 万条留言!这本Python凭啥火爆程序员的朋友圈?
  8. 最最牛的SQL客户端软件
  9. JavaScript 封装对象与强制类型转换
  10. archive.php 不起作用,PHP ZipArchive在Laravel中不起作用
  11. nginx反向代理打印日志_Nginx 反向代理 log 显示真IP地址
  12. Panel的基本用法
  13. mpeg怎么转换成mp4?
  14. win7计算机名怎么是感叹号,Win7连接wifi信号后出现感叹号三种原因和解决方法
  15. 【自然语言处理】【多模态】CLIP:从自然语言监督中学习可迁移视觉模型
  16. html网页多人聊天,html5+js+.Net的即时多人聊天
  17. 模态分解算法 EMD、EEMD、CEEMD
  18. 包装印刷行业裕同集团易普优APS项目顺利验收!
  19. Zuul多路径访问时报404问题
  20. 诺顿,扯你妈家的柴鸡蛋

热门文章

  1. 物 理 学 简 介(一)
  2. 并发编程常见面试题Synchronized 相 关 问 题
  3. 最大公约数与最小公倍数的C语言实现
  4. python_安居客区域房源均价工具(matplotlib)
  5. ChinaSoft 论坛巡礼 | NASAC 青年软件创新奖论坛
  6. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记 - 索引
  7. 给一个数组[a1,a2,a3....an],要求出令ai-aj有最大值,其中i<=j,时间复杂度尽可能小 ```
  8. 地球半径约多少米多少千米
  9. 闽高校计算机二级c语言模拟器,闽高校计算机二级C语言练习题.doc
  10. NAT ALG DNS — DNS在内部,外网通过域名访问内部服务器