LMS自适应滤波算法的 matlab实现
算法思路
1LMS算法实现步骤:
1).令起始时刻 i=0自适应滤波器的系数矢量W(0)为任意值;
2).根据输入信号矢量X(i) ,利用期望信号d(i) 和滤波器的输出信号 y(i)计算误差信号e(i);
3).根据误差信号,利用以下的递推公式 ,进行滤波器系数的更新;
4).重复步骤2)和3),直到达到平稳状态(系数W几乎保持不变)。
2.LMS算法的收敛条件:
通过引入系数误差矢量 ,整理得LMS算法的收敛条件为 :
注: λmax为输入信号的自相关矩阵 的最大特征值
子程序
function [w,e,yn] = my_LMS(xn,dn)
%% LMS实现程序
% 输入:
% xn 输入信号
% dn 理想信号
% L 迭代次数
% k 滤波器的阶数
% 输出:
% w 滤波器的系数矩阵 大小为 k×L 每一列代表一次迭代后的系数
% e 误差信号 大小为 L×1 每一行代表一次迭代后产生的误差
% yn 滤波器的输出信号 %% 参数配置
k=128; %滤波器阶数
L=length(xn); %迭代次数=输入信号长度%% 初始化
yn=zeros(1,L); %初始化滤波输出信号
yn(1:k)=xn(1:k); %初始化输出信号前k位数据,保证
w=zeros(1,k); %初始化权重
e=zeros(1,L); %初始化误差%% 求收敛常数u
fe = max(eig(xn*xn.'));%求解输入xn的自相关矩阵的最大特征值fe,A = eig(B),意为将矩阵B的特征值组成向量A
u = 2*(1/fe);%% 迭代更新滤波器的参数
for i=(k+1):L %要保证输入延时后的信号有效,所以实际的迭代次数只有(L-k)次,XN=xn((i-k+1):(i)); %将输入信号延迟,使得滤波器的每个抽头都有输入yn(i)=w*XN'; %计算出滤波器的输出e(i)=dn(i)-yn(i); %得出误差信号w=w+u*e(i)*XN; %迭代更新滤波器的系数
endend
主程序
clear;
clc;
close all;L=1024; %信号长度
a=1; %原始信号幅度
t=1:L;
dn=a*sin(0.05*pi*t);%原始正弦信号
subplot(411);plot(dn);axis([0,L,-a-1,a+1]);
title('原始信号s时域波形');
xn=awgn(dn,1); %添加信噪比5dB的白高斯噪声subplot(412);plot(xn);axis([0,L,-a-1,a+1]);
title('信号加高斯白噪声后的时域波形');[w,e,yn] = my_LMS(xn,dn);%调用滤波算法subplot(413);plot(yn);axis([0,L,-a-1,a+1]);
title('LMS算法自适应滤波后的输出时域波形');subplot(414);plot(e);axis([0,L,-a-1,a+1]);
title('LMS算法自适应滤波后与原始信号误差');
运行结果
参考文章地址
LMS自适应滤波算法的 matlab实现相关推荐
- 回声消除(AEC)原理、算法及实战——频域块LMS自适应滤波算法(FDAF)
块LMS自适应滤波算法中的线性卷积和线性相关均可以采用快速傅里叶变换(FFT)来实现.因此,块LMS自适应滤波算法的有效实现方法实际上是利用FFT算法在频域上完成滤波器系数的自适应.这样实现的块LMS ...
- 传统语音增强——最小均方(LMS)自适应滤波算法
一.语音降噪的意义 语音降噪主要研究如何利用信号处理技术消除信号中的强噪声干扰,从而提高输出信噪比以提取出有用信号的技术.消除信号中噪声污染的通常方法是让受污染的信号通过一个能抑制噪声而让信号相对不变 ...
- LMS 自适应滤波算法原理和实现(不使用自带函数库)
1.基本原理 y(n)=x(n)wTe(n)=d(n)−y(n)w(n+1)=w(n)+μe(n)x(n)\begin{aligned} &y(n)=\pmb{x}(n)\pmb{w}^T\\ ...
- 箕舌线图像怎么画matlab,一种类箕舌线函数的变步长归一化自适应滤波算法
[1] 孙慧贤, 刘建成, 崔佩璋, 等. 基于多通道最小均方算法的多发单收同车电台射频干扰对消[J]. 电子与信息学报, 2019, 41(3): 556–562. SUN Huixian, LIU ...
- 回声消除中的自适应滤波算法综述
作者:凌逆战 博客园地址:https://www.cnblogs.com/LXP-Never/p/11773190.html 自适应回声消除原理 声学回声是指扬声器播出的声音在接受者听到的同时,也通过 ...
- LMS自适应滤波器算法及其改进
-- 年初DSP课程期末设计时为了答辩做的PPT,内容背的滚瓜烂熟,给老师留下了深刻的印象,想必整个系也没有第二个人像我这么上心了,因此最后决定把PPT放到博客上:此外因为不希望PPT上有太多字,所以 ...
- Matlab自适应滤波算法 LMS小白通俗易懂版
Matlab自适应滤波算法 在学习自适应算法的过程中,入门阶段,学习了LMS算法.NLMS算法,并用Matlab对算法进行了复现. LMS 最小均方(LMS)是一种搜索算法,它通过对目标函数进行适当修 ...
- LMS自适应滤波的MATLAB实现
LMS自适应滤波的MATLAB实现 LMS自适应滤波是使输入序列(多频混合带噪语音信号)与期望输出序列(纯语音信号)之间的均方误差最小.目前,实现LMS自适应滤波的方法有很多,这里我给出几种简单,方便 ...
- 基于Matlab的自适应滤波算法及其应用
Demo1.m - adaptive filter demo 算法包括:LMS.NLMS.RLS 案例: 1.echo cancellation 音频回声消除 2.audio + white nois ...
最新文章
- notepad++ c语言编译,Notepad++編譯和運行C語言 (GCC)
- 计算机科学AP考试,AP计算机科学A和计算机原理有什么区别
- python csdn博客_GitHub - 1783955902/CSDNBlogBackup: Python实现CSDN博客的完整备份
- http?https?相对协议?
- 使用php进行后台开发,PHP后台开发用到的基础方法整理【原创】
- haproxy安装配置及haproxy+keepalived简单配置
- 获取springmvc中所有的Controller
- html布局四个正方形,分享一个css小技巧,实现给正方形的四个角设置小方块的方法...
- 华为手机android版本升级失败怎么办,华为手机系统更新好吗 华为手机系统更新方法...
- LeetCode113. 路径总和||
- 6.6 BERT家族02——sentence-BERT、BioBERT
- C#语言课程11月11日
- 拓端tecdat|R语言中的Nelson-Siegel模型在汇率预测的应用
- [高效Mac] 多显示器快速切换鼠标焦点和移动窗口
- 电脑蓝屏0x0000006B不重装系统的解决办法
- pythonhistogram设置_python numpy histogram用法及代码示例
- SQL积累 计算相除之比+% ,转型,拼接, 多个左联,求和,统计,截取等
- linux怎么查看系统环境变量路径,Linux系统中的环境变量该如何设置与查看
- 问题:现有12个外形相同的小球,只有其中一个小球质量不同(不能确定较重还是较轻),请用天平找出是哪个小球不同,而且还要找出究竟是轻是重?条件:只能称三次
- ai怎么取消颗粒效果_怎么用AI制作粒子消散效果字体?
热门文章
- Vue3 vue-cli、create-react-app、vite 创建vue/react项目(笔记)
- 最优化方法及其实现(Optimization-Algorithm)C语言
- DevExpress52 汉化
- NeurIPS论文解读|Decision Transformer: 通过序列建模解决离线强化学习问题
- win7 用软碟通装ubuntu双系统
- amos不显示路径系数原因
- 深度强化学习面试题目总结
- 笔记本/win10 缩放布局改为100% 分辨率1920x1080,任务栏右下角原有的所有图,标信息显示不出来
- Java 7 使用TWR(Try-with-resources)完成文件copy
- 什么是CUID,CRUD的操作