维纳滤波原理及其matlab实现
完整的维纳滤波器Matlab源程序

subplot(223)
semilogy(t,Py1)
谱图像
title('经过 fir 滤波器后信号在半对数坐标系下频谱图像')
xlabel('x 轴单位:w/rad','color','b')
ylabel('y 轴单位:w/HZ','color','b')
py1n=periodogram(y1n);
%fir 滤波 wp=0.4*pi; ws=0.6*pi; DB=ws-wp; N0=ceil(6.6*pi/DB); M=N0+mod(N0+1,2); wc=(wp+ws)/2/pi; 截止频率(关于 π 归一化) hn=fir1(M,wc); h(n) y1n=filter(hn,1,xn); figure(3) plot(y1n) 图像 title('经过 fir 滤波器后信号图像') xlabel('x 轴单位:f/HZ','color','b') ylabel('y 轴单位:A/V','color','b') y1nmean=mean(y1n) 号均值 y1nms=mean(y1n.^2) 号均方值 y1nvar=var(y1n,1) 方差 Ry1n=xcorr(y1n,Mlag,'biased'); 相关函数 figure(4) subplot(221) plot((-Mlag:Mlag),Ry1n) title('经过 fir 滤波器后信号自相关函数图像')
RLS、LMS及维纳滤波

图3.2 LMS算法下的误差信号以及滤波处理后的输出信号
图3.3维纳滤波的输入受干扰信号以及滤波输出信号
上图中红色是滤波后的输出信号,通过对比可以发现RLS算法下的输出信号比LMS算法下的输出信号要稳定的多。可以看到在RLS算法下的误差信号在迭代次数200次左右的时候变化较快较大,这是因为滤波器的阶数是200。可以看到在LMS算法下的输出信号在迭代次数200次以前是还没有达到收敛的,这是因为自适应滤波器的阶数是200阶,在200次之后,信号才是真正的滤波器的输出信号。由维纳滤波器的输出信号可以看到,在前200次,波形都是不稳定的,这是因为滤波器的阶数是200,在这之前还没有求得最佳的滤波器的系数,之后输出波形基本稳定,并且有效的抑制了噪声。但是基于维纳滤波器的求解过程中要求知道信号的统计特性,因此适用范围有限,并且计算自相关矩阵以及求其逆时需要占用极大的内存。
四
[1]张贤达.现代信号处理[M].北京:清华大学出版社,2004.
[2]丁玉美.数字信号处理[M].西安:西安电子科技大学出版社,2003.
[3]王正林,刘明.精通MATLAB 7[M].北京:电子工业出版社,2006(7).
五
课程设计
RLS、LMS及维纳滤波算法在噪声背景下的信号提取
院系:
专业:
学生姓名:
学号:
指导教授:
二○一三年十二月
一
噪声无处不在,在通信领域,噪声干扰是屡见不鲜的事情。前人做了很多从噪声中提取信号的相关工作。在本次实验中,主要是运用经典的最小均方误差方法,使用的是LMS准则,以及最小二乘方法,使用的是RLS准则,对这两种方法的降噪效果进行对比和分析。
3
维纳滤波matlab代码

维纳滤波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实现

维纳自适应滤波器设计及Matlab实现摘要本文从随机噪声的特性出发,分析了传统滤波和自适应滤波基本工作原理和性能,以及滤波技术的现状和发展前景。
然后系统阐述了基本维纳滤波原理和自适应滤波器的基本结构模型,接着在此基础上结合最陡下降法引出LMS算法。
在MSE准则下,设计了一个定长的自适应最小均方横向滤波器,并通过MATLAB 编程实现。
接着用图像复原来验证该滤波器的性能,结果表明图像的质量在MSE 准则下得到了明显的改善。
最后分析比较了自适应LMS滤波和频域维纳递归滤波之间的性能。
本文还对MATLAB里面的自适应维纳滤波函数wiener2进行了简单分析。
关键字:退化图像维纳滤波自适应滤波最陡下降法LMSAbstractThis paper analyses the basic work theory, performance of traditional filter and adaptive filter based on the property of random noise, and introduce the status quo and the foreground of filter technology. Then we explain basic theory of wiener filter and basic structure model of adaptive filter, and combine the method of steepest descent to deduce the LMS. Afterward according to the MSE rule, we design a limited length transversal filter, and implement by MATLAB. And then we validate performance of adaptive LMS filter by restoring images, Test result show that the quality of the degrade images were improved under the rule of MSE. Finally, we compare the performance of adaptive LMS filter and iterative wiener filter.We also simply analyses the wiener2 () which is a adaptive filter in MATLAB. Keywords: degrade image;wiener filter;adaptive filter;ADF;LMS algorithm目录1绪论 (1)1. 1 引言 (1)1. 2 研究目标及现状 (1)1. 2 .1 图像复原技术的目标 (1)1. 2 .2 图像复原技术的研究现状 (1)2理论基础 (3)2. 1 基本自适应滤波器的模块结构 (3)2. 2 基本维纳滤波原理 (4)3自适应滤波原理及算法 (6)3.1 横向滤波结构的最陡下降算法 (7)3.1.1 最陡下降算法的原理 (7)3.1.2 最陡下降算法稳定性 (10)3.2 LMS滤波原理及算法 (11)3.2.1 从最陡下降算法导出LMS算法 (11)3.2.2 基本LMS算法的实现步骤 (11)3.2.3 基本LMS算法的实现流程图 (12)3.2.4 LMS算法的Matlab实现 (12)3.2.5 wiener2()的原理 (12)3.2.6 LMS性能分析——自适应收敛性 (13)4Matlab 实验结果 (14)4.1.LMS滤波器的收敛性 (14)4.2.LMS滤波器和频域迭代维纳滤波器的性能比较 (16)5总结 (18)致谢 (19)参考文献 (20)附录 A (21)附录 B (22)附录 C (27)1 绪论1.1引言人类传递信息的主要媒介是语言和图像。
维纳、卡尔曼滤波简介及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 滤波器与维纳滤波器所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限脉冲响应(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数字滤波器能保留一些典型模拟滤波器优良的幅度特性,但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器相位特性一般是非线性的。
维纳维纳滤波实现模糊图像恢复

维纳滤波实现模糊图像恢复摘要维纳滤波器是最小均方差准则下的最佳线性滤波器,它在图像处理中有着重要的应用。
本文主要通过介绍维纳滤波的结构原理,以及应用此方法通过MA TLAB 函数来完成图像的复原。
关键词:维纳函数、图像复原一、引言在人们的日常生活中,常常会接触很多的图像画面,而在景物成像的过程中有可能出现模糊,失真,混入噪声等现象,最终导致图像的质量下降,我们现在把它还原成本来的面目,这就叫做图像还原。
引起图像的模糊的原因有很多,举例来说有运动引起的,高斯噪声引起的,斑点噪声引起的,椒盐噪声引起的等等,而图像的复原也有很多,常见的例如逆滤波复原法,维纳滤波复原法,约束最小二乘滤波复原法等等。
它们算法的基本原理是,在一定的准则下,采用数学最优化的方法从退化的图像去推测图像的估计问题。
因此在不同的准则下及不同的数学最优方法下便形成了各种各样的算法。
而我接下来要介绍的算法是一种很典型的算法,维纳滤波复原法。
它假定输入信号为有用信号与噪声信号的合成,并且它们都是广义平稳过程和它们的二阶统计特性都已知。
维纳根据最小均方准则,求得了最佳线性滤波器的的参数,这种滤波器被称为维纳滤波。
二、维纳滤波器的结构维纳滤波自身为一个FIR 或IIR 滤波器,对于一个线性系统,如果其冲击响应为()n h ,则当输入某个随机信号)(n x 时,Y(n)=∑-n)()(m n x m h 式(1)这里的输入)()()(n v n s n x += 式(2)式中s(n)代表信号,v(n)代表噪声。
我们希望这种线性系统的输出是尽可能地逼近s(n)的某种估计,并用s^(n)表示,即)(ˆ)(y n sn = 式(3) 因而该系统实际上也就是s(n)的一种估计器。
这种估计器的主要功能是利用当前的观测值x(n)以及一系列过去的观测值x(n-1),x(n-2),……来完成对当前信号值的某种估计。
维纳滤波属于一种最佳线性滤波或线性最优估计,是一最小均方误差作为计算准则的一种滤波。
维纳维纳滤波实现模糊图像恢复知识讲解

维纳维纳滤波实现模糊图像恢复维纳滤波实现模糊图像恢复摘要维纳滤波器是最小均方差准则下的最佳线性滤波器,它在图像处理中有着重要的应用。
本文主要通过介绍维纳滤波的结构原理,以及应用此方法通过MATLAB函数来完成图像的复原。
关键词:维纳函数、图像复原一、引言在人们的日常生活中,常常会接触很多的图像画面,而在景物成像的过程中有可能出现模糊,失真,混入噪声等现象,最终导致图像的质量下降,我们现在把它还原成本来的面目,这就叫做图像还原。
引起图像的模糊的原因有很多,举例来说有运动引起的,高斯噪声引起的,斑点噪声引起的,椒盐噪声引起的等等,而图像的复原也有很多,常见的例如逆滤波复原法,维纳滤波复原法,约束最小二乘滤波复原法等等。
它们算法的基本原理是,在一定的准则下,采用数学最优化的方法从退化的图像去推测图像的估计问题。
因此在不同的准则下及不同的数学最优方法下便形成了各种各样的算法。
而我接下来要介绍的算法是一种很典型的算法,维纳滤波复原法。
它假定输入信号为有用信号与噪声信号的合成,并且它们都是广义平稳过程和它们的二阶统计特性都已知。
维纳根据最小均方准则,求得了最佳线性滤波器的的参数,这种滤波器被称为维纳滤波。
二、维纳滤波器的结构维纳滤波自身为一个FIR或IIR滤波器,对于一个线性系统,如果其冲击响应为()n h,则当输入某个随机信号)(nx时,Y(n)=∑-n )()(mnxmh式(1)这里的输入)()()(n v n s n x += 式(2)式中s(n)代表信号,v(n)代表噪声。
我们希望这种线性系统的输出是尽可能地逼近s(n)的某种估计,并用s^(n)表示,即)(ˆ)(y n sn = 式(3) 因而该系统实际上也就是s(n)的一种估计器。
这种估计器的主要功能是利用当前的观测值x(n)以及一系列过去的观测值x(n-1),x(n-2),……来完成对当前信号值的某种估计。
维纳滤波属于一种最佳线性滤波或线性最优估计,是一最小均方误差作为计算准则的一种滤波。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要本文介绍了维纳滤波的原理及其matlab 实现,以案例的形式展示FIR 维纳滤波的特性。
关键字:FIR 维纳滤波 Matlab1.引言滤波技术是信号分析、处理技术的重要分支,无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的。
信号分析检测与处理的一个十分重要的内容就是从噪声中提取信号,实现这种功能的有效手段之一是设计一种具有最佳线性过滤特性的滤波器,当伴有噪声的信号通过这种滤波器的时候,它可以将信号尽可能精确地重现或对信号做出尽可能精确的估计,而对所伴随噪声进行最大限度地抑制。
维纳滤波器就是这种滤波器的典型代表之一。
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 可能是正值,也可能是负值,并且它是一个随机变量。
因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即它的平方的统计期望最小:min )]([)(2==n E n e ξ (5)采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概率的描述。
3.维纳-霍夫方程的求解为了按(5)式所示的最小均方误差准则来确定维纳滤波器的冲激响应)(n h ,令)(n ξ对)(j h 的导数等于零,即可得m i m Ri h m R ixxxs ∀-=∑,)()()((6)式中,)(m R xs 是)(n s 与)(n x 的互相关函数,)(m R xx 是)(n x 的自相关函数,分别定义为)]()([m n s n x E R xs += )]()([m n x n x E R xx +=式(6)称为维纳滤波器的标准方程或维纳-霍夫(Wiener-Hopf )方程。
如果已知)(m R xs 和)(m R xx ,那么解此方程即可求的维纳滤波器的冲激响应。
式(6)所示标准方程右端的求和范围即i 的取值范围没有具体标明,实际上有三种情况:(1) 有限冲激响应(FIR )维纳滤波器,i 从0到1-N 取得有限个整数值;(2) 非因果无限冲激响应(非因果IIR )维纳滤波器,i 从∞-到∞+取所有整数值; (3) 因果无限冲激响应(因果IIR )维纳滤波器,i 从0到∞+取正整数值。
上述三种情况下标准方程的解法不同,本文只描述FIR 维纳滤波器的求解。
设滤波器冲激响应序列的长度为N ,冲激响应矢量为TN h h h h )]1()....1()0([-=(7)滤波器输入数据矢量为TN n x n x n x n x )]1()...1()([)(+--=(8)则滤波器的输出为)()()()(^n x h h n x n s n y TT ===(9)这样,式(6)所示的维纳-霍夫方程可写成R h P TT=或Rh P =(10)其中)]()([n s n x E P =(11)是)(n s 与)(n x 的互相关函数,它是一个N 维列矢量;R 是)(n x 的自相关函数,是N 阶方阵)]()([n x n x E R T=(12)利用求逆矩阵的方法直接求解式(10),得P R h opt 1-=(13) 这里opt 表示“最佳”,这就是FIR 维纳滤波器的冲激响应。
维纳滤波器的matlab 实现问题描述假设一个点目标在x ,y 平面上绕单位圆做圆周运动,由于外界干扰,其运动轨迹发生了偏移。
其中,x 方向的干扰为均值为0,方差为的高斯噪声;y 方向干扰为均值为0,方差为的高斯噪声。
1) 产生满足要求的x 方向和y 方向随机噪声500个样本; 2) 明确期望信号和观测信号;3) 试设计一FIR 维纳滤波器,确定最佳传递函数:1opt xx xs h R R -=,并用该滤波器处理观测信号,得到其最佳估计。
(注:自行设定误差判定阈值,根据阈值确定滤波器的阶数或传递函数的长度)。
4)分别绘制出x方向和y方向的期望信号、噪声信号、观测信号、滤波后信号、最小均方误差信号的曲线图;5)在同一幅图中绘制出期望信号、观测信号和滤波后点目标的运动轨迹。
4.2Matlab仿真及运行结果用Matlab实现FIR滤波器,并将先前随机产生的500个样本输入,得到最佳估计。
具体程序如下:clear;clf;sita=0:pi/:2*pi;xnoise=sqrt*randn(1,500);%产生x轴方向噪声ynoise=sqrt*randn(1,500);%产生y轴方向噪声x=cos(sita)+xnoise;%产生x轴方向观测信号y=sin(sita)+ynoise;%产生y轴方向观测信号%产生维纳滤波中x方向上观测信号的自相关矩阵rxx=xcorr(x);for i=1:100for j=1:100mrxx(i,j)=rxx(500-i+j);endendxd=cos(sita);%产生维纳滤波中x方向上观测信号与期望信号的互相关矩阵rxd=xcorr(x,xd);for i=1:100mrxd(i)=rxd(499+i);endhoptx=inv(mrxx)*mrxd';%由维纳-霍夫方程得到的x方向上的滤波器最优解fx=conv(x,hoptx);%滤波后x方向上的输出nx=sum(abs(xd).^2);eminx=nx-mrxd*hoptx;%x方向上最小均方误差%产生维纳滤波中y方向上观测信号的自相关矩阵ryy=xcorr(y);for i=1:100for j=1:100mryy(i,j)=ryy(500-i+j);endendyd=sin(sita);%产生维纳滤波中y方向上观测信号与期望信号的互相关矩阵ryd=xcorr(y,yd);for i=1:100mryd(i)=ryd(499+i);endhopty=inv(mryy)*mryd';%由维纳-霍夫方程得到的y方向上的滤波器最优解fy=conv(y,hopty);%滤波后y方向上的输出ny=sum(abs(yd).^2);eminy=ny-mryd*hopty;%y方向上最小均方误差subplot(2,4,1)plot(xd);title('x方向期望信号');subplot(2,4,2)plot(xnoise);title('x方向噪声信号');subplot(2,4,3)plot(x);title('x方向观测信号');subplot(2,4,4)n=0:500;plot(n,eminx);title('x方向最小均方误差');subplot(2,4,5)plot(yd);title('y方向期望信号'); subplot(2,4,6)plot(ynoise);title('y方向噪声信号'); subplot(2,4,7)plot(y);title('y方向观测信号'); subplot(2,4,8)plot(n,eminy);title('y方向最小均方误差'); figure;plot(xd,yd,'k');hold on;plot(x,y,'b:');hold on;plot(fx,fy,'g-');title('最终结果');运行结果如下:图2x方向及y方向的期望信号、噪声信号、观测信号以及滤波后的最小均方误差如上图2所示。
图3滤波后的到的信号与原始信号和噪声信号的对比如上图3所示,滤波后的结果与期望信号还是很接近的,整体上达到了最优滤波的效果。
参考文献:1.姚天仁孙洪。
现代数字信号处理。
华中科技大学出版社,20052.崔晓杰,维纳滤波的应用研究,2006。