Filtering of windspeed data
6 views (last 30 days)
Show older comments
Hello,
I am searching for a filter to filter low frequencies out of my wind time series.
I tried some things out and ended up with negative wind speeds. Can you recommend a filter?
My time series is one year long with a time step of 10 min. I want to filter out all events with a cycle duration longer than 6h.
Thank you!
x-axis : Cycle duration y-axis : spectral energy density
0 Comments
Answers (1)
Star Strider
on 10 Jul 2014
Edited: Star Strider
on 10 Jul 2014
I suggest a Chebyshev Type 1 bandpass filter for your application because it has a sharper cutoff than a Butterworth filter. I favour a bandpass design over a highpass filter because highpass filters have the unfortunate feature of also passing high-frequency noise. A bandpass filter will give you essentially your entire desired signal.
This is how I would design it (using the Signal Processing Toolbox):
Ts = 10; % Sampling interval 10 min
Fs = 1/Ts; % Sampling frequency (cycles/min)
Fn = 1/(2*Ts); % Nyquist frequency
Fco1 = 1/(6*6); % Low passband frequency 1/36 samples (6 hrs * 6 samples/hr)
Fco2 = 0.95*Fn; % High passband frequency
Fcn1 = Fco1/Fn; % Normalised low passband frequency
Fcn2 = Fco2/Fn; % Normalised high passband frequency
Ws = [Fcn1 Fcn2]; % Choose Chebyshev Type 1 Filter
Wp = Ws.*[1.1 1/1.1];
Rp = 1; % Passband ripple 1 dB
Rs = 40; % Stopband attenuation 40 dB
[n,Wp] = cheb1ord(Wp, Ws, Rp, Rs);
[b, a] = cheby1(n, Rp, Wp);
Consider using the second-order section implementation (see the Limitations discussion in the cheby1 documentation) with filtfilt.
See if this works for your application. I don’t have your data so I can’t test it.
2 Comments
Star Strider
on 10 Jul 2014
My pleasure!
(The sincerest expression of appreciation here on MATLAB Answers is to Accept the Answer that most closely solves your problem.)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!