Butterworth带通滤波器orde 8

时间:2015-01-06 15:00:42

标签: matlab

对如何在Matlab中创建3个带通butterworth滤镜有一些疑问。

我需要一个较低的截止频率,它应该是625的整数倍,下一个应该是1875,2500 Hz。

我想要一个低频范围的带通滤波器,如(80 - 100 hz?),一个在中频(400 hz?)范围,一个在高频范围(4khz?)。当然不能超越奈奎斯特限制。

我怎样才能创建这3个滤镜并将它们应用到一段音乐中?

任何人都有想法使用butter命令使用多个频率?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,您要对音乐文件进行wavread以将其加载到Matlab中(这是在时域中),

接下来你要创建3个带通滤波器(Butterworth)

您有2条执行路线,分别位于时域或频域。

在时域中:

[x1 Fs nbits] = wavread('yourfile.wav'); %Fs is your sample frequency, x1 is your vector/matrix depending on single channel or dual channel.

现在您只需要设计过滤器。你可以使用fdesign.bandpass作弊(见http://uk.mathworks.com/help/dsp/ref/fdesign.bandpass.html

使用matlab butterworth过滤器命令

[b,a] = butter(order,NormalizedCutOff); %you have to work out the Normalized Cut Off frequency using your sampling frequency or period, your desired cut-off etc.

如果你想要多个截止频率使用[c1 c2]代替NormalizedCutOff(即[b,a] =黄油(8,[0.2 0.6],'通过');)%为带阻,改为通过停止

freqz(b,a) %The frequency response of your filter
dataIn = x1; %your music
dataOut = filter(b,a,dataIn); %filter command filters your music

你可以wavwrite文件来听它或使用(声音(dataout,fs))