首页 > 编程知识 正文

bandpass filter电路,bandpass filter是什么意思

时间:2023-05-05 07:31:42 阅读:195217 作者:4105

bandpass带通滤波详解 基本使用适用范围注意事项原理解释

基本使用

先上代码,下面是带通滤波器在matlab中的使用

function [ pc ] = m_bandpass( pc ) freq = [0.1 0.5]; fs= 50; % Fa=Fs/2,Fa是分析频率 [b,a] = butter(3,freq/(fs/2),'bandpass'); pc = filter(b,a,pc);end

freq中设置的是滤波频率范围。
其中butter函数是求Butterworth数字滤波器的系数,在求出系数后对信号进行滤波时用filter函数。

适用范围

带通滤波器主要可以使用在需要保留的波的频率在一定的范围内,用于去除周围的噪声,可以起到良好的效果。下图是本人对声波测呼吸得到的波形进行带通滤波后得到的效果,可以使得波形更平滑。

注意事项 在滤波器中的fs 即采样率要设置正确,比如波形中的点一秒内有n个,则采样率为n。freq的设置 即低频率与高频率的设置,比如正常人的呼吸为一分钟16-20次,则低频率为16/60=0.27HZ,高频率为20/60=0.33HZ,频率就是单位时间内完成周期性变化的次数。 原理解释

Y = FILTER(B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母
整个滤波过程是通过下面差分方程实现的:
a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + … + b(nb+1)*x(n-nb)-a(2)*y(n-1) - a(3)*y(n-2) + … + a(nb+1)*y(n-nb)
eg:

a = [1 2];b = [2 3];x = [1 2 3 4 5 6];y = filter(b, a, x)y =2 3 6 5 12 3下面给出具体的计算过程如下:a(1)y(1) = b(1)x(1); %可以求出y(1)a(1)y(2) = b(1)x(2)+b(2)x(1) –a(2)y(1); %可以由y(1)求出y(2)a(1)y(3) = b(1)x(3)+b(2)x(2)-a(2)y(2); %可以由y(2)求出y(3)a(1)y(4) = b(1)x(4)+b(2)x(3)-a(2)y(3); %可以由y(3)求出y(4)a(1)y(5) = b(1)x(5)+b(2)x(4)-a(2)y(4); %可以由y(4)求出y(5)a(1)y(6) = b(1)x(6)+b(2)x(5)-a(2)y(5); %可以由y(5)求出y(6)

求到的y(n) (n=1···6)则是滤波后的返回序列

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