基于MATLAB的IIR设计:冲激响应不变法,双线性变换法

您所在的位置:网站首页 双线性变换法设计iir滤波器的预畸变公式 基于MATLAB的IIR设计:冲激响应不变法,双线性变换法

基于MATLAB的IIR设计:冲激响应不变法,双线性变换法

2023-05-16 04:21| 来源: 网络整理| 查看: 265

目录参考直接套用matlab的内建函数做两种设计方法的比较

参考

数字信号处理原理及其MATLAB实现(第3版)的6.2 冲激响应不变法 (页码p152) 数字信号处理原理及其MATLAB实现(第3版)的7.3 双线性变换法 (页码p155)

直接套用matlab的内建函数做

将\(H_a(s)=\frac{1000}{s+1000}\)分别用冲激响应不变法和双线性变换法变化为数字滤波器系统函数\(H(z)\),并画出\(H_a(s)\)和\(H(z)\)的频率响应曲线。抽样频率分为1000Hz和500Hz 我之前写过一篇拿mma做的文章

clc; close all; clear all; b=1000;a=[1,1000]; w=[0:1000*2*pi]; [hf,w]=freqs(b,a,w); subplot(2,3,1); plot(w/2/pi,abs(hf)); grid; xlabel('f/(Hz)');ylabel('幅度'); title('原模拟滤波器幅频特性'); Fs0=[1000,500]; for m=1:2 Fs=Fs0(m); [d,c]=impinvar(b,a,Fs); wd=[0:512]*pi/512; hw1=freqz(d,c,wd); subplot(1,3,2); plot(wd/pi,abs(hw1)/abs(hw1(1))); hold on; end title('冲激响应不变法'); grid; xlabel('f/(Hz)'); text(0.52,0.88,'Ts=0.002s'); text(0.12,0.54,'Ts=0.001s'); for m=1:2 Fs=Fs0(m); [f,e]=bilinear(b,a,Fs); wd=[0:512]*pi/512; hw2=freqz(f,e,wd); subplot(1,3,3); plot(wd/pi,abs(hw2)/abs(hw2(1))); hold on; end title('双线性变换法'); grid; xlabel('f/(Hz)'); text(0.5,0.74,'Ts=0.002s'); text(0.12,0.34,'Ts=0.001s');

两种设计方法的比较

冲激响应不变变换法会造成频响混叠,不宜用来设计高通、带阻滤波器,适用于基本上是限带的滤波器,如低通和带通滤波器,当强调以控制时间响应为主要目的来设计滤波器时,采用这种方法比较合适。 双线性变换法克服了频率响应的混叠现象,但频率变换关系产生了非线性。对具有分段常数幅频特性的选频滤波器来说,频率非线性失真问题可以用预畸变方法解决。并且双线性变换法同冲激响应不变变换法相比,它具有计算简单和易于实现的特点。因此,实际工作中广泛采用双线性变换法来设计IⅡR数字滤波器。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3