필터 지우기
필터 지우기

FFT and smoothing of signal

조회 수: 81 (최근 30일)
Isma_gp
Isma_gp 2017년 1월 16일
댓글: Star Strider 2022년 12월 2일
Hi, I have the attached signal (TENS_LOW). I would like to obtained the smoothed FFT of the signal. How can I smooth the spectrum?
Thanks
  댓글 수: 5
Adam
Adam 2017년 1월 16일
How to smooth the spectrum depends what you want to do with it really. There are plenty of ways to do it, depending how aggressive you want to be. A simple mean filter would do if you just want aggressive smoothing, but not if you want to retain certain information in peaks etc
Isma_gp
Isma_gp 2017년 1월 16일
sampling frequency is 0.0117

댓글을 달려면 로그인하십시오.

채택된 답변

Star Strider
Star Strider 2017년 1월 16일
Now I understand what you want to do. This is most easily done with the Signal Processing Toolbox sgolayfilt function to create the Savitzky-Golay filtered spectrum.
The Code —
D = load('Isma_gp TENS_LOW.mat');
sig = D.TENS_LOW_42;
sig = sig - mean(sig); % Remove d-c Offset
L = length(sig);
Fs = 1/0.0117; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
FTsig = fft(sig)/L;
Fv = linspace(0, 1, fix(length(FTsig)/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
FTsiga = double(abs(FTsig(Iv))*2); % Truncate, Magnitude, Convert To Double
sgf_sm = sgolayfilt(FTsiga, 5, 501); % Create ‘sgolayfilt’ Filtered FFT
figure(1)
plot(Fv, FTsiga)
hold on
plot(Fv, sgf_sm, '-r', 'LineWidth',2)
hold off
axis([0 1 ylim])
grid
xlabel('Frequency')
ylabel('Amplitude')
legend('Original Spectrum', 'Savitzky-Golay Filtered Spectrum')
Experiment with the sgolayfilt parameters to get the result you want.
  댓글 수: 12
SYML2nd
SYML2nd 2022년 12월 1일
Hi @Star Strider, I think this is a brilliant solution to smooth the fft for which there are not so much other oprions to smooth it, such as for the PSD where we can use pwelch and a windowing. Are there any reference (literature) where this method of smoothing is used?
Star Strider
Star Strider 2022년 12월 2일
@SYML2nd — Not to my knowledge, although I did not do a literature search. My approach here is essentially empirical.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Signal Generation and Preprocessing에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by