数字字段
freqz使用基于FFT的算法计算数字滤波器的z转换频率响应。 具体而言,语句
[h,w]=freqz(b,a,p ) )。
返回包含数字滤波器p点的复频率响应h(EJ)。
h(EJ)=b )1) b )2) EJ.b ) n1 ) EJna )1) a )2) EJ.a ) m1 ) ejm
在最简单的形式中,freqz接受滤波器系数向量b、a和指定用于计算频率响应的点的数目的整数p。 freqz返回向量h的复频率响应以及向量w的实际频率点(以弧度/秒为单位)。
freqz可以接受其他参数,例如采样频率和由任意数量的频率点组成的向量。 以下示例计算12阶Chebyshev I类滤波器的256点频率响应。 调用freqz将采样频率fs指定为1000 Hz :
[b,a ]=cheb y1 (12,0.5,200/500 );
[h,f]=freqz(b,a,256,1000 );
因为参数列表包含采样频率,所以freqz返回向量f。 该向量f包含在频率响应计算中使用的从0到fs/2的256个频率点。
注意
此工具箱使用的单位频率是Nyquist频率规则,定义为采样频率的一半。 所有基本滤波器设计函数的截止频率参数都在Nyquist频率下进行归一化处理。 例如,在采样频率为1000 Hz的系统中,300 Hz将为300/500=0.6。 要将归一化频率转换为单位圆周围的角频率,请乘以。 要使归一化频率返回赫兹,请乘以一半的采样频率。
如果在没有输出参数的情况下调用freqz,则会同时绘制振幅-频率图表和相位-频率图表。 例如,截止频率为400 Hz、基于2000 Hz采样频率的9阶Butterworth低通滤波器,
[b,a ]=butter (9,400/1000 );
要计算此滤波器的256点复频率响应并使用freqz绘制振幅和相位
freqz(b,a,256,2000 ) ) ) )。
freqz也可以接受由用于计算频率响应的任意数量的频率点构成的向量。 例如,
w=linspace(0,pi );
h=freqz(b,a,w );
计算由向量b和a定义的滤波器在w的频率点处的复频率响应。 频率可以是0到2范围内的值。 要指定从零到采样频率的频率向量,请在参数列表中同时包括频率向量和采样频率值。
以下示例说明如何计算和显示数字频率响应。 传递函数的频率响应
计算并显示由以下传递函数描述的三阶IIR低通滤波器的幅度响应:
h(z )=0.05634 ) 1z-1 ) (1-1.0166z-1 z-2 )1-0.683z-1 ) )1-1.4461z-1 0.7957z-2。
将分子和分母表示为多项式卷积。 求出单位圆上2001点分布的频率响应。
b0=0.05634;
b1=[1 1];
b2=[1 -1.0166 1];
a1=[1 -0.683];
a2=[1 -1.4461 0.7957];
b=B0*conv(B1,b2 );
a=conv(a1,a2 );
[h,w]=freqz(b,a,' whole ',2001 );
绘制以分贝表示的振幅响应。
plot(w/pi,20*log10 ) ABS (h ) )
ax=gca;
ax.YLim=[-100 20];
ax.XTick=0:5:2;
归一化频率(时间)周期(xlabel ) )
ylabel('magnitude ) (db ) ) )
FIR带通滤波器的频率响应
设计了FIR带通滤波器,通带在0.35和0.8弧度/采样点之间,波纹为3 dB。 第一个阻带是0到0.1弧度/采样点,衰减为40 dB。 第二个阻带从0.9弧度/采样点到纽约质量频率,衰减为30 dB。 计算频率响应。 以线性单位和分贝绘制其振幅。 强调显示通过带。
sf1=0.1;
pf1=0.35;
pf2=0.8;
sf2=0.9;
Pb=linspace(pf1、pf2、1 E3 ) *pi;
BP=designfilt(bandpassfir ),
' StopbandAttenuation1',40,' StopbandFrequency1',sf1,
' PassbandFrequency1',pf1,' PassbandRipple ',3,' PassbandFrequency2',pf2,
' StopbandFrequency2',sf2,' StopbandAttenuation2',30;
[h,w]=freqz(BP,1024 );
HPB=freqz(BP,pb );
subplot (2,1,1 ) ) )。
plot(w/pi,ABS(h ),pb/pi,ABS ) hpb ),'.- ' )
axis([01-12]
legend ('响应'、' Passband '、' Location '、' South ' ) )
ylabel (管理) ) )。
subplot (2,1,2 ) )
plot(w/pi,db ) h )、pb/pi,db (hpb )、'.- ' )
axis([01-6010]
归一化频率(时间)周期(xlabel ) )
ylabel('magnitude ) (db ) ) )
高通滤波器的振幅响应
设计具有0.5弧度/采样点归一化3-dB频率的三阶高通滤波器。 计算频率响应。 用分贝表示振幅响应并绘图。
[b,a ]=butter (3,0.5,' high ' );
[h,w]=freqz(b,a );
db=mag2db(ABS ) h );
打印(w/pi,dB ) )。
xlabel((omega/) pi ) ) ) ) ) )。
ylabel('magnitude ) (db ) ) )
ylim([-82 )
使用Fv工具重复计算。
Fv工具(b,a ) ) )。