本文主要是介绍维纳滤波LMS matlab,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LMS算法的前提是:参考输入端进入的信号与需要的信号具有相关关系;同时与纯净的有用信号相互独立。
常用在干扰相消的情况下,比如心电图信号常常会混有50Hz的噪声,需要虑除这个噪声,我就可以在参考输入的输入一个50hz的信号。即这个信号与噪声是相关的(频率一致),故可以消除噪声。而心电图信号是个宽带宽的信号,并不是集中在50hz。
% LMS算法 现代数字信号处理及其应用 4.4.4
close all
clc% 期望信号d(n)
d = zeros(1,N);
% 2抽头维纳滤波器,迭代次数为N
W = zeros(2, N);
% 2抽头维纳滤波器输入信号
u = zeros(1, N);
% 2抽头维纳滤波器输出信号,即期望信号的估计
y = zeros(1, N);
% 2抽头维纳滤波器输出误差,即y(n) - d(n)
e = zeros(1, N);
J=zeros(1,N);
% 步长
q = 0.025;
N = 1000;
% 噪音信号
v1 = sqrt(0.27)*randn(1,N);
v2 = sqrt(0.1)*randn(1,N);b1 = -0.8458;
b2 = 0.9458;
% H1:d(n) = b1 * d(n-1) + v1(n);
% H2:x(n) = b2 * x(n-1) + d(n);
% u(n) = x(n) + v2(n)
% 初始化
d(1) = b1 * 0 + v1(1);
x(1) = b2 * 0 + d(1);
u(1) = x(1) + v2(1);
% 二抽头维纳滤波输入信号u(n)
for n = 1:N-1d(n+1) = b1 * d(n) + v1(n
这篇关于维纳滤波LMS matlab的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!