实验四 用窗函数法设计FIR数字滤波器

文章目录

实验目的:

1、熟悉线性相位FIR滤波器的幅频特性和相频特性;
2、加深对窗函数法设计FIR数字滤波器的基本原理的理解;
3、了解Matlab有关窗函数法设计的子函数以及各种不同窗函数对滤波器性能的影响。
实验原理:
在这里插入图片描述在这里插入图片描述
根据上式中的正、负号和长度N取为奇数
或偶数又将线性相位FIR滤波器分成四类。 要 根据所设计的滤波特性正确选择其中一类。
在这里插入图片描述
对于理想的数字低通滤波器频率响应,有下列子程序实现(程序名为ideallp.m):

function hd=ideallp(wc,N)
tao=(N-1)/2;
n=[0:(N-1)];
m=n-tao+eps;
hd=sin(wc*m)./(pi*m);

在这里插入图片描述
实例:已知某FIR数字低通滤波器截止频率wc=0.2π,滤波器长度N=11,分别用矩形窗、汉 宁窗和布莱克曼窗来设计该滤波器,绘制幅频响应曲线和损耗函数曲线。

wc=0.2*pi; N=11;
hd= ideallp(wc,N); % 用wc=0.2*pi的理想低通作为逼近滤波器
wd1=boxcar(N)' ; b1=hd.*wd1; % 用矩形窗设计:
wd2=hanning(N)'; b2=hd.*wd2; % 用汉宁窗设计:
wd3=blackman(N)' ;b3=hd.*wd3; % 用布莱克曼窗设计:
[H1,w]=freqz(b1,1); % 用矩形窗设计的频率特性
[H2,w]=freqz(b2,1); % 用汉宁窗设计的频率特性
[H3,w]=freqz(b3,1); % 用布莱克曼窗设计的频率特性
subplot(1,2,1), plot(w,abs(H1),w,abs(H2),':',w,abs(H3),'-.');% 绘幅特性
legend('矩形窗','汉宁窗','布莱克曼窗')
xlabel('\omega'),ylabel('|H(\omega)|')
subplot(1,2,2), % 绘分贝幅特性
plot(w,20*log10(abs(H1)),w,20*log10(abs(H2)),':',w,20*log10(abs(H3)),'-.');
legend('矩形窗','汉宁窗','布莱克曼窗')
xlabel('\omega'),ylabel('dB')

在这里插入图片描述

————————————————
freqz()函数
MATLAB提供了专门用于求离散系统频响特性的函数freqz(),调用freqz()的格式有以下几种:

(1)[H,w]=freqz(B,A,N); %N默认值为512

(2)[H,w]=freqz(B,A,N,‘whole’);

(3)[H,w]=freqz(B,A,[自定义区间]);

上式中B和A分别对应离散系统的系统函数H(z)的分子、分母多项式的系数向量:

   B=[b1,b2,...];    A=[a1,a2,...];

返回量H则包含了离散系统对应区间内N(N为正整数)个频率等分点的频率响应,w为N个频率等分点的值。

(1)式调用默认区间 0:pi

(2)式调用主值区间 -pi:pi

(3)式自定义区间,如[0:2pi/n:2pi]

最后利用abs()和angle()函数及plot()函数,即可绘制出系统在频率区间的频响曲线。

————————————————

原文链接:https://blog.csdn.net/machinelearning_er/article/details/79444352

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值