资源描述
一、实验题目
维纳滤波器的设计 (结维纳霍夫方程,最小的均方误差)
维纳-霍夫方程矩阵形式
已知期望信号与观测数据的互相关函数及观测数据的自相关函数
二、实验要求:
设计一维纳滤波器。
(1) 产生三组观测数据,首先根据产生信号,将其加噪(信噪比分别为),得到观测数据。
(2) 估计,的模型参数。X(n)=w(n)+…+bw(n-q)假设信号长度为,模型阶数为,分析实验结果,并讨论改变,对实验结果的影响。
三、实验原理:
维纳滤波器设计的任务就是选择,使其输出信号与期望信号误差的均方值最小,实质是解维纳-霍夫方程。
假设滤波系统是一个线性时不变系统,它的和输入信号都是复函数,
设 n=0,1,…
考虑系统的因果性,可得到滤波器的输出
n=0,1,…
设期望信号d(n),误差信号及其均方误差分别为
要使均方误差为最小,需满足:
由上式可以推导得到
上式说明,均方误差达到最小值的充要条件是误差信号与任一进入估计的输入信号正交,这就是正交性原理。
将展开,得
k=0,1,…
对两边取共轭,并利用相关函数的性质,得
k=0,1,…
此式称为维纳-霍夫(Wiener-Hopf)方程。解此方程可得到最优权系数…,此式是Wiener滤波器的一般方程,根据权系数是有限个还是无限个可以分别设计IIR型和FIR型Wiener滤波器,本实验中采用的是FIR滤波器。
是一个长度为M的因果序列(即是一个长度为M的FIR滤波器)时,维纳-霍夫方程表述为
k=0,1,…M-1
维纳-霍夫方程写成矩阵形式为
即
此式表明,已知期望信号与观测数据的互相关函数及观测数据的自相关函数时,可以通过矩阵求逆运算,得到维纳滤波器的最佳解。
四、实验结果与分析:
(1)实验程序
clear;
clc;
%初始化
L=50;
N=6;
a=0.96;
%噪声信号
wn=randn(L,1);
%理想信号 m*n的零矩阵
sn=zeros(L,1);
%单位脉冲响应
hn=zeros(N,1);
%自相关
rxx=zeros(N,1);
%互相关
rxd=zeros(N,1);
%输出信号
yn=zeros(L,1);
xt=zeros(L+N,1);
%最小距离信号
gn=zeros(L,1);
sn(1,1)=wn(1,1);
for i=2:L
sn(i,1)=a*sn(i-1,1)+wn(i,1);
end
%subplot(2,2,1);
%figure;
subplot(2,1,1);
plot(sn,'r'),axis([0 50 -10 10]),xlabel('时间'),ylabel('幅度'),title('理想信号')
%生成理想信号方差
cd=(var(wn))/(1-a^2);
%加噪
x1=awgn(sn,20);
x2=awgn(sn,10);
x3=awgn(sn,6);
%subplot(2,2,2)
%figure;
%plot(x3,'g'),axis([0 200 -10 10]),xlabel('时间'),ylabel('幅度'),title('观测信号');
for i=1:N,
for m=i:1:L,
rxd(i,1)=rxd(i,1)+x1(m,1)*sn(m-i+1,1);
end
end
%生成输入信号的自相关函数
for i=1:N,
for m=i:1:L,
rxx(i,1)=rxx(i,1)+x1(m,1)*x1(m-i+1,1);
end
end
%生成托普勒矩阵
rxx1=toeplitz(rxx);
%生成逆矩阵
irxx=inv(rxx1);
%生成滤波器系数
hn=irxx*rxd;
for i=1:L
xt(i+N,1)=x1(i,1);
end
%实现滤波
for i=1:L,
for m=1:N,
yn(i,1)=yn(i,1)+xt(i+N+1-m,1)*hn(m,1);
end
end
%最小均方误差信号
en=0;
en=cd-(rxd')*hn;
%滤波后信号
gn=yn-sn;
%subplot(2,2,3);
%figure;
subplot(2,1,2);
plot(yn),axis([0 50 -10 10]),xlabel('时间'),ylabel('幅度'),title('输出信号');
%理想信号与输出信号对比
%subplot(2,2,4);
figure;
plot(sn,'r'),axis([0 50 -10 10]),xlabel('时间'),ylabel('幅度'),title('理想信号与输出信号对比');
hold on;
plot(yn,'b'),axis([0 50 -10 10]);
hold off;
% 最小距离误差信号
figure;
plot(gn),axis([0 50 -2 2]),xlabel('时间'),ylabel('幅度'),title('最小距离误差信号');
(2)实验结果
一、 当L=200,N=6时,理想信号及观测信号如下:
二、
1、 信噪比为20dB,L=200,N=6
2、 信噪比为20dB,L=200,N=20
3、 信噪比为20dB,L=200,N=40
4、 信噪比为20dB,L=100,N=6
5、 信噪比为20dB,L=50,N=6
(3)实验结果分析
在信噪比为20dB情况下,分别取信号长度为200、100、10,滤波器长度为6、20、40进行实验,参数情况如下表。观察试验中得到的信号图像,我们可以得出:
1.信号长度越长,最小均方误差(绝对值)越大,精度越差;
2.在信噪比较大(误差影响较小)的滤波过程中,滤波器长度越长,最小均方误差(绝对值)越小,精度越好
实验1
20dB
L=200
N=6
实验2
20dB
L=200
N=20
实验3
20dB
L=200
N=40
实验4
20dB
L=100
N=6
实验5
20dm
L=50
N=6
四、实验总结
本次试验采用在时域中求解设计维纳滤波器的方法。通过实验,学习了维纳滤波器的基本原理,和在时域中求解因果维纳滤波器的算法。在实验过程中,分别设计了不同信号长度、不同滤波器长度的实验,并分析对比了实验结果。
通过采用在时域中设计维纳滤波器的实验,可以看出,直接从时域求解因果的维纳滤波器,当信号长度L、滤波器长度N选值较大时,计算工作量较大,所占内存较大。由此,可以考虑在今后的设计中采用z域求解的方法,将会提高各项指标。
15 / 15
展开阅读全文