巴特沃斯低通滤波

巴特沃斯滤波器是电子滤波器的一种。巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。这种滤波器最先由英国工程师斯替芬·巴特沃斯(Stephen Butterworth)在1930年发表在英国《无线电工程》期刊的一篇论文中提出的。
在参考下边的代码的时候,遇到了一个截止频率的问题,现解释如下:
对于低通滤波器,是低于某个频率为通带,高于某个频率为阻带。如果要输入9.5KHz~1.5KHz的方波,则9.5KHz~1.5KHz这些频率必须在通带之内,所以滤波器的截止频率要高于9.5KHz。
无论是什么样的滤波器,一般都是指-3db的位置,也就是说从滤波器的通带的增益算起,下降-3db的位置。由于db的计算公式是20*log10(x),x为信号某一个频率上真正的幅值,所以稍加计算可得,-3db实际相当于频率增益下降到了原来的0.707,而不是一半。
对于低通滤波器,是低于某个频率为通带,高于某个频率为阻带。如果要输入9.5KHz~1.5KHz的方波,则9.5KHz~1.5KHz这些频率必须在通带之内,所以滤波器的截止频率要高于9.5KHz。
截止频率:一般滤波器截至频率是定义为衰减3dB的频率点,也就是保持输入信号幅度不变,改变频率,从某个频率点起滤波器对信号的衰减达到3dB,该点就定义为滤波器的截至频率。
本例子中,由于两个信号的最高频率是30HZ,一般都 要>=30HZ。

无论是什么样的滤波器,一般都是指-3db的位置,也就是说从滤波器的通带的增益算起,下降-3db的位置。由于db的计算公式是20*log10(x),x为信号某一个频率上真正的幅值,所以稍加计算可得,-3db实际相当于频率增益下降到了原来的0.707,而不是一半。

 
    
 
     

%**************************************************************************************** % 

% 创建两个信号Mix_Signal_1 和信号 Mix_Signal_2 % %***************************************************************************************

 Fs = 1000; %采样率 N = 1000; 

%采样点数 n = 0:N-1; t = 0:1/Fs:1-1/Fs; %时间序列 Signal_Original_1 =sin(2*pi*10*t)+sin(2*pi*20*t)+sin(2*pi*30*t); Noise_White_1 = [0.3*randn(1,500), rand(1,500)]; %前500点高斯分部白噪声,后500点均匀分布白噪声 Mix_Signal_1 = Signal_Original_1 + Noise_White_1; %构造的混合信号 Signal_Original_2= [zeros(1,100),20*ones(1,20),-2*ones(1,30),5*ones(1,80),-5*ones(1,30),9*ones(1,140), -4*ones(1,40), 3*ones(1,220), 12*ones(1,100), 5*ones(1,20), 25*ones(1,30), 7 *ones(1,190)]; Noise_White_2 = 0.5*randn(1,1000); %高斯白噪声 Mix_Signal_2 = Signal_Original_2 + Noise_White_2; %构造的混合信号 %**************************************************************************************** % % 信号Mix_Signal_1 和 Mix_Signal_2 分别作巴特沃斯低通滤波。 % %*************************************************************************************** %混合信号 Mix_Signal_1 巴特沃斯低通滤波 figure(1); Wc=2*50/Fs; %截止频率 50Hz [b,a]=butter(4,Wc); Signal_Filter=filter(b,a,Mix_Signal_1); subplot(4,1,1); %Mix_Signal_1 原始信号 plot(Mix_Signal_1); axis([0,1000,-4,4]); title('原始信号 '); subplot(4,1,2); %Mix_Signal_1 低通滤波滤波后信号 plot(Signal_Filter); axis([0,1000,-4,4]); title('巴特沃斯低通滤波后信号'); %混合信号 Mix_Signal_2 巴特沃斯低通滤波 Wc=2*100/Fs; %截止频率 100Hz [b,a]=butter(4,Wc); Signal_Filter=filter(b,a,Mix_Signal_2); subplot(4,1,3); %Mix_Signal_2 原始信号 plot(Mix_Signal_2); axis([0,1000,-10,30]); title('原始信号 '); subplot(4,1,4); %Mix_Signal_2 低通滤波滤波后信号 plot(Signal_Filter); axis([0,1000,-10,30]); title('巴特沃斯低通滤波后信号');

效果图:

猜你喜欢

转载自blog.csdn.net/It_BeeCoder/article/details/80775955