用FIR滤波器设计数字微分器和数字希尔伯特变换器

一、数字微分器

理想数字微分器的幅值响应为

离散域处理中,若微分器长M为奇数(第3类滤波器),则转变为

若微分器长M为偶数(第4类滤波器),则转变为

 

案例1、用等波纹法设计数字微分器,微分器长N=33。程序如下:

clear all; clc; close all;

N=33;                            % 设置滤波器长
f=0:0.05:0.95;                   % 设置频率点
a=f*pi;                          % 设置对应频率点的幅值
b=firpm(N,f,a,'differentiator'); % 用等波纹法设计
[db,mag,pha,grd,w]=freqz_m(b,1); % 求频域响应
% 作图
subplot 211; stem(b,'k');
title('微分器的脉冲响应')
xlabel('样点'); ylabel('幅值')
subplot 212; plot(w/pi,mag,'k','linewidth',2); 
grid; title('微分器的幅频特性')
xlabel('归一化频率'); ylabel('幅值')
set(gcf,'color','w');

运行结果如下:

 

分析:

①在firpm函数中可以带有'differentiator'参数,表示设计微分器,这给微分器的设计带来了便利。
②我们设置了微分器阶数是33,微分器系数长M为34(偶数),所以得到的微分器是第4类滤波器。有的文献指出,只有第4类FIR滤波器适合做微分器。微分器阶数是可以改变的,可根据具体情况自行设定,但为了保证微分器是第4类FIR滤波器,阶数应为奇数。

二、数字希尔伯特变换器

线性相位希尔伯特变换器的理想频率响应为

 

在离散条件下幅度响应是纯虚数,为

 

式中:M为奇数。

案例2、用等波纹法设计数字希尔伯特变换器,变换器系数长M=51。程序如下:

clear all; clc; close all;

N=50;                                % 设置滤波器长
M=N+1;                               % 希尔伯特变换器长
f = [0.05,0.95];                     % 设置频率点
a = [1 1];                           % 设置对应频率点的幅值
h = firpm(N,f,a,'hilbert');          % 用等波纹法设计
[db,mag,pha,grd,w]=freqz_m(h,[1]);   % 求频域响应
% 作图
subplot(1,1,1)
subplot(2,1,1); stem([0:N],h,'k'); 
title('希尔伯特变换器的脉冲响应')
xlabel('样点'); ylabel('幅值')
axis([0,N,-0.8,0.8])
set(gca,'XTickMode','manual','XTick',[0,N])
set(gca,'YTickMode','manual','YTick',[-0.8:0.2:0.8]);
subplot(2,1,2); plot(w/pi,mag,'k','linewidth',2); 
grid; title('希尔伯特变换器的幅频特性')
xlabel('归一化频率'); ylabel('幅值')
set(gca,'XTickMode','manual','XTick',[0,f,1])
set(gca,'YTickMode','manual','YTick',[0,1]);
set(gcf,'color','w');

运行结果如下:

分析: 

①在firpm函数中可以带有'hilbert'参数,表示设计希尔伯特变换器,这给希尔伯特变换器的设计带来了便利。
②程序中设置了希尔伯特变换器系数长是51,滤波器阶数N=50,系数长是奇数,所以得到的希尔伯特变换器是第3类滤波器。希尔伯特变换器阶数是可以改变的,可根据具体情况自行设定,但为了保证希尔伯特变换器是第3类FIR滤波器,阶数应为偶数,系数长为奇数。

参考文献:MATLAB数字信号处理85个实用案例精讲——入门到进阶;宋知用(编著) 

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值