我有FIR滤波器的系数b0-b31,我试图绘制滤波器的幅度和相位响应。
coeff = [-8 -2 9 16 20 15 3 -19 -36 -41 -26 11 69 126 187 208 208 187 126 65 11 -26 -41 -36 -19 0 15 20 16 10 -2 -8];
当我使用freqz绘制它时,它给出了未经规范化的幅度,如下所示:
我正在使用:
freqz(coeff,1,[],5000000) 有没有办法获得y轴的幅度和相位的归一化图?意思是,幅度的最大值是0,图表从它开始?如下图所示:
答案 0 :(得分:2)
有很多可能性:
A)一种方法是告诉fvtool诺威尔化输出
fvt = fvtool(....)
fvt.NormalizeMagnitudeto1 = 'on';
B)另一种选择是按以下方式标准化系数:
normalize_coeff=coeff/sum(coeff);
立即致电
freqz(normalize_coeff, 1,[],5000000)
将导致您所需的频率幅度响应。
如前所述,为了在一个图中得到两者,你可以使用fvtool。
或者您首先使用命令freqz
来计算频率响应fs=5000000;
[H,F]=freqz(normalize_coeff, 1,[],fs);
和相位响应使用:
[phi,w] = phasez(normalize_coeff,1,fs);
并将两个结果绘制成一个图表
figure(1001)
plot(w,phi,'r')
hold on
plot(pi*(F/(fs/2)),20*log10(abs(H)))
hold off
legend('phase','magnitude')
对于不同的y轴,您还可以使用命令plotyy。
答案 1 :(得分:1)