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);endfreq中设置的是滤波频率范围。
其中butter函数是求Butterworth数字滤波器的系数,在求出系数后对信号进行滤波时用filter函数。
带通滤波器主要可以使用在需要保留的波的频率在一定的范围内,用于去除周围的噪声,可以起到良好的效果。下图是本人对声波测呼吸得到的波形进行带通滤波后得到的效果,可以使得波形更平滑。
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:
求到的y(n) (n=1···6)则是滤波后的返回序列