FIR维纳滤波的设计
- 格式:doc
- 大小:314.50 KB
- 文档页数:6
数字信号处理实验4指导FIR滤波器的设计实验4FIR滤波器设计指导
FIR滤波器的设计是数字信号处理中的常见任务,它用于对信号进行滤波,去除不需要的频率分量或增强感兴趣的频率分量。
以下是一般的FIR滤波器设计步骤:
1.确定滤波器的要求:首先,您需要明确所需的滤波器类型和性能指标。
确定滤波器的截止频率,通带增益和阻带衰减等参数。
2.选择窗函数:在设计FIR滤波器时,窗函数可以用于控制滤波器的频率响应。
常见的窗函数包括矩形窗、汉宁窗、汉明窗等。
选择合适的窗函数取决于您的应用需求。
3.确定滤波器的阶数:滤波器的阶数决定了滤波器的复杂度和性能。
较低的阶数通常可以满足一般需求,但可能无法满足更严格的要求。
4.设计滤波器的频率响应:使用离散频率抽样的方法,通过设置滤波器响应函数在感兴趣的频率范围内为通带增益或阻带衰减,来设计过滤器的频率响应。
5.计算滤波器的系数:利用频率响应和所选窗函数的特性,使用离散傅里叶变换(DFT)或其他相关方法计算滤波器的系数。
6.实现滤波器:将计算得到的系数作为FIR滤波器的传递函数,按照需要的滤波器结构(如直接形式I、直接形式II等)进行实现。
7.评估滤波器的性能:使用仿真工具或实际测试数据,评估设计的滤波器在信号处理中的性能,如频率响应、幅度响应等。
请注意,以上步骤只是一般的指导,具体的FIR滤波器设计可能因应用需求而有所不同。
在实际设计中,您可能还需要考虑加窗技术、最小二乘法等高级方法来优化滤波器的性能。
第七章FIR滤波器的设计方法7.1引言数字滤波器是数字信号处理中的重要组成部分,其中FIR(有限冲激响应)滤波器是一种常见的数字滤波器。
FIR滤波器具有线性相位、稳定性和易于设计的特点,在各种应用领域如音频处理、图像处理和通信系统等都得到广泛应用。
本章将介绍FIR滤波器的设计方法。
首先,将介绍FIR滤波器的基本原理和结构,然后介绍常见的FIR滤波器设计方法,包括窗函数法、最小二乘法和频率采样法。
7.2FIR滤波器的原理和结构FIR滤波器是一种线性时不变系统,其输出信号是输入信号与滤波器的冲激响应之间的卷积运算结果。
FIR滤波器的冲激响应是有限长度的,因此称为有限冲激响应滤波器。
FIR滤波器的结构包括延迟单元和加权系数。
延迟单元用于存储输入信号的历史样本,而加权系数用于乘以相应的延迟单元样本。
滤波器的输出是延迟单元样本与加权系数的乘积之和。
7.3.1窗函数法窗函数法是一种常见的FIR滤波器设计方法。
其基本思想是通过窗函数将理想滤波器的频域特性调整到所需的频率响应特性。
常见的窗函数有矩形窗、汉宁窗和布莱克曼窗等。
具体的设计步骤包括选择窗函数、确定滤波器的阶数和剪切频率,并计算出相应的加权系数。
7.3.2最小二乘法最小二乘法是一种优化设计FIR滤波器的方法。
其基本思想是通过最小化实际输出与期望输出之间的均方误差来确定滤波器的加权系数。
常见的最小二乘法设计算法有布莱克曼算法和逆频域法等。
具体的设计步骤包括选择目标响应和误差函数,然后使用最小二乘法求解滤波器的加权系数。
7.3.3频率采样法频率采样法是一种常见的FIR滤波器设计方法。
其基本思想是在频域上对所需的频率响应进行采样,并计算出相应的加权系数。
常见的频率采样法设计算法有均匀频率采样法和非均匀频率采样法等。
具体的设计步骤包括选择目标响应和采样频率,然后使用插值法计算滤波器的加权系数。
7.4总结本章介绍了FIR滤波器的设计方法,包括窗函数法、最小二乘法和频率采样法。
实验四FIR数字滤波器的设计
FIR(有限冲击响应)数字滤波器是一种常见的数字信号处理器件,
可以用于滤波、降噪等应用。
下面是一种FIR数字滤波器的设计流程:
1.确定滤波器的需求:首先确定需要滤除的频率范围和滤波的类型,
例如低通、高通、带通、带阻等等。
2.设计滤波器的频率响应:根据滤波器的需求,设计其理想的频率响应。
可以使用窗函数、最小二乘法等方法获得一个理想的滤波器响应。
3.确定滤波器的阶数:根据设计的频率响应,确定滤波器的阶数。
阶
数越高,滤波器的响应越陡峭,但计算复杂度也会增加。
4.确定滤波器的系数:根据滤波器的阶数和频率响应,计算滤波器的
系数。
可以使用频域窗函数或时域设计方法。
5.实现滤波器:根据计算得到的滤波器系数,实现滤波器的计算算法。
可以使用直接形式、级联形式、传输函数形式等。
6.评估滤波器的性能:使用所设计的FIR滤波器对输入信号进行滤波,评估其滤波效果。
可以使用频率响应曲线、幅频响应、群延时等指标进行
评估。
7.调整滤波器设计:根据实际的滤波效果,如果不满足需求,可以调
整滤波器的频率响应和阶数,重新计算滤波器系数,重新实现滤波器。
以上是FIR数字滤波器的基本设计流程,设计过程中需要考虑滤波器
的性能、计算复杂度、实际应用需求等因素。
FIR滤波器设计分析FIR(Finite Impulse Response)滤波器是一类数字滤波器,其输出只取决于输入信号的有限数量的过去样本。
FIR滤波器的设计分析主要包括滤波器的设计目标、设计方法、设计参数选择、滤波器性能评估等方面。
首先,FIR滤波器的设计目标是根据特定的应用需求,设计一个能够满足给定要求的滤波器。
比如,在音频信号处理中,常见的设计目标包括降低噪声、增强语音清晰度等。
接下来,FIR滤波器的设计方法主要有窗函数法和频率采样法。
窗函数法是通过选择合适的窗函数来设计FIR滤波器,常见的窗函数有矩形窗、汉宁窗、汉明窗等。
频率采样法是通过在频域上选择一组等间隔的频率样点,然后通过频域设计方法将这些样点连接起来,得到FIR滤波器的频响。
设计参数选择是FIR滤波器设计的重要环节。
常见的设计参数包括滤波器阶数、截止频率、过渡带宽等。
滤波器阶数决定了滤波器的复杂度,一般情况下,滤波器阶数越高,滤波器的性能也会越好。
截止频率是指滤波器的频段边界,过渡带宽是指频域中通过频样点与阻带频样点之间的频带范围。
最后,FIR滤波器的性能评估主要包括幅频响应、相频响应、群延迟等指标。
幅频响应可以用来评估滤波器的频率特性,相频响应则描述了信号在滤波过程中的相对延迟。
群延迟是指信号通过滤波器时的延迟时间,对于实时信号处理应用非常重要。
总结起来,FIR滤波器设计分析主要涉及设计目标、设计方法、设计参数选择和滤波器性能评估四个方面。
通过合理选择设计方法和参数,并对滤波器的性能进行评估,可以设计出满足特定要求的FIR滤波器,从而实现信号处理、噪声降低等应用。
设计fir滤波器的方法
设计FIR滤波器的方法主要有以下几种:
1. 正交法:根据滤波器的频率响应要求,将滤波器的频率特性分解成一系列正交基函数,然后通过选取适当的基函数系数来确定滤波器的频率响应。
2. 窗函数法:根据滤波器的频率响应要求,在频域上选取一个窗函数,然后通过窗函数的傅里叶变换来确定滤波器的频率响应。
3. 最小二乘法:根据滤波器的频率响应要求,通过最小化输入输出误差的平方和,利用最小二乘法来确定滤波器的系数。
4. 频率采样法:根据滤波器的频率响应要求,在频域上选取一些特定的频率点,并指定这些点的增益值,然后通过求取这些频率点上的插值样值,从而确定滤波器的系数。
在实际应用中,常常根据具体的滤波器设计要求和计算复杂度的考虑,综合考虑以上方法,采用相关算法进行FIR滤波器的设计,如窗函数法与最小二乘法的结合,频率采样法与正交法的结合等。
FIR数字滤波器设计
设计FIR数字滤波器的一般步骤包括:确定系统响应要求、选择滤波器类型、选择滤波器规格、设计滤波器的幅频特性、设计滤波器的相频特性、选择适当的窗函数、计算滤波器系数、计算滤波器结构。
1.确定系统响应要求:确定需要滤波的信号类型、滤波器的通带、阻带、过渡带以及相应的增益要求。
2.选择滤波器类型:根据系统响应要求选择合适的滤波器类型,例如低通滤波器、高通滤波器、带通滤波器或带阻滤波器等。
3.选择滤波器规格:确定滤波器的阶数和截止频率,阶数越高,滤波器的截止频率越陡峭。
4.设计滤波器的幅频特性:根据系统响应要求,设计滤波器的幅频特性,包括通带增益、阻带抑制、过渡带宽度等。
5.设计滤波器的相频特性:根据系统响应要求,设计滤波器的相频特性,主要考虑滤波器的群延迟。
6.选择适当的窗函数:为了减小频率响应的波动,通常会使用窗函数来设计滤波器。
7.计算滤波器系数:根据滤波器的幅频特性和窗函数,通过数学计算来得到滤波器的系数。
8.计算滤波器结构:根据滤波器的系数,选择合适的滤波器结构来实现数字滤波器。
以上是设计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数字滤波器能保留一些典型模拟滤波器优良的幅度特性,但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器相位特性一般是非线性的。
实验二FIR滤波器设计与实现FIR(Finite Impulse Response)滤波器是一种数字滤波器,由有限长的冲激响应组成。
与IIR(Infinite Impulse Response)滤波器相比,FIR滤波器具有线性相位、稳定性和易于设计等优点。
本实验旨在设计和实现一个FIR滤波器。
首先,我们需要确定滤波器的规格和要求。
在本实验中,我们将设计一个低通FIR滤波器,将高频信号滤除,只保留低频信号。
滤波器的截止频率为fc,滤波器的阶数为N,采样频率为fs。
接下来,我们需要确定滤波器的频率响应特性。
常用的设计方法有窗函数法、最小最大规范法等。
本实验采用窗函数法进行滤波器设计。
窗函数法的基本思想是利用窗函数来加权冲激响应的幅度,以达到要求的频响特性。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
在本实验中,我们选择汉宁窗作为窗函数。
首先,我们需要计算出滤波器的理想频率响应。
在低通滤波器中,理想频率响应为0频率处幅度为1,截止频率处幅度为0。
然后,我们需要确定窗函数的长度L。
一般来说,窗函数的长度L要大于滤波器的阶数N。
在本实验中,我们选择L=N+1接下来,我们利用窗函数对理想频率响应进行加权处理,得到加权后的冲激响应。
最后,我们对加权后的冲激响应进行归一化处理,使滤波器的频率响应范围在0到1之间。
在设计完成后,我们需要将滤波器实现在实验平台上。
在本实验中,我们使用MATLAB软件进行滤波器实现。
首先,我们需要生成一个输入信号作为滤波器的输入。
可以选择一个随机的信号作为输入,或者选择一个特定的信号进行测试。
然后,我们将输入信号输入到滤波器中,得到滤波器的输出信号。
最后,我们将滤波器的输入信号和输出信号进行时域和频域的分析,以评估滤波器的滤波效果。
在实验的最后,我们可以尝试不同的滤波器设计参数,如截止频率、窗函数的选择等,以观察滤波器设计参数对滤波器性能的影响。
综上所述,本实验是关于FIR滤波器设计与实现的实验。
电气工程学院信号处理课程设计报告设计题目:维纳滤波器专业:生物医学工程指导教师:叶立夏学生姓名: 叶立夏学号: 144起迄日期: 2013年12月20日—2014年1月15日如果有做课程设计的同学不懂的,可以联系我!Qq:2目录前言 (3)1 设计任务及指标 (3)1.1 课程设计的内容和要求 (4)1.2 对课程设计成果的要求 (4)2 设计思想 (4)2.1 概述 (4)2.2 主要仪器设备及耗材 (5)3 课程设计的组成部分 (5)3.1具体操作 (5)4 实验分析 (9)4.1 原始图像显示 (9)4.2 噪声的强度对维纳滤波器的影响 (13)4.3 阶数对滤波效果的影响 (17)4.4 数据长度对维纳滤波的影响 (21)5 设计总结 (26)5.1思考题 (26)5.2实验心得 (26)6 主要参考文献 (27)附录 (27)前言去除信号中的噪声影响是信号处理中的一个重要内容,而滤波则是实现这一功能的重要手段之一。
滤波器可以分为两类,及经典滤波器和现代滤波器经典滤波器是假定输入信号中嘚瑟有用成分和希望去除的成分各自占有不同的频带。
当输入信号通过一个滤波器是可将欲去除的成分有效的去除,如果信号和噪声的频谱相互重叠,那么经典滤波器将无能为力。
现代滤波器理论研究的主要内容是从含有噪声的数据记录中估计出信号的某些特征灬信号本身。
一旦信号被估计出,那么估计出的信号的信噪比将比原信号的高。
现代滤波器把信号和噪声都视为随机信号,利用它们的统计特征导出一套最佳的估值算法,然后用硬件或软件予以实现。
现代滤波器理论源于维纳在20世纪40年代及其以后的工作,因此维纳滤波器便是这一类滤波器的典型代表。
维纳滤波器,也是最小平方滤波器,其基本思路为:设计一个滤波器,使其与输入信号滤波后的输出与期望输出在最小平方意义下的最佳逼近。
寻求最小均方误差的实质就是解维纳-霍夫方程。
1.设计任务及指标1.1课程设计的内容和要求(包括原始数据、技术要求、工作要求等):本设计的目的是产生用于信号滤波的维纳霍夫方程。
实验五 FIR滤波器的设计(一)一、实验目的(1) 掌握用窗函数法设计FIR滤波器的原理及方法,熟悉响应的计算机编程;(2) 熟悉线性相位FIR滤波器的幅频特性和相频特性;(3)了解各种不同窗函数对滤波器性能的影响。
二、实验原理与方法线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性分为四种: 1、h(n)为偶对称,N为奇数H(e jω)的幅值关于ω=0,π,2π成偶对称。
2、h(n)为偶对称,N为偶数H(e jω)的幅值关于ω=π成奇对称,不适合作高通。
3、h(n)为奇对称,N为奇数H(e jω)的幅值关于ω=0,π,2π成奇对称,不适合作高通和低通。
4、h(n)为奇对称,N为偶数H(e jω)ω=0、2π=0,不适合作低通。
窗函数法设计线性相位FIR滤波器步骤a)确定数字滤波器的性能要求:临界频率{ωk},滤波器单位脉冲响应长度N;b)根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应Hd(e jω)的幅频特性和相频特性;c)求理想单位脉冲响应h d(n),在实际计算中,可对H d(e jω)按M(M远大于N)点等距离采样,并对其求IDFT得hM (n),用hM(n)代替hd(n);d)选择适当的窗函数w(n),根据h(n)= h d(n)w(n)求所需设计的FIR滤波器单位脉冲响应;e)求H(e jω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。
窗函数的傅式变换W(e jω)的主瓣决定了H(e jω)过渡带宽。
W(e jω)的旁瓣大小和多少决定了H(e jω)在通带和阻带范围内波动幅度,常用的几种窗函数有:a)矩形窗 w(n)=R N(n);b)Hanning窗;c)Hamming窗;d)Blackmen窗;e)Kaiser窗。
(x)为零阶贝塞尔函数。
式中Io三、实验内容。
用Hanning窗设计一线性相位带通滤波器,(1)N=15,观察它的实际3dB和20dB带宽。
FIR维纳滤波器的设计
在信号处理的许多实际应用中,人们往往不能直接获得所需要的有用信号,需要从噪声中提取信号。
比如,在信号传输过程中,由于存在信道噪声等干扰,在接收端观测到的信号必然与原始信号不同。
为了从观测数据中尽可能精确地重现原始信号,而最大成都地抑制噪声,需要设计一种滤波器,其输出尽可能逼近原始信号,成为原始信号的最佳估计。
这种滤波器成为最佳滤波器。
维纳(Wiener)滤波器就是用来解决这样一类问题的一种滤波器。
本文将应用MATLAB并结合实例介绍FIR维纳滤波器的设计方法。
一、维纳滤波的原理
维纳滤波的本质是一种最佳估计问题,采用的是最小均方误差准则。
一个线性系统,其单位样本响应为h(n),当输入一个随机信号)
(
)
(
)
(n
n
s
n
xυ
+
=其中s(n)表示信号,)
(n
υ表示噪声,则输出y(n)为
∑-=
m m
n
x
m
h
n
y)
(
)
(
)
( (1) 系统是通过y(n)来估计s(n),因此将其称为s(n)的估计值,用)
(ˆn
s表示,即
)
(ˆ
)
(n
s
n
y=(2)
h(n)
)
(ˆ
)
(n
s
n
y=
)
(
)
(
)
(n
n
s
n
xυ
+
=
图1 维纳滤波器基本框图
图1所示为维纳滤波器的基本框图。
式(1)为一卷积,可以理解为从当前和过去的观察值x(n),x(n-1),x(n-2)…x(n-m),…来估计信号的当前值)
(ˆn
s。
维纳滤波器一般有三种用途。
用当前的和过去的观察值x(n),x(n-1),x(n-2),…来估计当前的信号值)
(ˆ
)
(n
s
n
y=称为滤波;用过去的观察值来估计当前的或将来的信号值)0
)(
(ˆ
)
(≥
+
=N
N
n
s
n
y称为预测;
用全部数据来估计过去的信号值)1)((ˆ)(>-=N N n s
n y 称为平滑。
维拉滤波采用的是最小均方误差准则,以)(n s 与)(ˆn s
分别表示信号的真值与估计值,而用e(n)表示它们之间的误差,即
)(ˆ)()(n s
n s n e -= (3)
那么最小均方误差表示为
)(n ξ=[][]min ))(ˆ)(()(22=-=n s
n s E n e E (4)
为了得到使式(4)最小时的维纳滤波器冲击响应,令)(n ξ对)(m h 的导数等于零,即
0)]()([2])
()
()([2)()(=--=∂∂=∂∂m n x n e E m h n e n e E m h n ξ (5) 由式(5)可得
0)]()([=-m n x n e E (6) 式(6)称为正交方程,表明任何时刻的估计误差都与用于估计的所有数据正交。
将式(1),式(3)代入式(6)可得
)()()(m R m h R xx m
sx -=∑ττ (7)
式(7)称为维纳-霍夫(Wiener-Hopf )方程,其中)(τsx R 是)(n s 与)(n x 的互相过函数,)(τxx R 是)(n x 的自相关函数,其表达式如下
)]()([)(ττ+=n x n s E R sx (8) )]()([)(ττ+=n x n x E R xx (9)
维纳滤波器有三种情况,一是FIR 维纳滤波器;二是非因果IIR 维纳滤波器;三是因果的IIR 维纳滤波器。
本文仅讨论FIR 维纳滤波器的求解。
二、FIR 维纳滤波器求解
设维纳滤波器的冲击响应序列长度为N ,则冲击响应矢量为 h=T N h h h )]1()1()
0([-
(10)
滤波器输入数据矢量为
)(n x =T N n x n x n x )]1()1()
([+--
(11)
着滤波器输出为
=)(n y )()()(ˆn x h h n x n s
T T == (12) 这样,维纳-霍夫方程可表示成
P=Rh (13)
其中P=)]()([n x n s E ,R=])()([T n x n x E 。
求解式(13)可得
h=P R 1
-
三、实例设计
结合维拉滤波器的原理,利用MATLAB 设计滤波器。
将随机信号X(n)看成是由典型白噪声序列源W(n)激励一个线性系统产生,
用
一
个
差
分
方程
(
)1
.3
5
x n x
n
x n -
-+
---
来描述。
进
行Z 变换得到
1233()1()()1 1.352 1.3380.6620.240X z H z W z z z z z ----=
=
-+-+,那么均
值为1的高斯白噪声序列W (n )可以用randn 函数产生,再利用函数X=filter(B,A,W)产生随机信号x(n)。
这里将滤波器的阶数设为101,根据维纳-霍夫方程:
-1[]rx1rx2
opt h =⨯,其中rx1是观测信号的自相关函数,rx2是观测信号和期望信
号的互相关函数。
定义维纳滤波的模型,最后带入fi lter 。
具体MATLAB 程序代码如下:
maxlag=100; N=100; %采样次数为100 x=zeros(N,1); y=zeros(N,1); var=1;
%%%%%%%%%%%%%%%%%%列出状态方程 x(1)=randn(1,1); %令x(-1)=x(-2)=x(-3)=x(-4)=0 x(2)=randn(1,1)+1.352*x(1);
x(3)=randn(1,1)+1.352*x(2)-1.338*x(1);
x(4)=randn(1,1)+1.352*x(3)-1.338*x(2)+0.602*x(1); for n=5:N
x(n)=1.352*x(n-1)-1.338*x(n-2)+0.602*x(n-3)-0.24*x(n-4)+randn(1,1); end;
v=randn(N,1); y=x+v; %z_x 为观测样本值=真值+噪声 %%%%%%%%%%%%%%%%%%%%%%%滤波 x = x'; y = y';
xk_s(1)=y(1); %赋初值 xk_s(2)=y(2); xk_s(3)=y(3); xk_s(4)=y(4);
xk=[y(1);y(2);y(3);y(4)];
%%%%%%%%%%%%%%%%%%计算观测函数 %维纳滤波器的生成
[rx,lags]=xcorr(y,maxlag,'biased');%观测信号的自相关函数
rx1=toeplitz(rx(101:end));%对称化自相关函数矩阵使之成为方阵,滤波器的阶数为101阶 rx2=xcorr(x,y,maxlag,'biased');%观测信号与期望信号的互相关函数 rx2=rx2(101:end); h=inv(rx1)*rx2'; %维纳-霍夫方程 xk_s=filter(h,1,y);%加噪信号通过滤波器后的输出 %%%%%%%%%%%%%%%%%%%%%计算误差 e_x=0; eq_x=0; e_x1=N:1;
%计算滤波的均值,计算滤波误差的均值
for i=1:N
e_x(i)=x(i)-xk_s(i); %误差=真实值-滤波估计值
end %%%%%%%%%%%%%%%%%%%%%%%作图
t=1:N;
figure(1);
plot(t,x,'r',t,y,'g',t,xk_s,'b');
legend('实际轨迹','观测样本','估计轨迹');
figure(2);
plot(e_x, 'r');
legend('平均误差曲线');
运行上述MATLAB程序,得到结果如下。
图2 滤波结果对比
从图2、图3中可以看出,设计能很好地估计原始数据。