sgolayfilt function not smoothing
古いコメントを表示
In the below code I am attempting to plot an audio file in the frequency domain using FFT, and then smooth out the frequency response with sgolayfilt, however the filter is not working. As a beginner, I'm not sure where to go next and would appreciate any help!
[y,Fs] = audioread('Floor_EQ_ITB.wav');
Fn = Fs/2; % Nyquist Frequency
fty = fft(y)/length(y); % Take FFT & Normalise
fv = linspace(0, 1, fix(length(fty)/2)+1)*Fn; % Frequency Vector For Plot
iv = 1:length(fv); % Index Vector For Plot
filt = sgolayfilt(fv, 5, 501);
figure(1)
semilogx(filt, 20*log10(abs(fty(iv))))
xlabel('Frequency (Hz)')
ylabel('Amplitude (dB)')
set(gca,'XLim',[15 20000],'XTick',[0 31 62 125 250 500 1000 2000 4000 8000 16000])
3 件のコメント
Image Analyst
2019 年 4 月 22 日
Please zip up 'Floor_EQ_ITB.wav' and attach it.
Barny Cutter
2019 年 4 月 22 日
Shrey Joshi
2019 年 9 月 20 日
Try using signalAnalyzer app in signal processing toolbox.You can preprocess signal using sgolayfilt and visualize its spectrum
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Smoothing and Denoising についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!