首页 > 编程知识 正文

matlab 求信号频率响应,频率响应 - MATLAB & Simulink - MathWorks 中国

时间:2023-05-03 20:03:04 阅读:77091 作者:3387

数字字段

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 ) ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。