千家信息网

如何实现Matlab fvtool滤波器频响的幅度显示归一化

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章给大家分享的是有关如何实现Matlab fvtool滤波器频响的幅度显示归一化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  我们在用matlab设计滤波器后,可
千家信息网最后更新 2024年11月20日如何实现Matlab fvtool滤波器频响的幅度显示归一化

这篇文章给大家分享的是有关如何实现Matlab fvtool滤波器频响的幅度显示归一化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

  我们在用matlab设计滤波器后,可以用fvtool来看滤波器的频响,比如我们有了滤波器的系数后,直接用fvtool。

fircoe = [0.018641, 0.018275,-0.020377,-0.071243,-0.049673,...
0.094562, 0.28841, 0.37949, 0.28841, 0.094562,-0.049673,...
-0.071243,-0.020377, 0.018275, 0.018641];
fvtool(fircoe);

  从图中可以很容易看出,阻带衰减大概在40db左右。

  但还有些滤波器,设计出来后增益并不是0,比如下面的cic滤波器。我们首先用dsp.CICDecimator设计了一个CIC滤波器,然后紧跟着一个CIC补偿滤波器,该补偿滤波是一个FIR滤波器。最后把这两个滤波器和CIC+FIR级联后的频响画到一图中。

fs = 100e6;
cic_rate = 4;
cic_flt = dsp.CICDecimator(cic_rate,1,5);
fpass=fs/cic_rate*0.35/2;
fstop=fs/cic_rate*0.5/2;
cic_comp = design(fdesign.ciccomp(cic_flt.DifferentialDelay, ...
cic_flt.NumSections,fpass,fstop,.3,20,fs/cic_rate));
comp_fir = dsp.FIRFilter('Numerator',cmop_coe);
cascade_flt = cascade(cic_flt,comp_fir);
fvtool(cic_flt,comp_fir,...
cascade_flt,'Fs',[fs fs/cic2_rate fs])
yticks([-200:20:0])

  从图中可以看出,补偿的FIR滤波器增益大概为0,而CIC滤波器增益在60dB。怎么把CIC滤波器的频响显示的幅度也归一化到0呢?(因为归一化到0后,在文档中就很容易看出该滤波器阻带抑制特性)

  可以在fvtool的窗口中,右键选择Analysis Parameters...,如下图。

然后再勾选Normalize Magnitude to 1(0dB),再点Save as Default


这样以后我们再用fvtool画滤波器频谱时,就会显示成归一化的样式。


感谢各位的阅读!关于"如何实现Matlab fvtool滤波器频响的幅度显示归一化"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0