【问题标题】:Butterworth Band-pass filter orde 8巴特沃斯带通滤波器 8 阶
【发布时间】:2015-01-06 15:00:42
【问题描述】:

有一些关于如何在 Matlab 中创建 3 个带通巴特沃斯滤波器的问题。

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

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

我如何需要创建这 3 个过滤器并将它们应用到一段音乐中?

任何人都知道使用黄油命令使用多个频率?

谢谢!

【问题讨论】:

    标签: matlab


    【解决方案1】:

    首先你想对你的音乐文件做一个 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 巴特沃斯过滤命令

    [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 (i.e.[b,a] = butter(8,[0.2 0.6],'pass');) %for band stop,将 pass 更改为 stop

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

    你可以通过 wavwrite 文件来收听或使用 (sound(dataout,fs))

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 2018-09-24
      相关资源
      最近更新 更多