维纳滤波器的设计及Matlab仿真实现
- 格式:doc
- 大小:186.50 KB
- 文档页数:4
维纳滤波matlab代码维纳滤波是一种经典的图像复原方法,它可以在图像受到模糊和噪声影响时进行恢复。
在Matlab中,你可以使用以下代码来实现维纳滤波:matlab.% 读取原始图像。
originalImage = imread('input_image.jpg');% 转换为灰度图像。
originalImage = rgb2gray(originalImage);% 显示原始图像。
subplot(1, 2, 1);imshow(originalImage);title('Original Image');% 添加高斯噪声。
noisyImage = imnoise(originalImage, 'gaussian', 0, 0.01);% 显示带噪声的图像。
subplot(1, 2, 2);imshow(noisyImage);title('Noisy Image');% 计算模糊点扩散函数(PSF)。
PSF = fspecial('motion', 21, 11);% 使用逆滤波器和维纳滤波器进行图像复原。
estimated_nsr = 0;wnr3 = deconvwnr(noisyImage, PSF, estimated_nsr);% 显示维纳滤波后的图像。
figure, imshow(wnr3);title('Restored Image using Wiener Filter');在这段代码中,我们首先读取原始图像,然后转换为灰度图像。
接着,我们添加高斯噪声来模拟图像受到的噪声干扰。
然后我们计算模糊点扩散函数(PSF),并使用Matlab内置的`deconvwnr`函数来进行维纳滤波处理。
最后,我们显示经过维纳滤波处理后的图像。
需要注意的是,维纳滤波的参数estimated_nsr需要根据实际情况进行调整,它代表了噪声的方差估计。
实验报告册数字图形图像处理维纳滤波器matlab实现学院:人民武装学院学院专业:计算机科学与技术班级: 11级计科班学号: 1120070544 学生姓名:苏靖指导教师:维纳滤波的原理及其matlab 实现,以案例的形式展示FIR 维纳滤波的特性。
2.维纳滤波概述维纳(Wiener )是用来解决从噪声中提取信号的一种过滤(或滤波)方法。
这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。
一个线性系统,如果它的单位样本响应为)(n h ,当输入一个随机信号)(n x ,且)()()(n v n s n x += (1) 其中)(n x 表示信号,)(n v )表示噪声,则输出)(n y 为∑-=mm n x m h n y )()()( (2)我们希望)(n x 通过线性系统)(n h 后得到的)(n y 尽量接近于)(n s ,因此称)(n y 为)(n s 的估计值,用^)(n s 表示,即^)()(n s n y = (3) 则维纳滤波器的输入—输出关系可用下面图1表示。
图1实际上,式(2)所示的卷积形式可以理解为从当前和过去的观察值)(n x ,)1(-n x ,)2(-n x …)(m n x -,…来估计信号的当前值^)(n s 。
因此,用)(n h 进行过滤问题实际上是一种统计估计问题。
一般地,从当前的和过去的观察值)(n x ,)1(-n x ,)2(-n x …估计当前的信号值^)()(n s n y =成为过滤或滤波;从过去的观察值,估计当前的或者将来的信号值)0)(()(^≥+=N N n s n y 称为外推或预测;从过去的观察值,估计过去的信号值)1)(()(^>-=N N n s n y 称为平滑或内插。
因此维纳滤波器又常常被称为最佳线性过滤与预测或线性最优估计。
这里所谓的最佳与最优是以最小均方误差为准则的。
如果我们分别以)(n s 与^)(n s 表示信号的真实值与估计值,而用)(n e 表示他们之间的误差,即)()()(^n s n s n e -= (4) 显然)(n e 可能是正值,也可能是负值,并且它是一个随机变量。
基于Matlab的自适应滤波器的设计及仿真赵夏爽物理与电子信息学院电子信息科学与技术专业学号:130522036指导教师:燕慧英摘要:自适应滤波器的研究是当今信号处理中最活跃的研究课题之一。
自适应滤波器因其具有很强的自学习、自跟踪能力和算法的简单易实现性等优越性能,已经在数字通信、工业控制和雷达等领域获得了广泛应用。
首先介绍了自适应滤波器的基本理论思想,具体阐述了自适应滤波器的基本原理、算法及设计方法。
接着对自适应滤波器的核心算法——最小均方误差(LMS)进行介绍和分析,最后基于LMS算法设计自适应滤波器并进行MatLab仿真,仿真结果表明设计的自适应滤波器具有良好的性能和较强的可操作性。
关键词:自适应滤波器;LMS算法;matlab仿真Design and Implemeutation of the Auto-adapted FilterZhao xia-shuangCollege of Physics and Electronic Information Electronic Information Science and TechnologyNo:130522036Tutor:YanHui-yingAbstract:The research of adaptive filter is one of the most active research topic in signal processing.Adaptive filter because of its strong self-learning,self tracking ability and simple algorithm of superior performance and easy to implement,has been widely used in digital communication,industrial control and other fields of radar.Firstly introduces the basic theory of adaptive filter,expounds the basic principle,algorithm and adaptive filter design method.The core algorithm of the adaptive filter--minimum mean square error(LMS)were introduced and analyzed,based on the design of adaptive LMS filter algorithm and MatLab simulation,the simulation results show that the design of adaptive filter has good performance and strong operability.Keywords:adaptive filter;LMS algorithm;MATLAB simulation目录1引言 (3)1.1国内外研究现状与前景 (3)1.2课题研究的意义和目的 (4)2自适应滤波器理论基础 (4)2.1滤波器的基本概念 (4)2.2自适应滤波器的结构 (5)2.3自适应滤波器原理 (5)2.4自适应滤波器的LMS算法 (6)3自适应滤波器设计及仿真 (7)3.1LMS算法参数分析 (7)3.2自适应滤波器的仿真 (7)3.2.1Matlab软件介绍 (7)3.2.2基于LMS算法实现的流程图 (8)3.2.3自适应滤波器的仿真结果及分析 (9)4总结 (12)参考文献 (12)1引言滤波技术是信号处理的一项重要技术,利用这种技术可以抑制信号中的干扰,获取需要的信息。
Matlab在工程设计与仿真中的应用案例近年来,Matlab(全称Matrix Laboratory)在工程设计与仿真中的应用越来越广泛。
Matlab是一款功能强大的计算软件,具有矩阵计算、数据处理和可视化等多种功能。
本文将通过几个实际案例,展示Matlab在工程设计与仿真中的应用。
一、电路设计与仿真电路设计是工程领域中重要的一环,而Matlab提供了强大的电路设计与仿真工具。
以滤波器设计为例,Matlab配备了丰富的滤波器设计函数,可以根据特定的滤波系数和频响要求,快速设计出满足需求的滤波器。
同时,Matlab还支持频域仿真,可以对信号进行傅里叶变换和滤波操作,以实现不同的信号处理需求。
二、机械系统建模与控制在机械系统建模与控制方面,Matlab也发挥了重要的作用。
例如,在机械结构设计中,Matlab可以通过有限元分析建立结构的数值模型,对结构的强度、刚度等进行分析与求解。
同时,Matlab还支持控制系统建模与仿真,可以通过控制系统的设计,提高机械系统的性能和稳定性。
三、通信系统设计与仿真通信系统设计与仿真是Matlab应用的另一个重要领域。
例如,在无线通信系统设计中,Matlab提供了丰富的信号处理工具,可以对传输信号进行调制、解调和通道编码等操作,实现数据的可靠传输。
此外,Matlab还支持多输入多输出系统的建模与仿真,可以分析和优化系统的传输性能。
四、图像处理与计算机视觉近年来,图像处理和计算机视觉成为热门的研究领域。
而Matlab提供了一系列的图像处理函数与工具箱,可以进行图像的滤波、分割、特征提取和目标识别等操作。
通过Matlab的强大功能,研究人员可以开展多样化的图像处理与计算机视觉应用,如人脸识别、车牌识别等。
五、仿真与优化算法Matlab凭借其强大的数值计算能力和优化算法,成为工程设计中的重要辅助工具。
例如,在电力系统中,Matlab可以应用潮流计算和稳定性分析等算法,发现潮流分布、电压质量等问题,优化电力系统的稳定性和效率。
现代数字信号处理课程作业维纳、卡尔曼、RLS、LMS算法matlab实现维纳滤波从噪声中提取信号波形的各种估计方法中,维纳(Wiener)滤波是一种最基本的方法,适用于需要从噪声中分离出的有用信号是整个信号(波形),而不只是它的几个参量。
设维纳滤波器的输入为含噪声的随机信号。
期望输出与实际输出之间的差值为误差,对该误差求均方,即为均方误差。
因此均方误差越小,噪声滤除效果就越好。
为使均方误差最小,关键在于求冲激响应。
如果能够满足维纳-霍夫方程,就可使维纳滤波器达到最佳。
维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。
维纳滤波器的缺点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。
因此,维纳滤波在实际问题中应用不多。
下面是根据维纳滤波器给出的图像处理matlab实例,在下面实例中维纳滤波和均值滤波相比较,并且做了维纳复原、边缘提取、图像增强的实验:%****************维纳滤波和均值滤波的比较*********************I=imread('lena.bmp');J=imnoise(I,'gaussian',0,0.01);Mywiener2 = wiener2(J,[3 3]);Mean_temp = ones(3,3)/9;Mymean = imfilter(J,Mean_temp);figure(1);subplot(121),imshow(Mywiener2),title('维纳滤波器输出');subplot(122),imshow(uint8(Mymean),[]),title('均值滤波器的输出');%***********************维纳复原程序********************figure(2);subplot(231),imshow(I),title('原始图像');LEN = 20;THETA =10;PSF = fspecial('motion',LEN,THETA);Blurred = imfilter(I,PSF,'circular');subplot(232),imshow(Blurred),title('生成的运动的模糊的图像');noise = 0.1*randn(size(I));subplot(233),imshow(im2uint8(noise)),title('随机噪声');BlurredNoisy=imadd(Blurred,im2uint8(noise));subplot(234),imshow(BlurredNoisy),title('添加了噪声的模糊图像');Move=deconvwnr(Blurred,PSF);subplot(235),imshow(Move),title('还原运动模糊的图像');nsr = sum(noise(:).^2)/sum(im2double(I(:)).^2);wnr2 = deconvwnr(BlurredNoisy,PSF,nsr);subplot(236),imshow(wnr2),title('还原添加了噪声的图像');%****************维纳滤波应用于边缘提取*********************N = wiener2(I,[3,3]);%选用不同的维纳窗在此修改M = I - N;My_Wedge = im2bw (M,5/256);%化二值图像BW1 = edge(I,'prewitt');BW2 = edge(I,'canny');BW3 = edge(I,'zerocross');BW4 = edge(I,'roberts');figure(3)subplot(2,4,[3 4 7 8]),imshow(My_Wedge),title('应用维纳滤波进行边沿提取'); subplot(241),imshow(BW1),title('prewitt');subplot(242),imshow(BW2),title('canny');subplot(245),imshow(BW3),title('zerocross');subplot(246),imshow(BW4),title('roberts');%*************************维纳滤波应用于图像增强***************************for i = [1 2 3 4 5] K = wiener2(I,[5,5]);end K = K + I; figure(4);subplot(121),imshow(I),title('原始图像'); subplot(122),imshow(K),title('增强后的图像');维纳滤波器输出均值滤波器的输出原始图像生成的运动的模糊的图像随机噪声添加了噪声的模糊图像还原运动模糊的图像还原添加了噪声的图像卡尔曼滤波卡尔曼滤波的一个典型实例是从一组有限的,对物体位置的,包含噪声的观察序列预测出物体的坐标位置及速度。
IIR 滤波器、FIR 滤波器与维纳滤波器所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限脉冲响应(IIR )滤波器和有限脉冲响应(FIR )滤波器。
它们的系统函数分别为:1.1n N n z n h z H --=∑=10)()( 1.21.1中的H(z)成为N 阶IIR 滤波器,1.2中的H(z)称为(N-1)阶FIR 滤波器函数,这两种类型的设计方法有很大的区别。
IIR 数字滤波器的设计既可以从模拟滤波器的设计入手来进行,也可以直接利用指标参数,通过调用滤波器设计子程序或函数来进行。
可以利用脉冲响应不变法来设计IIR 数字低通滤波器,按照技术要求设计一个模拟低通滤波器,得到模拟低通滤波器的传输函数,再按一定的转换关系将传输函数转换成数字低通滤波器的系统函数H(z)。
设模拟滤波器的传输函数是s H a (),相应的单位冲激响应是)(t h a ,对)(t h a 进行等间隔采样,采样间隔为T ,得到)(nT h a ,将h(n)= )(nT h a 作为数字滤波器的单位取样响应,那么数字滤波器的系统函数便是h(n)的z 变换,因此脉冲响应不变法是一种时域上的转换方法,它使h(n)在采样点上等于)(t h a∑=-=Ni iia s s A s H 1)( 1.3 ∑=--=Ni T s iz eA z H i 111)( 1.4 将s H a ()在s 平面上沿虚轴按照周期2pi/T 延括后,再按标准映射关系sT e z =,映射到z 平面上,就得到了H(z)。
脉冲响应不变法的优点是频率坐标变化时线性的,如果不考虑频率混叠现象,用这种方法设计的数字滤波器会很好的重现模拟滤波器的频率特性。
以下为用matlab 仿真的一个IIR 低通滤波器: % IIR Lowpass Use Butterworth % copyright by Etual clear;fs=20;fpass=4;fstop=5;∑∑=-=--=Nk kk Mk k k z a z b z H 101)(Ap=0.5;As=10;wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;omegap=tan(wp/2);omegas=tan(ws/2);ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);N=ceil(log(es/ep)/log(omegas/omegap));omega0=omegap/ep^(1/N);K=floor(N/2);for i=1:Ktheta(i)=pi*(N-1+2*i)/(2*N);endfor i=1:KG(i)=omega0^2/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka1(i)=2*(omega0^2-1)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka2(i)=(1+2*omega0*cos(theta(i))+omega0^2)/(1-2*omega0*cos(theta(i))+omeg a0^2);endif K<(N/2)G0=omega0/(omega0+1);a0=(omega0-1)/(omega0+1);endw=0:pi/300:pi;Hw2=1./(1+(tan(w/2)/omega0).^(2*N));plot(w/pi,Hw2);grid;图一IIR滤波器频谱图IIR数字滤波器能保留一些典型模拟滤波器优良的幅度特性,但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器相位特性一般是非线性的。
MATLAB的⾃适应滤波器设计基于MATLAB的⾃适应滤波器设计第⼀章绪论1.1 引⾔滤波器根据其逼近函数的形式不同, 可设计出多种滤波器. 常⽤的有巴特沃思滤波器、切⽐雪夫é 型滤波器、切⽐雪夫ê 型滤波器、椭圆滤波器、巴塞尔滤波器。
对于这些滤波器的设计, 都是先给定其副频特性的模平⽅?H ( j X) ? 2, 再求出系统函数H (s)。
设计滤波器时, 需由经典式求出滤波器的系统函数H (s) , 求出极点S k (k= 1, 2, ??2N ) , 给定N , X c,E, 即可求得2N 个极点分布。
然后利⽤归⼀化函数, 得出归⼀化的电路组件值, 即可得到满⾜要求的滤波器。
此种设计中, 需要进⾏烦琐、冗长的数字计算, 这对于电路设计者来说, 不仅费时费⼒, 准确性不易把握, ⽽且不符合当今⾼速发展的时代要求。
⾃适应滤波器是近30 年来发展起来的关于信号处理⽅法和技术的滤波器,其设计⽅法对滤波器的性能影响很⼤。
⾃适应滤波器能够得到⽐较好的滤波性能,当输⼊信号的统计特性未知,或者输⼊信号的统计特性变化时,⾃适应滤波器能够⾃动地迭代调节⾃⾝的滤波器参数,以满⾜某种准则的要求,从⽽实现最优滤波。
⾃适应滤波器⼀般包括滤波器结构和⾃适应算法两个部分,这两部分不同的变化与结合,可以导出许多种不同形式的⾃适应滤波器。
1.2 MATLAB简介Matlab是由美国MathWorks公司推出的软件产品。
它是⼀完整的并可扩展的计算机环境, 是⼀种进⾏科学和⼯程计算的交互式程序语⾔。
它的基本数据单元是不需要指定维数的矩阵, 它可直接⽤于表达数学的算式和技术概念, ⽽普通的⾼级语⾔只能对⼀个个具体的数据单元进⾏操作。
在Matlab内部还配备了涉及到⾃动控制、信号处理、计算机仿真等种类繁多的⼯具箱, 所以Matlab 的应⽤⾮常⼴泛, 它可涉⾜于数值分析、控制、信号分析、通信等多种领域。
1.3 ⾃适应滤波器的应⽤适应滤波器在信号检测、信号恢复、数字通信等许躲领域中被⼴泛应⽤,因⽽⼀直是学术界⼀个重要研究课题。
Wiener 滤波器的设计及Matlab 仿真实现1.实验原理在许多实际应用中,人们往往无法直接获得所需的有用信号,能够得到的是退化了或失真了的有用信号。
例如,在传输或测量信号s(n)时,由于存在信道噪声或测量噪声v(n),接受或测量到的数据x(n)将与s(n)不同。
为了从x(n)中提取或恢复原始信号s(n),需要设计一种滤波器,对x(n)进行滤波,使它的输出y(n)尽可能逼近s(n),成为s(n)的最佳估计,即y(n) = )(ˆn s。
这种滤波器成为最优滤波器。
Wiener 滤波器是“理想”意义上的最优滤波器,有一个期望响应d(n),滤波器系数的设计准则是使滤波器的输出y(n)(也常用)(ˆn d表示)是均方意义上对期望响应的最优线性估计。
Wiener 滤波器的目的是求最优滤波系数],,,,,,[,1,0,1, k o o o o w w w w w ,从而使])(ˆ)([])([)(22n d n d E n e E n J 最小。
通过正交性原理,导出)()(k r k i r w xd x i oi , 2,1,0,1, k该式称为Wiener-Hopf 方程,解此方程,可得最优权系数},2,1,0,1,,{ i w oi 。
Wiener-Hopf 方程的矩阵形式为xd o x r w R ,解方程求得xd x o r R w 12.设计思路下面我们通过具体的例子来说明Wiener 滤波器的设计方法:考虑如下图所示的简单通信系统。
其中,产生信号S(n)所用的模型为)95.01/(1)(11 z z H ,激励信号为)3.0,0(~)(WGN n w 。
信号s(n)通过系统函数为)85.01/(1)(12 z z H 的信道,并被加性噪声)1.0,0(~)(WGN n v 干扰,v(n)与w(n)不相关。
确定阶数M=2的最优FIR 滤波器,以从接收到的信号x(n) = z(n) + v(n)中尽可能恢复发送信号s(n),并用MATLAB 进行仿真。
维纳滤波降噪matlab函数维纳滤波是一种常用的信号处理方法,可以有效地降低信号中的噪声。
在matlab中,我们可以使用维纳滤波函数对信号进行降噪处理,提高信号的质量和可靠性。
维纳滤波的基本原理是基于最小均方误差准则,通过对信号和噪声的统计特性进行建模,对信号进行滤波,使得滤波后的信号与原始信号尽可能接近,同时抑制噪声的干扰。
维纳滤波的核心思想是在频域对信号进行滤波,通过对信号的频谱进行调整,削弱噪声的频谱成分,从而达到降噪的目的。
在matlab中,我们可以使用wiener2函数实现维纳滤波。
wiener2函数是matlab中的一个内置函数,可以对二维图像进行维纳滤波。
具体的使用方法如下:```matlabfiltered_signal = wiener2(noisy_signal, [m n], noise_power);```其中,noisy_signal是带有噪声的信号,m和n分别是滤波器的大小,通常设置为3或5,noise_power是噪声的功率,可以通过matlab的imnoise函数计算得到。
维纳滤波的效果取决于噪声的统计特性以及滤波器的大小。
当噪声的功率较小且统计特性已知时,维纳滤波可以有效地降低噪声的干扰,恢复出清晰的信号。
然而,当噪声的功率较大或者统计特性未知时,维纳滤波可能会导致信号失真或者增加噪声的干扰。
在实际应用中,我们通常需要根据具体场景和需求,调整滤波器的大小和噪声功率的估计值,以达到最佳的降噪效果。
同时,维纳滤波也可以与其他滤波算法结合使用,以进一步提高降噪效果。
除了wiener2函数,matlab还提供了其他一些用于降噪的函数,如medfilt2函数可以实现中值滤波,imfilter函数可以实现各种线性滤波。
根据不同的需求和信号特性,我们可以选择合适的滤波方法进行降噪处理。
维纳滤波是一种常用的信号降噪方法,可以通过调整滤波器的大小和噪声功率的估计值,对信号进行滤波,降低噪声的干扰。
Wiener 滤波器的设计及Matlab 仿真实现
1.实验原理
在许多实际应用中,人们往往无法直接获得所需的有用信号,能够得到的是退化了或失真了的有用信号。
例如,在传输或测量信号s(n)时,由于存在信道噪声或测量噪声v(n),接受或测量到的数据x(n)将与s(n)不同。
为了从x(n)中提取或恢复原始信号s(n),需要设计一种滤波器,对x(n)进行滤波,使它的输出y(n)尽可能逼近s(n),成为s(n)的最佳
估计,即y(n) = )(ˆn s。
这种滤波器成为最优滤波器。
Wiener 滤波器是“理想”意义上的最优滤波器,有一个期望响应d(n),滤波器系数的
设计准则是使滤波器的输出y(n)(也常用)(ˆn d
表示)是均方意义上对期望响应的最优线性估计。
Wiener 滤波器的目的是求最优滤波系数],,,,,,[,1,0,1, k o o o o w w w w w -=,从而使])(ˆ)([])([)(2
2n d n d E n e E n J -==最小。
通过正交性原理,导出
)()(k r k i r w xd x i oi -=-∑∞-∞=, 2,1,0,1,-=k
该式称为Wiener-Hopf 方程,解此方程,可得最优权系数},2,1,0,1,,{ -=i w oi 。
Wiener-Hopf 方程的矩阵形式为xd o x r w R =,解方程求得xd x o r R w 1
-= 2.设计思路
下面我们通过具体的例子来说明Wiener 滤波器的设计方法:
考虑如下图所示的简单通信系统。
其中,产生信号S(n)所用的模型为)95.01/(1)(11-+=z z H ,激励信号为)3.0,0(~)(WGN n w 。
信号s(n)通过系统函数为)85.01/(1)(12--=z z H 的信道,并被加性噪声)1.0,0(~)(WGN n v 干扰,v(n)与w(n)不相关。
确定阶数M=2的最优FIR 滤波器,以从接收到的信号x(n) = z(n) + v(n)中尽可能恢复发送信号s(n),并用MATLAB 进行仿真。
解: s (n )是一个AR (1)过程,在x (n )= z (n )+ v (n )中,z (n )是一个二阶AR(2)过程。
由于白噪声产生z (n )的系统函数相当于H (z )= H1(z )H2(z ),因此21118.01.01)85.01)(95.01()(-----+=-+=z z z z z A 。
二阶AR (2)过程的参数1.01,2=a ,8.02,2-=a ,方差3.02W =σ。
由二阶AR (2)参数可以确定)(r z k ,
由Yule-Walker 方程⎥⎦⎤⎢⎣⎡)0()1()1()0(z z z z r r r r ⎥⎦⎤⎢⎣⎡-=⎥⎦
⎤⎢⎣⎡)2()1(2,21,2z z r r a a , 以及AR 模型的方差表达式)2()1()0(2,21,22w z z z r a r a r ++=σ,
反解)1(),0(z z r r 得, 910]1.0)8.01[(3.08.018.01])1[(11)0(2221,222,222,22,2=--+-=-+-+=a a a a r w
z σ9
51)
0()1(2,21,2-=+-=a r a r z z 由此确定z (n )的自相关矩阵为⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡--=9109595910z R 进而有]21.156.056.021.1[1.0100191095959102--=⨯⎥⎦⎤⎢⎣⎡+⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡--=+=I R R v z x σ 期望响应d (n )= s (n ),接下来,求)(k r xd -。
因为))()(()(n d k n x E k r xd -=-
把)()1(85.0)(n d n z n z =--和)()()(n v n z n x +=代入上式,得
)1(85.0)()(--=-k r k r k r z z xd
故58.1)1(85.0)0()0(=-⨯-=z z xd r r r
50.1)0(85.0)1()1(-=⨯-=-z z xd r r r
从而有⎥⎦
⎤⎢⎣⎡-=50.158.1xd r ,将此式带入Wiener-Hopf 方程解得最优权系数为 ⎥⎦
⎤⎢⎣⎡-==-8656.09052.01xd x o r R w 3.实验源码
MATLAB 仿真实现该维纳滤波器的程序:
% Generate signal s(n)
N = 64;
w = sqrt*randn(N,1);
A1 = [1 ];
s = filter(1, A1, w);
d=s;
% Transmit and add a noise
A2 = [1 ];
z = filter(1, A2, s);
v = sqrt*randn(N,1);
x = z + v;
% Wiener Filtering
y = filter([ ], 1, x);
% plot the waveforms
n = [0 : N-1];
subplot(211);
plot(n, d, 'b-x', n, x, 'r-o');
legend('d(n)', 'x(n)'); axis tight ;
ylabel('Amplitude');
xlabel('Time (n)');
title('Desired Response / Input Signal');
subplot(212);
plot(n, d, 'b-x', n, y, 'r-o');
legend('d(n)', 'y(n)'); axis tight ;
ylabel('Amplitude');
xlabel('Time (n)');
title('Desired Response / Output Signal');
4.仿真结果及分析
仿真结果如图所示:
从图中可明显看出,y(n)比x(n)更接近于d(n),维纳滤波器从接收到的信号x(n) = z(n) + v(n)中尽可能地恢复出了发送信号s(n)。
5.实验结论
维纳滤波器的设计目标是使滤波器误差平方的集平均(期望值)最小,在平稳并各态历
经的条件下,相当于在)(+∞∞-,误差的平方和最小,因此,求解最优滤波器需要输入信号
的自相关矩阵和输入信号与期望响应的互相关矢量,这在实际应用中一般很难得到。
LS 滤波器的目标是现实的,它使用输入信号和期望响应在测量区间的观测值,通过令误差平方和在观测区间最小,而设计出滤波器系数。