How to create low pass filter for audio file?
6 ビュー (過去 30 日間)
古いコメントを表示
How do i create a low pass filter for an audio file?
I would like to keep 20 Hz and below Sampling rate 8000 Hz
Thanks
0 件のコメント
採用された回答
Star Strider
2015 年 2 月 24 日
You gave enough information for the Signal Processing Toolbox (with a bit of help from me) to be able to design your filter:
Fs = 8000; % Sampling Frequency (Hz)
Fn = Fs/2; % Nyquist Frequency
Fco = 20; % Passband (Cutoff) Frequency
Fsb = 30; % Stopband Frequency
Rp = 1; % Passband Ripple (dB)
Rs = 10; % Stopband Ripple (dB)
[n,Wn] = buttord(Fco/Fn, Fsb/Fn, Rp, Rs); % Filter Order & Wco
[b,a] = butter(n,Wn); % Lowpass Is Default Design
[sos,g] = tf2sos(b,a); % Second-Order-Section For STability
figure(1)
freqz(sos, 2048, Fs) % Check Filter Performance
Then use the filtfilt function to filter your signal.
I chose a Butterworth design, but if you want a steeper cutoff, consider using a Chebychev design instead. You may want to experiment with the design to get the exact result you want with respect to your signal. See the relevant documentation for details.
4 件のコメント
Star Strider
2015 年 2 月 24 日
I’m not certain what you’re doing. The usual procedure is to divide the output of the fft function by the length of the vector to normalise the amplitudes. I also don’t understand your frequency vector ‘f’ calculation (it doesn’t look correct to me), but if it works for you, go for it!
I follow the amplitude and frequency vector calculations in the documentation for the fft function, rather than creating my own calculations. It’s easier, and it works. I suggest you do that.
その他の回答 (1 件)
Tengsim Momin
2016 年 3 月 28 日
how to filter eeg signal with(0.1db-80db) low pass filter using fdatool
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Audio Processing Algorithm Design についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!