1 希尔伯特变换的基本原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

希尔伯特变换在数字信号处理理论和应用中有着十分重要的作 用,它维系着对离散序列进行傅里叶变换后的实部和虚部之间或者幅度和相位之间的关系。

1 希尔伯特变换的基本原理

Hilbert 变换测量法对各次谐波都能有精确的90°移相,给定一连续周期信号x(t),

连续时间信号x(t)的希尔伯特变换

定义为:

t t x t x t x d d πττπττπττ1)

(1)

(1)(⊗==⎰⎰+∞∞--+∞∞-- (1)

由式(1)可得单位冲击响应h(t)=)(1t x ,由于jh(t)=)(t j 的傅里叶变换是符号sgn(w),所以希尔伯特变换器频率特性为:

H (e jw )=—jsgn(w)= ⎩⎨

⎧-j j 00<>x x 记H (j )ω=)

(ωj H e j )(ωϕ,当)(ωj H =1时: ⎩⎨⎧-=22)(ππωϕ,, 0

0<>ωω 信号x(t)的希尔伯特变换可以看成信号x(t)通过一个幅度为1的全通滤波器输出,信号通过希尔伯特变换后,其负频率成分作+90的相移,而正频率成分作—90的相移。

这类滤波器要求滤波器的零频率响应为0,若滤波器的阶数为偶,则要求归一化频率为零。即如果滤波器的阶数为偶数,那么增益在频率为0Hz 和2fs 处必须降为零,希尔伯特必须是一个带通滤波器。如果滤波器的阶数为奇数,那么增益在频率为0Hz 处必须降为零,希

尔伯特滤波器必须是一个高通滤波器。

随着信息时代的到来和高速发展,数字信号处理已经成为一门极其重要的学科和技术,并且在通信、语音、图像、自动控制等众多领域得到了广泛应用。在数字信号处理中,数字滤波器占有极其重要的地位,具有精度高、可靠性好、灵活性大等特点。现代数字滤波器可以用软件和硬件两种方式实现。软件方式实现的优点是可以通过滤滤器参数的改变去调整滤波器的性能。本文就是基于MATLAB提出希尔伯特FIR滤波器的设计方法。

MATLAB是matrix与laboratory两个词的组合,意为矩形工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。MATLAB 是一款十分优秀的计算和仿真软件,其自带的信号处理工具箱为数字滤波器提供了良好的设计与仿真平台。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效的数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学

计算软件的先进水平。

数字滤波器在数字信号处理中扮演着非常重要的角色,数字滤波器设计是数字信号处理领域中重要的研究方向之一。数字滤波器根据其单位脉冲响应特性不同可以分为IIR滤波器和FIR滤波器。FIR 滤波器由于是有限长脉冲响应滤波器,因而它是稳定的;同时,FIR滤波器可以实现严格的线性相位。基于以上两优点,FIR滤波器得到了更为广泛的应用。

2希尔伯特变换器的MATLAB设计

2.1 直接程序

MATLAB信号处理工具

提供了firls函数和remez函数,它们的调用格式语法规则相同,只是优化算法不同,函数firls利用最小二乘法使期望的频率响应和实际的频率响应间的误差最小;函数remez实现Park-Mcclellan 算法,这种算法利用remez交换算法和che-byshev近似理论设计滤波器,使实际频率响应拟合期望频率响应达到最优。

函数通用格式为

b=remez(n,f,m,’h’)或b=firls(n,f,m,’h’),其中,n为滤波器的阶数;f 为滤波器期望频率特性的频率向量标准化频率,取值0—1,是递增向量,允许定义重复频点;m为滤波器期望频率特性的幅值向量,向量m和f必须同长度且为偶数;b为函数返回的滤波器系数,长度为n+1,本文将采用remez函数法。

下面设计一个希尔伯特变换器,要求采样频率为2000Hz,通频段

为50-950Hz,滤波器阶数为60阶。实现程序如下:

clf;n=60;

f=[0.05 0.95],m=[1 1]; % 理想滤波器的幅频特性

fs=2000; % 采样频率

b=remez(n,f,m,’h’); % 采用remez设计Hilbert变换器

[h,w]=freqz(b,1,512,fs); %计算Hilbert变换器的脉冲响应

figure(1);

pkit(w,20 log10(aba(h)));grid; %计算幅频特性

axis([0 1000-40 10]);

相关文档
最新文档