matlab filter freqz

1.滤波函数filter

利用滤波器H(Z)=b/a,对X滤波

ba为向量

滤波器传输函数H(Z)的分子分母:b,a

利用b,a表征H即滤波器

2.freqz

H=b/a,由b和a提取H和数字角频率w

2.1[h,w] = freqz(b,a,n)

n默认512,w=[0,pi]

2.2[h,w] = freqz(b,a,'whole')

        w=[-pi,pi];

        传输函数是对称函数,幅频响应|H|关于w=pi偶对称,相频特性关于w=pi奇对称,所以w可以只取[0,pi];

        比如,w=横坐标*pi,第一列是[0,pi],第二列是[0,2pi];

clc;
clear;
A=[1 0];
B=[1 -0.5];
[H,w]=freqz(B,A);
[H1,w1]=freqz(B,A,'whole');     %求出对应范围内512个频率点的频率响%应样值
HF=abs(H);                    %求出幅频特性值
HX=angle(H);                  %求出相频特性值
HF1=abs(H1);                    %求出幅频特性值
HX1=angle(H1);                  %求出相频特性值
figure;
subplot(2,2,1);plot(w/pi,HF),xlabel('w/pi(pi)'),title('freqz(B,A)幅频');         %画出幅频特性曲线
subplot(2,2,3);plot(w/pi,HX),xlabel('w/pi(pi)'),title("freqz(B,A,'whole')幅频");         %画出相频特性曲线
subplot(2,2,2);plot(w1/pi,HF1),xlabel('w/pi(pi)'),title("freqz(B,A)相频");         %画出幅频特性曲线
subplot(2,2,4);plot(w1/pi,HX1),xlabel('w/pi(pi)'),title("freqz(B,A,'whole')相频");         %画出相频特性曲线

 3.ba与H(Z)

3.1

[1]

H与ab关系如上,freqz的作用即利用H的分子分母ab提取H,

幅频用abs(H)

相频用angle(H)

作图用plot(w,abs(H))

3.2例子

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);
subplot(211),plot(w/pi,20*log10(abs(h)));%幅频特性
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')
subplot(212),plot(w/pi,angle(h));%相频特性
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('angle')
    多项式乘法和卷积原理相似:w = conv(u,v) 返回向量 u 和 v 的卷积。如果 u 和 v 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。

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

[1]Matlab中freqz函数使用_jk_101的博客-CSDN博客_freqz函数matlab

猜你喜欢

转载自blog.csdn.net/marujie123/article/details/122428760