维纳滤波最陡下降法 matlab仿真

来源:互联网 发布:linux中cd命令 编辑:程序博客网 时间:2024/05/22 15:56


% 最陡下降算法仿真实例 现代数字信号处理及其应用 4.3.4close all clc% 模拟产生输入随机序列u(n)% 迭代步长 0.02q = 0.02;N = 1000;% 2抽头维纳滤波器,迭代次数为NW = zeros(2, N);R = [1.0997 0.4997; 0.4997 1.0997]% 其中D为特征值构成的对角阵,特征向量为V[V, D] = eig(R)%通过上式求出最大特征值是1.5994,u < 2/1.5994 = 1.2505%所以u如果大于1.25,迭代次数越多,并不会使Jmin收敛。%反之,u小于1.25,相对来说迭代越多,Jmin越收敛,并且u越小,收敛越慢。p = [0.5270 -0.4458]'%期望信号d(n)的平均功率或方差var_d = 0.9486%w(n+1) = w(n) + u[p - Rw(n)]%J(w(n)) = σd^2 - p'w(n)for n = 1 : N - 1    W(:, n+1) = W(:, n) + q * (p - R * W(:, n));    J(n) = var_d - p'* W(:, n);endJmin = J(n)figuren=1 : N;  plot(n,W(1, :),n,W(2, :))figuren=1 : N;  plot(n, J(n))




原创粉丝点击