lms算法的matlab实现,Matlab LMS 算法和 RLS 算法实现
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%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 算法实现相关推荐
- GOB算法matlab,智能天线赋形EBB算法和GOB算法比较
EBB算法和GOB算法比较 目前智能天线的赋形算法主要有以下两种: 一.GOB(Grid Of Beam)算法(又称波束扫描法):它是基于参数模型(利用信道的空域参数)的算法,使基站实现下行指向性发射 ...
- 【算法篇-字符串匹配算法】BF算法和KMP算法
目录 前言 1. BF算法 1.1 画图分析 1.3 BF 算法的时间复杂度 2. KMP 算法 2.1 KMP 算法和 BF 算法 的区别 2.1.1 为什么主串不回退? 2. 2 next 数组 ...
- 多目标跟踪算法中之图匹配——匈牙利算法和KM算法详解
目录 一.匈牙利算法 1.算法背景及思想 2.最大匹配 3.最优匹配/完美匹配 4.增广路径 5.代码实现 6.匈牙利算法总结 6.1.深度优先 6.2. 广度优先 二.KM算法思想及局限性 代码示例 ...
- matlab 牛顿 科特斯的代码,SIMP算法和BESO算法的关键技术研究
摘要: 各项正交惩罚材料变密度法(SIMP算法)和双向渐进结构优化方法(BESO算法)是目前结构拓扑优化领域中应用较为广泛的两种算法.以SIMP算法和BESO算法为研究对象,通过算例分析了其各自的特性 ...
- 【Java数据结构与算法】第二十章 Dijkstra算法和Floyd算法
第二十章 Dijkstra算法和Floyd算法 文章目录 第二十章 Dijkstra算法和Floyd算法 一.Dijkstra算法 1.介绍 2.代码实现 二.Floyd算法 1.介绍 2.代码实现 ...
- matlab实现prim算法,Prim算法和Kruskal算法的Matlab实现
Prim算法和Kruskal算法的Matlab实现 <计算机仿真>期末大作业 Prim算法和Kruskal算法的Matlab实现 05605刘禹050697(30) 连线问题应用举例: 欲 ...
- rls算法matlab实现,第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现.PDF
第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现 第 5章 基于 RLS算法的数据预测与 第5章 基于RLS算法的数据预测与MATLAB实现 MATLAB实现 RLS 1795 递归最 ...
- BF算法和KMP算法
给定两个字符串S和T,在主串S中查找子串T的过程称为串匹配(string matching,也称模式匹配),T称为模式.这里将介绍处理串匹配问题的两种算法,BF算法和KMP算法. BF算法 (暴力匹配 ...
- Algorithm:C++语言实现之字符串相关算法(字符串的循环左移、字符串的全排列、带有同个字符的全排列、串匹配问题的BF算法和KMP算法)
Algorithm:C++语言实现之字符串相关算法(字符串的循环左移.字符串的全排列.带有同个字符的全排列.串匹配问题的BF算法和KMP算法) 目录 一.字符串的算法 1.字符串的循环左移 2.字符串 ...
最新文章
- [C#][EF] 添加表添加不进来
- C++中给二维指针分配内存
- 提权 调试权限 OpenProcess 拒绝访问的解决办法
- 高级concurrent包
- HDU 6155 Subsequence Count(矩阵乘法+线段树+基础DP)
- (五)深度学习和ResNet50的COVID-19诊断结果
- 万条留言!这本Python凭啥火爆程序员的朋友圈?
- 最最牛的SQL客户端软件
- JavaScript 封装对象与强制类型转换
- archive.php 不起作用,PHP ZipArchive在Laravel中不起作用
- nginx反向代理打印日志_Nginx 反向代理 log 显示真IP地址
- Panel的基本用法
- mpeg怎么转换成mp4?
- win7计算机名怎么是感叹号,Win7连接wifi信号后出现感叹号三种原因和解决方法
- 【自然语言处理】【多模态】CLIP:从自然语言监督中学习可迁移视觉模型
- html网页多人聊天,html5+js+.Net的即时多人聊天
- 模态分解算法 EMD、EEMD、CEEMD
- 包装印刷行业裕同集团易普优APS项目顺利验收!
- Zuul多路径访问时报404问题
- 诺顿,扯你妈家的柴鸡蛋
热门文章
- 物 理 学 简 介(一)
- 并发编程常见面试题Synchronized 相 关 问 题
- 最大公约数与最小公倍数的C语言实现
- python_安居客区域房源均价工具(matplotlib)
- ChinaSoft 论坛巡礼 | NASAC 青年软件创新奖论坛
- 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记 - 索引
- 给一个数组[a1,a2,a3....an],要求出令ai-aj有最大值,其中i<=j,时间复杂度尽可能小 ```
- 地球半径约多少米多少千米
- 闽高校计算机二级c语言模拟器,闽高校计算机二级C语言练习题.doc
- NAT ALG DNS — DNS在内部,外网通过域名访问内部服务器