基于MATLAB的希尔伯特fir滤波器设计

更新时间:2024-06-04 08:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本科毕业设计(论文)

题 目 基于MATLAB的希尔伯 特FIR滤波器设计_ 姓 名 专 业 电子科学与技术 学 号 指导教师 张庆辉

郑州科技学院电气工程学院 二○一四年五月

目 录

摘 要 ............................................................................................................................ I ABSTRACT .................................................................................................................. II 前言 ..............................................................................................................................IV 1 设计的目的与意义 .................................................................................................... 1 2 Matlab概述 ............................................................................................................. 3

2.1 MATLAB语言的发展 .................................................................................. 3 2.2 MATLAB的主要功能 .................................................................................. 3 2.3 matlab的程序结构 ........................................................................................ 4 3 希尔伯特变换的基本原理 ........................................................................................ 5

3.1希尔伯特变换的定义 ....................................................................................... 6

3.1.1 卷积积分 ................................................................................................ 6 3.1.2 ?2相位 ................................................................................................ 6 3.1.3 解析信号的虚部 .................................................................................... 7 3.2 希尔伯特变换的性质 ...................................................................................... 8

3.2.1 线性性质 ................................................................................................ 8 3.2.2 移位性质 ................................................................................................ 8 3.2.3 希尔伯特变换的希尔伯特变换 ............................................................ 8 3.2.4 逆希尔伯特变换 .................................................................................... 8 3.2.5 奇偶特性 ................................................................................................ 9 3.2.6 能量守恒 ................................................................................................ 9 3.2.7 正交性质 ................................................................................................ 9 3.2.8 调制性质 ................................................................................................ 9 3.2.9 卷积性质 .............................................................................................. 10

4 Fir滤波器的基本原理及设计方法 ...................................................................... 11

4.1 Fir滤波器的基本原理及其特点 ................................................................... 12

4.1.1 FIR数字滤波器的基本原理 ............................................................... 12 4.1.2 FIR滤波器的基本特点 ....................................................................... 12

4.2 FIR数字滤波器的设计 ................................................................................. 13 5 希尔伯特fir滤波器 ................................................................................................ 14 6 希尔伯特变换的应用 .............................................................................................. 18

6.1 希尔伯特变换在探地雷达数据处理中的应用 ............................................ 18

6.1.1 公式 ...................................................................................................... 18 6.1.2 算法 ...................................................................................................... 19 6.2 数字I-Q下变频器 ........................................................................................ 20

6.2.1 希尔伯特变换 ...................................................................................... 21 6.2.2 基于希尔伯特变换的数字I-Q下变频器 .......................................... 22 6.3 希尔伯特变换在解调中的应用 .................................................................... 22

6.3.1 希尔伯特变换 ...................................................................................... 22 6.3.2 在解调中的应用 .................................................................................. 23 6.3.3 解调性能分析 ...................................................................................... 24

7 希尔伯特变换器的Matlab设计 ............................................................................ 26

7.1 直接程序法 .................................................................................................... 26 7.2 利用FDATool工具设计法 ........................................................................... 27 7.3 希尔伯特变换器的效果验证 ........................................................................ 31 结论 .............................................................................................................................. 33 前景展望 ...................................................................................................................... 34 致 谢 .......................................................................................................................... 35 参 考 文 献 ................................................................................................................ 36 附录 .............................................................................................................................. 37

基于MATLAB的希尔伯特FIR滤波器设计

基于MATLAB的希尔伯特FIR滤波器设计

摘 要

在通信系统中,经常需要对一个信号进行正交分解,即分解为同相分量和正交分量,并能有效地提取复杂信号的瞬时参数——瞬时振幅、瞬时相位和瞬时频率。希尔伯特变换器是幅频特性为1的全通滤波器,信号通过希尔伯特变化器后,其负频率成分作正90度相移,而正频率成分作负90度相移。因此希尔伯特变换在数字信号处理理论和应用中有着十分重要的作用,维系着对离散序列进行傅里叶变换后的实部和虚部之间或者幅度和相位之间的关系。而且在通过计算对低通滤波器的系数进行转换,其计算繁琐且存在一定的误差。Matlab作为滤波器设计的基础软件,具有强大的数学运算能力、方便实用的绘图功能及语言的高度集成性,它在其他科学与工程领域的应用也是越来越广,并且有着更广阔的应用前景和无穷无尽的潜能。

论文则主要是介绍了希尔伯特FIR滤波器的设计思想与步骤,通过建立滤波器模型利用MATLAB软件进行仿真,在计算机辅助计算基础上分析滤波器结构和参数的字长对其性能指标的影响。

本论文的设计思想是通过对FIR滤波器、希尔伯特变换器与MATLAB软件进行分别阐述和分析,来达到对希尔伯特fir滤波器整体的理解与设计,同时又通过对其应用的分析来加深对其的理解。

关键词:Matlab;希尔伯特变换器;FIR滤波器;FDATool工具

I

基于MATLAB的希尔伯特FIR滤波器设计

HILBERT FIR FILTER DESIGN BASED ON

MATLAB

Abstract

In a communication system, often need to orthogonal decomposition of a signal,

namely decomposition for in-phase component and quadrature component, and can effectively extract the instantaneous parameters of the complex signal, instantaneous amplitude, instantaneous phase and instantaneous frequency.Hilbert transformer is amplitude frequency characteristics of 1 all-pass filter, signal through Hilbert changes after its negative frequency components are 90 degree phase shift, and is making negative 90 degree phase shift frequency components.So the Hilbert transform in digital signal processing has a very important role in theory and application, sustained by Fourier transform of discrete sequence after or between the real and imaginary part of the relationship between the amplitude and phase.And through the calculation of low pass filter coefficient, its computation complex and there are some error.Matlab as the basis of filter design software, with a strong mathematical operation ability, convenient and practical drawing function and the language highly integration, it's on the other is also more and more widely used in the field of science and engineering, and has a broad application prospect and endless potential.

Paper has mainly introduced the design idea and steps of Hilbert FIR filter, by filter model is set up using MATLAB software, the simulation is based on computer aided calculation analysis filter structure and parameters of word length effect on its performance.

Design idea of this paper is based on FIR filter with MATLAB software, the Hilbert transformer expounds and analysis respectively, to achieve the overall

II

基于MATLAB的希尔伯特FIR滤波器设计

understanding and Hilbert FIR filter design, at the same time, through the analysis of its application to deepen our understanding of it.

Keywords :Matlab,Hilbert;transformer;FIR filter;FDATool tool

III

基于MATLAB的希尔伯特FIR滤波器设计

前言

随着信息时代的到来和高速发展,数字信号处理(DSP)已经成为一门极其重要的学科和技术。在数字信号处理(DSP)中,数字滤波器又占有极其重要的地位。数字滤波器具有精确度高,使用灵活、可靠性高等特点,具有模拟设备没有的许多优点,因此在各个科学技术领域得到了更为广泛的应用与发展,例如数字电视、语音、通信、雷达、声纳、遥感、图像、生物医学以及许多工程应用领域。对于以往的滤波器大多都是采用模拟电路技术,但是由于模拟电路技术存在很多难以解决的问题,但采用数字则可以避免很多类似的难题。而且数字滤波器在其他方面也有许多突出的优点都是模拟技术所不能及的,所以采用数字滤波器对信号进行处理是目前的信号发展方向。目前,数字信号滤波器的设计在图像处理,数据压缩等方面的应用取得了令人瞩目的进展和成就,并且近年来得到迅速发展。

对于数字滤波器,其根据单位脉冲响应特性的不同,可以分为IIR滤波器(递归滤波器)和FIR滤波器(非递归滤波器)。对于FIR滤波器,其冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的输入信号值。而对于IIR滤波器来说,其冲激响应理论上应是会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。

FIR 滤波器作为有限长脉冲响应滤波器,其具有稳定性;同时,其与IIR相比,它具有线性相位、容易设计等优点。同时,这也就表明了,IIR滤波器具有相位不线性,不容易设计的缺点。而另一方面,IIR滤波器却也拥有着FIR滤波器所不具有的缺点,那就是对于设计同样参数的滤波器,FIR滤波器比IIR滤波器需要更多的参数。这也就说明,要增加数字信号处理(DSP)的计算量。数字信号处理(DSP)需要更多的计算时间,因此对数字信号处理(DSP)的实时性产生了影响。因此,由于FIR滤波器的诸多优点,因而FIR滤波器得到了更为广泛的应用与发展。

随着数字信号处理(DSP)的高速发展,其在应用和实践也产生了诸多需要解决的问题。在通信系统中,经常需要对一个信号进行处理(就是把同相分量和正交分量分解开来)。由于希尔伯特变换可以把信号的相位进行90度的变化,但是而又不影响频谱分量的幅度,对信号进行希尔伯特变换就相当于对该信号

IV

基于MATLAB的希尔伯特FIR滤波器设计

进行正交移向,使变换之后的信号成为自身的正交对。由于希尔伯特变换器具有其他滤波器不具有的功能因此得到了广泛应用。

对于希尔伯特变换器来说,既可以通过IIR滤波器来实现,也可以通过FIR型滤波器来实现。而且两种滤波器的差别也不大,而且都能带来很好的误差控制。但是在实际的应用中,IIR滤波器要求设计两组相位差90°的希尔伯特滤波器,在实际应用中,其编程量比较大,同时也会产生相关的纹波和相位差,而FIR型滤波器的具有良好的线性相位,同时是非递归实现。只需要找到相关的单位冲击响应,实现的难度较小。因此在具体应用中,要综合考虑处理器的能力来做出选择。

对于终止准则、边界处理、曲线拟合、模态混叠以及手持终端(HHT)采样频率等问题进行了简单的分析与处理,并且从手持终端(HHT)的时间特征尺度的概念出发,对边界处理方法又有了全新的阐述:对于边界局部特征尺度延拓法来说,其比较好地完善了边界效应影响EMD分解。对于将手持终端(HHT)用于电力系统的信号处理,并根据手持终端(HHT)的信号突变检测性能,提出了一种超高压输电线路的EMD故障测距的方法。由仿真实验表明,而且该方法能很好地实现故障定位及测距。

在物理意义上:可以把希尔伯特看成一种滤波,其本质上就是对所有输入信号的进行90度相移;而且对于稳定的实因果信号,其傅立叶变换的实部和虚部都满足希尔伯特变换关系,同时其对数幅度谱和相位谱之间也满足此关系,前提就是该信号为最小相位信号。

对于在工程意义上:其对于自由度为一维的条信号,比如PAM,其等效基带信号是实的,这就意味着对应的基带频谱是共轭对称的,即其一半的频谱是冗余的,那么就要将频谱滤除一半后再进行传输,这就形成了所谓的单边带调制(SSB)。但是在理论上,一个信号和其Hilbert变化后的值相加,就可以得到所谓解析信号,该信号也只保留其原信号的正频谱。但是对于单边带调制虽然节省传输频率,但为了进行边带滤波,必须进行复杂的频谱成形,发送和接收的复杂度相对都比较高,相干载波的相位误差所造成的影响比较大。所以,选择PAM信号进行频谱滤除的滤波器具有一定的滚降,就是保留部分PAM信号中的冗余频谱,这样就成为了VSB调制。

V

基于MATLAB的希尔伯特FIR滤波器设计

对于希尔伯特变换器而言,可以把一个时延模块与一个FIR滤波器结合起来实现,也可用一组滤波器对来实现,而且对原型低通滤波器作正弦/余弦变换对于实现FIR型希尔伯特变换器来说就是一个最简单而又实用方法。但是,对于希尔伯特变换器来说,无论采用哪种方法都需要通过大量的计算来对低通滤波器的系数进行转换,而且其计算比较繁琐而且还存在一定的误差。Matlab作为一种基础软件,可以为滤波器的设计提供便利,不仅可以希尔伯特变换器的设计快速有效地实现出来,对其分析仿真简单便利,而且还可以使其达到最优化,而且还可以直接计算出希尔伯特变换器的系数,而且对于Matlab来说。其接口功能相对比较强大,使后续的设计更为方便。在Matlab平台上,可以通过采用直接程序法和FDATool工具法分别完成希尔伯特FIR滤波器的设计,还可以随时对比设计要求和希尔伯特变换器的特性,以使设计达到最优化。而且在实际使用中,只需按要求修改参数,就可实现不同的希尔伯特变换器,实用性比较强。

VI

基于MATLAB的希尔伯特FIR滤波器设计

1 设计的目的与意义

在通信系统中,经常需要对一个信号进行处理(就是把同相分量和正交分量分解开来)。由于希尔伯特变换可以把信号的相位进行90度的变化,但是而又不影响频谱分量的幅度,对信号进行希尔伯特变换就相当于对该信号进行正交移向,使变换之后的信号成为自身的正交对。由于希尔伯特变换器具有其他滤波器不具有的功能因此得到了广泛应用。

对于在数字与信号处理的领域中,一个实值函数的希尔伯特变换在此标示为H——就是将信号s(t)与1/(πt)做卷积,以得到s(t)。因此,希尔伯特变换结果s(t)可以被理解为输入是线性非时变系统的输出,而此系统的脉冲响应为1/(πt)。这是一项有用的数学,用在描述一个以实数值载波做调制的信号之复数包络,出现在通讯理论中。在通信系统中,经常需要对一个信号进行正交分解,即分解为同相分量和正交分量。由于希尔伯特变换可以提供90度的相位变化而不影响频谱分量的幅度,即对信号进行希尔伯特变换就相当于对该信号进行正交移相,使它成为自身的正交对。因此,希尔伯特在通信领域获得了广泛应用。例如:利用希尔伯特变换进行谐波恢复,希尔伯特变换在故障诊断中的应用,希尔伯特变换在信号解调中的应用,希尔伯特变换在语音信号处理中的应用等。

在传统的设计中,希尔伯特变换器(即希尔波特滤波器)可以由一个FIR滤波器和一个时延模块实现(因此希尔伯特FIR滤波器即为希尔伯特滤波器的一种),也可由一组滤波器对实现,而实现FIR型希尔伯特变换器的一个简单方法就是对原型低通滤波器作正弦/余弦变换。对于希尔伯特变换器,既可以通过IIR滤波器来实现,也可以通过FIR型滤波器来实现。而且两种滤波器的差别不大,都能带来很好的误差控制。但在实际的应用中,IIR滤波器要求设计两组相位差90°的希尔伯特滤波器,在实际应用中,编程量比较大,同时会产生相关的纹波和相位差,而FIR型滤波器的具有良好的线性相位,同时是非递归实现。只需要找到相关的单位冲击响应,实现的难度较小。因此在具体应用中,要综合考虑处理器的能力来做出选择。本文则是从FIR型滤波器出发来设计希尔波特滤波器。

1

基于MATLAB的希尔伯特FIR滤波器设计

??的相移,对负频率产生相移,说,也

2221可以说,在时域信号内,每一频率成分作波长移位。因此,希尔伯特变换器

信号的?的相移,对正频率产生??4又总是被称为90度移相器。

3.1.3 解析信号的虚部

为了对希尔伯特变换的意义进行进一步理解,在此引入解析函数Z(t):

Z(t)?f(t)?jf(?t) 也可以写成

Z(t)?A(t)e?j?(t) 其中,A(t)为希尔伯特变换的包络;?(t)为瞬时响应信号。 把希尔伯特变换的包络A(t)定义为

A(t)?f2?(t)?f2(t) 相位定义为

???(t)?arctan?f(t)??? ?f(t)? ?瞬时频率定义为

f1d?(f)0?2?dt 根据傅里叶变换式

Z(t)?F?1[Z(f)] ?f(t)?jf?(t)

??f(t)?Re[Z(t)]??f(t)?Im[Z(t)] 为计算Z(f),由F?(f)??[jsgn(f)]F(f).知

Z(f)?[1?sgn(f)]F(f)

?B1(f)F(f) 其中

7

(3-5)

(3-6)

(3-7)

(3-8)

(3-9)

(3-10) (3-11) 基于MATLAB的希尔伯特FIR滤波器设计

?2,?f?0B1(f)??

0,?f?0?因此,可以简单地从F(f)得到Z(t),而Z(t)的虚部即f(t)。通过观察希尔伯特变换的定义式可以发现其变换结果的意义输入是s(t)的线性非时变系统的输出,而此系统的脉冲响应为1/(πt)。希尔伯特实际上是一个使相位滞后π/2的全通移相网络。

?

3.2 希尔伯特变换的性质

3.2.1 线性性质

若a,b为任意常数,且f1(t)?H[f1(t)],f2(t)?H[f2(t)],则有

H[af1(t)?bf2(t)]?af1(t)?bf2(t) (3-12)

???? 3.2.2 移位性质

H[f(t?a)]?f(t?a) (3-13)

?3.2.3 希尔伯特变换的希尔伯特变换

H[f(t)]??f(t) (3-14)

?此性质表明,两重希尔伯特变换的结果仅使原函数加一负号,由此可以进一步

得到

H2n[f(t)]?j2nf(t) (3-15)

3.2.4 逆希尔伯特变换

f(t)?H?1[f(t)]??f(t)为f(t)与??

?f(?)d? (3-16)

???(t??)???1的卷积,可表示为 t?f(t)?F[jsgn(f)F(f)] (3-17)

?1?

8

基于MATLAB的希尔伯特FIR滤波器设计

其中,F(f)?F[f(t)]。

??3.2.5 奇偶特性

如果原函数f(t)是t的偶(奇),则其希尔伯特变换f(t)就是t的奇(偶)函数,?

???f(t)偶??f(t)奇 ?(t)奇???ff(t)偶3.2.6 能量守恒

根据帕塞瓦尔定理可知

??2???f(t)dt????|F(f)|2df

???2????f(t)dt??|F(f)|2df

??因而有

??2??2??f(t)dt??f(t)dt ??3.2.7 正交性质

?????f(t)f(t)dt?0 3.2.8 调制性质

对任意函数f(t),其傅里叶变换F(t)是带限的,即

F(t)???F(t),?|f|?fm?0,?其他

则有

??H[f(t)cos2?f0t]?f(t)sin2?f0t?H[f(t)sin2?f 0t]?f(t)cos2?f 0t

9

(3-18) (3-19)

(3-20)

(3-21) 基于MATLAB的希尔伯特FIR滤波器设计

3.2.9 卷积性质

H[f1(t)*f2(t)]?f1(t)*f2(t) (3-22)

??另外,希尔伯特变换具有周期性和同域性,即希尔伯特变换不改变原函数的周期性,也不改变域表示,而不像傅里叶变换那样,把时间函数(信号)从时域表示换成频域表示。 常用希尔伯特变换:

f(t) f(t) ?cosw0t sinw0t ejw0t sinw0t ?cosw0t ?jejw0t m(t)ejw0t

?jm(t)ejw0t 通过对希尔伯特变换的分析,使得我们对短信号和复杂信号的瞬时参数的定义及计算成为可能,能够实现真正意义上的瞬时信号的提取,因此希尔伯特变换在信号处理上具有十分重要的地位。

但是对于希尔伯特变换来说也存在以下问题:

(1) 希尔伯特变换只能在窄带信号中得到近似应用,其中B(B为信号带宽)。但是在实际应用中,希尔伯特变换对那些存在许多的非窄带信号也只能无能为力。即便是对于窄带信号,如果希尔伯特变换条件不能被窄带信号完全满足,也会直接导致结果发生错误。而且在实际信号中,由于存在大量的噪声,会使很多原来满足希尔伯特变换条件的信号而无法完全满足希尔伯特变换条件; (2) 对于任意给定t时刻,通过希尔伯特变换运算后的结果只能存在一个频率值,即只能处理任何时刻为单一频率的信号;

(3) 对于一个非平稳的数据序列,希尔伯特变换得到的结果很大程度上会失去了原有的物理意义。

10

基于MATLAB的希尔伯特FIR滤波器设计

4 Fir滤波器的基本原理及设计方法

根据冲激响应的时域特性,数字滤波器通常分为IIR(无限冲激响应)和FIR(有限冲激响应)两种。FIR(Finite Impulse Response)滤波器为有限长单位冲激响应滤波器,在数字信号处理系统中,是最基本的元件之一,它完全可以把任意幅频特性的又同时具有严格的线性相频特性得到保证,而且由于其拥有有限长单位抽样响应,因此FIR滤波器的系统相对稳定。因此,在通信、图像处理、模式识别等领域,FIR滤波器得到了广泛应用。但与IIR相比,在满足同样阻带衰减的情况下需要的阶数较高。FIR数字滤波器的基本结构为一个分节的延时线,把每一节的输出加权累加,可得到滤波器的输出。

FIR网络结构特点是没有反馈支路,即没有环路,其单位脉冲响应是有限长的。设单位脉冲响应h(n)长度为N,其系统函数H(z)和差分方差分别是

H(z)??h(n)zn?0N?1?n (4-1)

y(n)??h(m)x(n?m) (4-2)

m?0N?1对于FIR系统,其基本网络结构有二种,即直接型和级联型。如图4.1与图4.2。

图4.1 FIR网络直接型结构

图4.2 FIR级联型网络结构

11

基于MATLAB的希尔伯特FIR滤波器设计

4.1 Fir滤波器的基本原理及其特点

4.1.1 FIR数字滤波器的基本原理

对于有限冲激响应(FIR)数字滤波器,由于其本质上的稳定性,且可设计成具有严格的线性相位特性,因而得到了广泛的应用。FIR数字滤波器可用很多不同的结构形式来实现。由于硬件实现时,字长总是有限的,量化误差和运算舍人误差又不可避免,因此,人们一直在努力寻找具有最好数值计算性能的实现结构。

Fir滤波器的基本理论是一个线性非时变的有限精度的离散系统。在实现实际上,其滤波功能主要是通过一系列的乘法和加法运算来实现的。对于Fir滤波器来说,也可以通过以下差分方程来描述:

y(n)??h(k)x(n?k) (4-3)

n?0N?1其中,x(n)和y(n) 分别为Fir滤波器的输入序列与输出序列,h(n)是滤波器的单位脉冲响应,它的长度为N。对(4-3)式两边分别进行Z变换并整理即可得到滤波器的系统函数H(z)的表达式:

H(z)??h(n)z?n (4-4)

n?0N?1Fir滤波器的差分方程式(4-3)可以看出:由于系统的单位脉冲y(n)必然也有限,即Fir滤波器是绝对稳定系统;同时,由于Fir滤波器过程是两有限长序列x(n)和h(n)的线性卷积运算,因而可以采用DFT的快速算法FFT来实现,从而提高了算法效率。此外,当h(n)为对称实序列时,Fir滤波器可实现严格的线性相位。

4.1.2 FIR滤波器的基本特点

对于有限长单位冲激响应(FIR)滤波器来说,其具有以下特点: (1) 在有限个n值处对于系统中单位冲激响应h (n)不为零;(2) 对于系统函数H(z),其在|z|>0处收敛,极点全部在z = 0处(因果系统)其差分方程形式

12

基于MATLAB的希尔伯特FIR滤波器设计

为:y(n)??h(k)x(n?k);(3) 在结构上,有限长单位冲激响应(FIR)滤波器

n?0N?1为非递归结构,就是没有从输出到输入的反馈,但在有些结构中(例如频率抽样结构)也存在包含递归部分的反馈。如果设FIR滤波器的单位冲激响应h (n)为一个N点序列,0?n?N?1,则滤波器的系统函数可以表示为:

H(Z)??h(n)z?n (4-5)

n?0N?1 就是说,它有(N-1)阶极点在z = 0处,在有限z平面的任何位置有(N-1)个零点。

4.2 FIR数字滤波器的设计

对于FIR数字滤波器的设计实质,就是要确定能满足要求的转移序列或脉冲响应的常数问题。Fir滤波器目前常用的设计方法有频率采样法和窗函数法,窗函数法是从时域进行设计,而频率采样法是从频域进行设计。窗函数法由于简单、物理意义清晰,因而得到了较为广泛的应用。

窗函数设计法的基本思路为:选择适当的理想滤波器作为逼近的目标,并用合适的窗函数进行加窗,从而得到实际要设计的滤波器。窗函数法的基本设计步骤包括(1)选择合适的理想滤波器,并确定其传输函数 Hd(ejw);(2)利用序列的傅立叶反变换式求出其单位脉冲响应hd(n)?IDFT[Hd(ejw)] ;(3)根据设计要求中的过度带宽和阻带最小衰减指标分别确定窗函数的类型?(n)和长度N;(4)对理想滤波器的单位脉冲响应加窗,得到实际滤波器的单位脉冲响应 ;(5)求出实际滤波器的传输函数Hd(ejw)=DFT[hd(n)],看是否符合设计要求,如不满足,则重新设计。

但对于窗函数设计法,在设计时尽量要满足以下两个条件:(1)窗谱主辨尽可能窄,以获得较陡的过渡带;(2)尽量减少窗谱的最大旁瓣的相对幅度,使能量尽量集中于主辨,进而增加阻带的衰减。

13

基于MATLAB的希尔伯特FIR滤波器设计

5 希尔伯特fir滤波器

对于线性相位的FIR数字滤波器,可以被分为四种类型,都具有特定的表示和形状,对于每种情形下的频率响应函数来说。但对这四种滤波器的频率响应函数来说,可以被统一表示为:

H(ejw)?e?wej?kHr(ejw) (5-1)

式中,??(N?1)2 ,????2 ,k=0时为I、Ⅱ型。k=1时为Ⅲ、Ⅳ型。 Hr(ejw)为振幅响应。根据希尔伯特数字滤波器的特性可以知道,希尔伯特数字滤波器的单位冲激响应为奇对称,即k=1,所以其频率响应函数为:

Hd(ejw)?e?j(w??)Hr(ejw) ???w?? (5-2) 在传统的设计中,希尔伯特变换器(即希尔波特滤波器)可以由一个时延模块和一个FIR滤波器来实现(因此希尔伯特FIR滤波器即为希尔伯特滤波器的一种),也可以实现由一组滤波器对,但是在实现FIR型希尔伯特变换器的方法中,对原型低通滤波器作正弦/余弦变换是一种比较简单的方法。对于希尔伯特变换器来说,既可以通过IIR滤波器来实现,也可以通过FIR型滤波器来实现。而且两种滤波器的差别都不是太大,都能带来很好的误差控制。但在实际的应用中,IIR滤波器要求设计两组相位差90°的希尔伯特滤波器,在实际应用中,编程量比较大,同时会产生相关的纹波和相位差,而FIR型滤波器的具有良好的线性相位,同时是非递归实现。只需要找到相关的单位冲击响应,实现的难度较小。因此在具体应用中,要综合考虑处理器的能力来做出选择。在传统的设计中,希尔伯特变换器(即希尔波特滤波器)可以由一个时延模块和一个FIR滤波器来实现(因此希尔伯特FIR滤波器即为希尔伯特滤波器的一种),也可以实现由一组滤波器对,但是在实现FIR型希尔伯特变换器的方法中,对原型低通滤波器作正弦/余弦变换是一种比较简单的方法。本文则是用fir滤波器来实现希尔伯特变换器设计。

14

基于MATLAB的希尔伯特FIR滤波器设计

在频域内,对于函数H(f)其可以从??一直延伸到+∞,但是在离散域中,对于数据必须是有限的点数 (例如为2M+1点)。在输入信号进行数字化过程中取出有限值的点数,我们可以看做是给输入信号加了一个窗,近似理想的希尔伯特变换可以用一个有限冲激响应滤波器FIR来实现。因此,对于希尔伯特变

换与FIR滤波器就有着密不可分的关系。对于h(nts)的z变换为

H(z)?n??M?h(nt)zsM?n (5-3)

H(z)?n????h(nt)zs???n (5-4)

这两个表示式的计算均是从负值开始求和,因此它们之间的关系是非因果关系,但也可以使其成为因果关系——通过利用时域内的一个简单变换。观察式(5-3)我们可以知道,n值是从-M到M开始进行加窗的,所以采用的时域变换就相当于将其第一个结果乘以z?M,并代入k=n+M,得到了

H(z)?n??M?h(nT)zM?(n?M)??h[(k?M)T]z?k (5-5)

k?02M式中,k值从0开始,故是因果关系。函数h(nts)的z变换可以表示为

H(z)?n????h(nt)zs?n???n =

n????h(nt)zs?1+h(0)+

?h(nt)zs1???n =

h(0)+?[h(nts)zn?h(nts)z?n] (5-6)

n?1??

15

基于MATLAB的希尔伯特FIR滤波器设计

式中,设z= exp(j2?fts)得

H(ej2?fts)=Hr( ej2?fts)+ jH(ej2?fts)=

???n????h(nt) e

s?j2?fts= h(0)+?[h(?nts)cos(2?nfts)

n?1+ jh(?nts)sin(2?nfts)

+h(nts)cos(2?nfts)-jh(nts)sin(2?nfts)] (5-7)

对于传输函数H(f),其在采样频率为fs时被限制为fs2宽带。根据采样具有的周期特性,则通过傅里叶级数形式,希尔伯特传输函数可以被表示为:

)??bnsin(2?nfts) (5-8)

n?1?Hi(ej2?nfts其中bn?2fs?fs2?fs2Hi(ej2?nfts)sin(2?nfts)df=

20[sin(2?nfts)df???sin(2?nfts)df]= fs??fs2?1?n为偶数[?2?2cos(n?)]??0 (5-9) ?4n???n?n为奇数在上式中,通过利用了关系式fsts?1来实现。 从(5-9)式中可以看到,如果满足条件

h(0)= 0 h(?nts)??h(nts) (5-10)

16

基于MATLAB的希尔伯特FIR滤波器设计

则代表在希尔伯特变换的传输函数中只含有虚部,因此,Hrf?0,而Hif?0,由此可以把式(5-9)中的Hi写为

Hi(ej2?nfts)??2?h(nts)sin(2?nfts) (5-11)

将上式与式(12)进行比较,得到

h(nts)??bn2 再利用这一关系以及式(5-11),则可求得

h(nt???0n为偶数s)??2

?n?n为奇数h(?nt??0n为偶数s)?????2 (5-13) n?n为奇数

17

(5-12) 基于MATLAB的希尔伯特FIR滤波器设计

6 希尔伯特变换的应用

6.1 希尔伯特变换在探地雷达数据处理中的应用

探地雷达(Ground Penetrating Radar)是近几年才迅速发展起来的高分辨高效率的无损探测技术,向地下发送脉冲形式的高频宽带电磁波,利用地下介质电性参数差异,根据回波信号的振幅、波形和频率等运动学特征来分推断其介质结构和物性特征,具有快速便捷、操作简单、抗干扰和场地适应能力强、探测分辨率高等方面的特点,目前已经成为工程检测和勘察最为活跃的技术方法之一。

雷达探测必须经历数据的采集、处理和解释等三个步骤,数据处理的目的就是要压制干扰,以最大限度的分辨在雷达图像剖面上显示反射波,提取有效信息,因此信号处理的好坏直接关系到最终资料解释的正确与否,是至为关键的一步。

探地雷达在资料处理上,属于数字信号处理范畴(从理论上分析)。在信号分析处理中,对于希尔伯特(Hilbert)变换,在其本质上为一种全通滤波器,为一种重要方法, 希尔伯特变换中解析表达式中的实部与虚部的正弦和余弦关系得到了巧妙地应用,对于任意时刻的瞬时相位、瞬时幅度及瞬时频率被定义, 使得提取复杂信号与短信号的瞬时参数的成为可能,从而获取信号中所含的信息更为有效与真实,对地下介质的分布情况的分析非常有利。下面将希尔伯特变换用于探地雷达资料的数据处理中,从中提取出瞬时振幅、瞬时相位和瞬时频率,即“三瞬”信息,为后续的雷达资料解释提供了很好的依据。

6.1.1 公式

雷达记录x?t? 的希尔伯特变换公式

x(t)?x(t)??1 (6-1) ?t变换因子的时间响应h?t? 为

18

基于MATLAB的希尔伯特FIR滤波器设计

1h(t)??t (6-2)

??j,??0其频率响应 H?????

j,??0?由上式可知,经过希尔伯特变换之后,一个是实信号相位谱要发生90o相移,因此希尔伯特变换被称为90o相移滤波。

6.1.2 算法

可以设把解析信号定义为依赖于时间的复变量

u?t??x??t? (6-3) t?jy?

式中,x?t?是本身信号,y?t?是信号的正交变换。对于正交,就是对记录信号作90o相移的翻版。对x?t?作希尔伯特变换就可得到

y(t)?x(t)?1?t (6-4)

代入方程式( 6-4),我们有:

u?t??x?t??j1?x?t? (6-5) ?t1??或 u?t?????t??j??x?t?

?t??这样,要得到探地雷达单道x?t? 的解析信号u?t?:

??t??j1 ?t当在傅立叶变换域中进行解析的,这个算子与负频率基础上就是零。因此在复数道中,u?t?不包含负频率成分。在算出u?t?时,就可以用指数形式来表达:

u?t??R?t?e式中

j??t? (6-6)

R?t????x?t??y?t??? (6-7)

2212

19

基于MATLAB的希尔伯特FIR滤波器设计

???t??arctan???yt??x?t??? (6-8)

这里 R?t?代表瞬时振幅,??t?代表瞬时相位。

对瞬时相位还可用下面一种方法计算。对方程(6-6)两边取对数得,

lnu?t??lnR?t??j??t? (6-9)

因此

u?t????t??Im?ln?? (6-10)

式中,Im是虚部。

瞬时频率是瞬时相位函数的时间变化速率:

d??t???t??dt (6-11)

对方程式(6-11)求导:

?1du?t??d??t??Im??dtutdt???? (6-12)

为实际实现,方程式(6-12)写成差分方程:

?ut?ut??t?1?t?Im??u?u2?t??tt??t?? (6-13)

最后对方程式(6-13)简化得

?t??u?u?2Im?tt??t??t?ut?ut??t? (6-14)

6.2 数字I-Q下变频器

在通信系统中,人们提出利用数字方式产生具有高平衡度I- Q信道的方法。在该方法中,I信道的数据从单信道的下变频器得到,Q信道的数据通过对I信道的数据进行处理产生,从而把I-Q信道输出之间的不平衡度保持在最低限度。以数字I-Q下变频器为例,通过对数字化后的输入信号进行快速傅里叶变

20

基于MATLAB的希尔伯特FIR滤波器设计

换以确定X?f?,其时域希尔伯特变换是利用H?f?的定义,并通过FFT反变换来

6.2.1 希尔伯特变换

函数x?t?的希尔伯特变换定义为与x?t?函数h?t?的卷积。其可以被表示为

11?x???H??x?t????x?t??x?t??h?t??x?t???t?x???t??d? (6-15)

hh其中,?表示卷积,在时域中,H??x?t???和x?t?可以被表示的希尔伯特变换,

h?t??x?t?。在频域中,希尔伯特变换可以被表示为

Xh(f)=X(f)H(f) (6-16) 由于h?t?的傅里叶变换为

F??h?t????H?f??jsgn?f??j?1,f?0?1,f?0 (6-17)

所以,在频域内,只要将X?f?的负频率乘以j,而正频率乘以?j,即可得到希尔伯特变换。

当输入信号为x?t??sin?2?fit?时,其傅里叶变换可以被表示为

X?f??j???f?fi????f?fi??? (6-18) 2?把其负频率乘以j,而正频率乘以?j,就可以得到

Xh?f??1????f?fi????f?fi????F???cos?2?fit??? (6-19) 2?在等式两边同时进行傅里叶反变换,得

H??sin?2?fit?????cos?2?fit? (6-20)

上式表明,对于正弦函数进行希尔伯特变换就可以得到负的余弦函数,结果就是对输入信号作了?j移相。同理,当输入信号为余弦函数时,经过希尔伯特变换后就为正弦函数。结果也作了?j移相了。因此,对于希尔伯特变换,就是提供90度得相位变化,但又不对频谱分量的幅度大小产生影响。

21

基于MATLAB的希尔伯特FIR滤波器设计

6.2.2 基于希尔伯特变换的数字I-Q下变频器

对于希尔伯特变换的数字I-Q下的变频器其结构如下图6.2所示:

延时单元 BPF A/D 希尔伯特滤波器 频移或抽取 图6.2 变频器的结构图

对于中频信号,其首先被直接采样,然后再分上、下两路,上路信号经过延迟单元,下路信号经过希尔伯特变换器,从而得到正交数字信号。

在数字接收机中,对于被数字化的输入信号,进行快速傅里叶变换(FFT)来确定X?f?,利用对H?f?的定义就是时域希尔伯特变换,并且通过快速傅里叶反变换来获得。此外,在离散域中,数据必须有有限个点数(例如为2M+1)。对输入数字化的信号进行取其有限个点数,这相当于给输入信号加了一个矩形窗。用一个有限冲激响应滤波器FIR就可以近似理想的希尔伯特变换。实际应用中,通常采用半带滤波器和级联积分梳状滤波器。

6.3 希尔伯特变换在解调中的应用

6.3.1 希尔伯特变换

一般情况下,通信系统接收到的解调信号可以表示:

s(t)?A(t)cos?(t)t?q(t)?n(t) (6-21)

不同的调制方式下,例如在调频、调相、调幅等,分别与A?t?、??t?、??t?的变化相对应。如果通过间接调频来实现调频信号,那么对于调制信号就可以被表示为

s(t)?A(t)cos?(t)t?q(t) (6-22)

利用同相和正交两个分量可以在正交解调法中求得如下:

s?t??A?t?cos????t???cos??ct??A?t?sin????t???sin??ct??Xi?t?cos??ct??Xq?t?sin??ct?

22

基于MATLAB的希尔伯特FIR滤波器设计

其中Xi?t??A?t?cos? ???t???,Xq?t??A?t?sin????t??? (6-23)

就是正交解调法中的同相和正交两个分量,根据Xi?t?、Xq?t?,就可以解调各种调制方式。利用Xi?t?和Xq?t?求A?t?、??t?如下:

2A?t??Xi2?t??Xq ?t? (6-24)2?Xq?t????t??arctan?2? (6-25)

??Xi?t???希尔伯特变换的定义:给定实值函数x?t?,它的希尔伯特变换记作x?t?。

希尔伯特变换有一条重要的性质:设低频限带信号a?t?的傅里叶变换为

A???,带宽为 ??,则当?c???2时,有

H??a?t?cos??ct????a?t?sin??ct? H??a?t?sin??ct?????a?t?cos??ct?

?? ,希尔伯特对于已调信号来说,s?t??A?t?cos???ct???t???,?c??2变换可以被表示为

s?t??A?t?sin???ct???t??? (6-26)由式(6-25)及式(6-26)可得

A?t??s?t??s?t? (6-27)

22?????s?t?? ??t??arctan???ct (6-28)

?s?t??????将式(6-28)和式(6-29)与式(6-25)和式(6-26)对比,虽然我们可以看出两者是非常相似的,但是对于两者来说,在实现上实际有很大的区别与不同。

6.3.2 在解调中的应用

由希尔伯特变换的定义和性质,我们可以把解调器结构设计称如下图6.3所示:

23

基于MATLAB的希尔伯特FIR滤波器设计

延时器 A/D 希尔伯特滤波器 幅度提取与相位提取 基带信号解调

图6.3 通用解调器结构

经过AD采样后,信号s?t?离散化为s?n?,则

s?n??A?n?cos? ?n?c???n??? (6-29)

根据希尔伯特变换的性质我们可知道,对于x?t?的希尔伯特变换来说,就是x?t?与冲激响应为h?t??1的系统卷积。在设计希尔伯特滤波器时,对于在?t数字信号处理中我们基本上都是采用窗化法。它的冲激响应可以表示为

h?n???n?M2?1??1???1?n?M2??n?M (6-30) ??2??????n?为窗函数,M为滤波器的阶数。

这样当S?n?通过滤波器时必须加上延时器,因为其会产生M2的延时,因此可以保证信号S?n?与它的希尔伯特变换S?n?同步,得到准确的A?n?和

S?n?。

??6.3.3 解调性能分析

与正交解调器相比,系统在中频段的处理得到了很大程度的简化,而且把不通用的锁相环路去掉了,从而增强了系统通用性。对于希尔伯特滤波器和幅度相位提取模块的实现也可以采用专用的数字信号处理芯片,而由DSP等通用数字信号处理芯片来对基带信号进行处理。根据解调不同的需要,系统可以极为方便的更新算法在基带信号处理上。对于此种方法,对于线性运算基带的匹配滤波和判决,所以加性噪声不会向乘性噪声转变,也不会有门限效应的产生,而且信噪比也不会影响解调的性能。值得注意的是,在希尔伯特变换解调中,

24

基于MATLAB的希尔伯特FIR滤波器设计

对于基带信号的相位和幅度必须得到。平方和开方运算就是幅度的计算,是其非线性运算,因此门限效应不会受到噪声影响,也不会因为信噪比的不同和系统性能不同而有所变化,从而对系统的实用性造成一定的影响。

25

基于MATLAB的希尔伯特FIR滤波器设计

7 希尔伯特变换器的Matlab设计

7.1 直接程序法

在Matlab信号处理软件中,包含了firls函数和remez函数,它们具有相

同的调用格式、语法规则,但是具有不同的优化算法,对于函数firls,对于期望的频率响应和实际的频率响应间的误差最小是利用最小二乘法来实现的; Park-McClellan算法是用函数remez来实现的,通过利用remez交换算法和Che-byshev近似理论设计滤波器,来使这种算法的实际频率响应拟合期望频率响应达到最优。

函数的调用格式可以表示为b=remez(n,f,m,?h‘)或b=firIs(n,f,m,?h‘),其中,n为滤波器的阶数;f为滤波器期望频率特性的频率向量标准化频率,取值0~1,是递增向量,允许定义重复频点;m为滤波器期望频率特性的幅值向量,向量m与f必须同长度且同为偶数;b为函数滤波器系数,长度为n+1,在这里将采用remez函数法。

在下面希尔伯特变换器的设计,设采样频率为2 000 Hz,通频带为50~950 Hz,滤波器阶数为60阶。程序实现如下:

clf;n=60;

f=[0.05 0.95];m=[1 1];

fs=2000;

b=remez(n,f,m,‘h‘); [h,w]=freqz(b,1,512, fs); figure(1);

plot(w,20?log10(abs(h)));grid; axis([0 1000 – 40 10]); xlabel; ylabel; title; figure(2);

26

本文来源:https://www.bwwdw.com/article/akm6.html

Top