matlab设计巴特沃斯滤波器小结

低通滤波器介绍(low-passfilter)

  

 

对于不同滤波器而言,每个频率的信号的减弱程度不同。当使用在音频应用时,它有时被称为高频剪切滤波器, 或高音消除滤波器。
  低通滤波器概念有许多不同的形式,其中包括电子线路(如音频设备中使用的hiss 滤波器、平滑数据的数字算法、音障(acoustic barriers)、图像模糊处理等等,这两个工具都通过剔除短期波动、保留长期发展趋势提供了信号的平滑形式。
  低通滤波器在信号处理中的作用等同于其它领域如金融领域中移动平均数(moving average)所起的作用;

  低通滤波器有很多种,其中,最通用的就是巴特沃斯滤波器和切比雪夫滤波器

 

 

巴特沃斯滤波器

  巴特沃斯滤波器是滤波器的一种设计分类,其采用的是巴特沃斯传递函数,有高通、低通、带通、带阻等多种滤波器类型。

 

  巴特沃斯滤波器在通频带内外都有平稳的幅频特性,但有较长的过渡带,在过渡带上很容易造成失真。

[z,p,k]=buttap(n)

n为滤波器的阶数,滤波器的零点z,极点p,增益k

 

[b,a ]=zp2tf(z,p,k)

将模拟原型滤波器函数设计出的零点z,极点p,增益k,形式转换为传递函数形式

 

[H,w]=freqs(b,a,w)

求传递函数的形式

 

Matlab代码:

n=0:0.01:2;
for i=1:4
switch i
    case 1 ,N=2;  %频率点
    case 2 ,N=5;  %取4种滤波器
    case 3,N=10;
    case 4,N=20;
end
[z,p,k] =buttap ( N );        %设计butterworth滤波器
[b,a] = zp2tf(z,p,k);          %将零点、极点、增益的形式转换为传递函数
[H,w] =freqs(b,a,n);         %按n制定的频率点给出频率响应

magH2 = (abs(H)).^2;       %给出传递函数幅度平方
hold on;
plot (w, magH2);                
end
xlabel ('w/wc');
ylabel('|H(jw)|^2');
title('Butterworth');
text(1.5,0.18,'n=2');
text(1.3,0.08,'n=10');
text(1.16,0.08,'n=10');
text(0.93,0.98,'n=20');
grid on;

完成后的图形:

matlab设计巴特沃斯滤波器小结
 

   滤波器的应用很广泛,数字滤波器相比应用的更广泛。这里用matlab实现数字滤波器,重要的是知道怎么有模拟到数字,而不是纠结于matlab,毕竟matlab只是实现的工具。

 

原文地址:https://www.cnblogs.com/JustDoFPGA/p/8412751.html