How the increase the affect of lowpass filter on a field data?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
I would like to apply lowpass filter to my temperature data to remove the high frequency noise. I have applied simply 'lowpass' and could not see a significant affect on my data. I have seen several question regarding the lowpass but I am quite new to this area, so maybe missed the point.
sampling_rate=10; %seconds
fs=1/sampling_rate; %Hz
fpass=0:0.01:fs/2;
T35_lp=lowpass(T35,0.01,fs);
Here you can see the applied filter and original data below. They are almost same.
Is there any way to improve the affect of lowpass filter? I appreciate any suggestions.
Thanks!
0 Commenti
Risposta accettata
Star Strider
il 28 Nov 2023
The cutoff frequency of the lowpass filter is too high.
Try these —
LD = load('T35.mat');
T35 = LD.T35;
sampling_interval = 10;
Fs = 1/sampling_interval;
L = numel(T35);
t = linspace(0, L-1, L)/Fs;
[FTT35,Fv] = FFT1(T35, t);
figure
semilogx(Fv, abs(FTT35)*2)
grid
xlabel('Frequency')
ylabel('Magnitude')
title('T35: Fourier Transform')
xlim([0 Fs/2])
Fco = 1E-5;
T35_filt1 = lowpass(T35, Fco, Fs, 'ImpulseResponse','iir');
Fco = 8E-7;
T35_filt2 = lowpass(T35, Fco, Fs, 'ImpulseResponse','iir');
figure
plot(t, T35, 'DisplayName','Original (Unfiltered)')
hold on
plot(t, T35_filt1, 'DisplayName','Filtered (F_{co} = 1\times 10^{-5})', 'LineWidth',2)
plot(t, T35_filt2, 'DisplayName','Filtered (F_{co} = 8\times 10^{-7})', 'LineWidth',2)
hold off
grid
legend('Location','best')
function [FTs1,Fv] = FFT1(s,t)
s = s(:);
t = t(:);
L = numel(t);
Fs = 1/mean(diff(t));
Fn = Fs/2;
NFFT = 2^nextpow2(L);
FTs = fft((s - mean(s)).*hann(L), NFFT)/sum(hann(L));
Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
FTs1 = FTs(Iv);
end
.
4 Commenti
Star Strider
il 30 Nov 2023
As always, my pleasure!
Your interpretation of the spectrogram is correct.
Più risposte (1)
Donya
il 20 Ago 2024
Hello,
I would like to know how the Fco is found?
1 Commento
Star Strider
il 20 Ago 2024
By looking at the Fourier transform of the original signal. (That is the reason I calculate it in every signal processing problem I encounter.)
The findpeaks function (using the negative of the absolute value of the Fourier transform output), or the islocalmin function can help to localise the frequencies of the minimum values. These can be used to find the best value for ‘Fco’. The choice is somewhat empirical, so it is usually necesary to experiment, since it may not be obvious initially what the best value for it is.
Vedere anche
Categorie
Scopri di più su Spectral Measurements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!