FFT and smoothing of signal

149 Ansichten (letzte 30 Tage)
Isma_gp
Isma_gp am 16 Jan. 2017
Kommentiert: Star Strider am 2 Dez. 2022
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 Kommentare
Adam
Adam am 16 Jan. 2017
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 am 16 Jan. 2017
sampling frequency is 0.0117

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 16 Jan. 2017
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 Kommentare
SYML2nd
SYML2nd am 1 Dez. 2022
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 am 2 Dez. 2022
@SYML2nd — Not to my knowledge, although I did not do a literature search. My approach here is essentially empirical.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Signal Generation and Preprocessing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by