维纳滤波器设计随机信号处理学号:姓名:随机信号处理实验报告2实验一维纳滤波器设计1实验内容设计一个维纳滤波器:(1)产生三组观测数据,首先根据()(1)()snasnwn产生信号()sn,将其加噪,(信噪比分别为20,10,6dBdBdB),得到观测数据123(),(),()xnxnxn。(2)估计()ixn,1,2,3i的AR模型参数。假设信号长度为L,AR模型阶数为N,分析实验结果,并讨论改变L,N对实验结果的影响。2实验原理滤波目的是从被噪声污染的信号中分离出有用的信号来,最大限度地抑制噪声。对信号进行滤波的实质就是对信号进行估计。滤波问题就是设计一个线性滤波器,使得滤波器的输出信号()yn是期望响应()sn的一个估计值。下图就是观测信号的组成和信号滤波的一般模型。观测信号()()()xnsnvn信号滤波的一般模型维纳滤波解决从噪声中提取信号的滤波问题,并以估计的结果与真值之间的误差均方值最小作为最佳准则。它根据,1,,xnxnxnm估计信号的当前值,它的解以系统的系统函数Hz或单位脉冲hn形式给出,这种系统常称为最佳线性滤波器。维纳滤波器设计的任务就是选择hn,使其输出信号yn与期望信号dn误差的均方值最小。随机信号处理实验报告3假设滤波系统hn是一个线性时不变系统,它的hn和输入信号都是复函数,设hnanjbn0,1,n考虑系统的因果性,可得到滤波器的输出0*mynhnxnhmxnm0,1,n设期望信号dn,误差信号en及其均方误差2Een分别为endnynsnyn2220mEenEdnynEdnhmxnm要使均方误差为最小,需满足:20Eenhj整理得0Exnjen,等价于0Exnjen上式说明,均方误差达到最小值的充要条件使误差信号与任一进入估计的输入信号正交,这就是正交性原理。将0Exnjen展开,得00mExnkdnhmxm整理得0dxxxmrkhmrmk0,1,2,k等价于0dxxxxxmrkhmrkmhkrk0,1,2,k此式称为维纳-霍夫(Wiener-Holf)方程。解此方程可得到最优权系数012,,,hhh,此式是Wiener滤波器的一般方程。定义随机信号处理实验报告4121MMhhhh1011xdxdxdxdMrrRrM011102120xxxxxxxxxxxxxxxxxxxxMMrrrMrrrMRrMrMr则维纳-霍夫方程可写成矩阵形式xdxxRRh求逆,得1xxxdhRR此式表明,已知期望信号与观测数据的互相关函数及观测数据的自相关函数时,可以通过矩阵求逆运算,得到维纳滤波器的最佳解。3实验结果及分析(1)当L=200,N=6信噪比为20dB的滤波效果随机信号处理实验报告5信噪比为10dB的滤波效果信噪比为6dB的滤波效果(2)当L=200,N=60信噪比为20dB的滤波效果随机信号处理实验报告6信噪比为10dB的滤波效果信噪比为6dB的滤波效果(3)当L=600,N=6信噪比为20dB的滤波效果随机信号处理实验报告7信噪比为10dB的滤波效果信噪比为6dB的滤波效果实验分析:别取信号长度为200、600,滤波器长度为6、60,加噪信噪比为20dB、10dB、6dB,组合进行实验。每组实验得到的最小均方误差统计如下表。由此表可以看出,信号长度越长,最小均方误差(绝对值)越大,精度越差;在信噪比较大(误差影响较小)的滤波过程中,滤波器长度约长,最小均方误差(绝对值)越小,精度越好。表1最小均方误差统计表加噪信号信噪比L=200N=6L=200N=60L=600N=61()xn20dB-1785.3971-1574.1107-6888.4103随机信号处理实验报告82()xn10dB-845.5714-1727.5260-10219.33973()xn6dB-1213.6367-2135.4596-7743.9358对于相同信号和滤波器(这里取L=200,N=6),信噪比越大,最小距离误差约小;而当信噪比较小时,信号与噪声值接近,导致滤波效果受到影响,最小距离误差变大。4源代码clear;clc;%初始化变量L=200;%信号长度N=6;%滤波器的阶次a=0.96;wn=randn(L,1);%wn为用于生成信号的噪声信号,随机生成一个L*1矩阵,生成矩阵的元素值在%区间(0.0,1.0)之间sn=zeros(L,1);%sn为信号,生成一个L*1的零矩阵hn=zeros(N,1);%hn为系统单位脉冲响应生成一个N*1的零矩阵rxx=zeros(N,1);%rxx为自相关函数,生成一个N*1的零矩阵rxd=zeros(N,1);%rxd为互相关函数,生成一个N*1的零矩阵yn=zeros(L,1);%yn为输出信号,生成一个L*1的零矩阵xt=zeros(L+N,1);%生成一个(L+N)*1的零矩阵gn=zeros(L,1);%gn为yn与sn最小距离误差信号,生成一个L*1的零矩阵%根据给定公式s(n)=as(n-1)+w(n),生成理想信号随机信号处理实验报告9fori=2:Lsn(i,1)=a*sn(i-1,1)+wn(i,1);endsn(1,1)=wn(1,1);subplot(2,2,1);plot(sn,'r'),axis([0200-1010]),xlabel('时间'),ylabel('幅度'),title('sn')%生成期望信号方差cdcd=(var(wn))/(1-a^2);%对信号加噪x1=awgn(sn,20);x2=awgn(sn,10);x3=awgn(sn,6);subplot(2,2,2)plot(x3,'g'),axis([0200-1010]),xlabel('时间'),ylabel('幅度'),title('x3');%生成输入信号与理想信号的互相关函数,此处x1为输入信号,sn为期望信号fori=1:N,form=i:1:L,rxd(i,1)=rxd(i,1)+x3(m,1)*sn(m-i+1,1);endend%生成输入信号的自相关函数fori=1:N,form=i:1:L,rxx(i,1)=rxx(i,1)+x3(m,1)*x3(m-i+1,1);endend%将自相关函数生成托普勒斯矩阵rxx1=toeplitz(rxx);%生成逆矩阵irxx=inv(rxx1);%生成滤波器系数h(n)hn=irxx*rxd;fori=1:L随机信号处理实验报告10xt(i+N,1)=x3(i,1);end%实现滤波fori=1:L,form=1:N,yn(i,1)=yn(i,1)+xt(i+N+1-m,1)*hn(m,1);endend%计算最小均方误差信号enen=0;en=cd-(rxd')*hn;%生成最小距离误差信号gngn=yn-sn;%画出滤波后的信号时域图subplot(2,2,3);plot(yn),axis([0200-1010]),xlabel('时间'),ylabel('幅度'),title('yn');%画出理想信号与输出信号对比图subplot(2,2,4);plot(sn,'r'),axis([0200-1010]),xlabel('时间'),ylabel('幅度'),title('sn与yn对比');holdon;plot(yn,'b'),axis([0200-1010]);holdoff;%画出最小距离误差信号图figure;plot(gn),axis([0200-22]),xlabel('时间'),ylabel('幅度'),title('gn');