What is the window needed for Triangular puls before FFT ?
1 view (last 30 days)
Show older comments
I have a triangular signal and need to do FFT. Do it directly would lead to many harmonics in the spectrum and leaks. I tried to window the signal before with no benefits. Is there anyway to workaround ?
0 Comments
Answers (2)
Jeremy
on 21 Oct 2013
a window function is not going to eliminate the other peaks. They are the actual result of the transform since your signal is not sinusoidal. you could try a bandpass filter if you have a known frequency range; you will still have other peaks but they will be smaller. Are you trying to determine frequency, amplitude or phase?
3 Comments
Jeremy
on 21 Oct 2013
Are you saying you sample once a day for 515 days? Really an fft or the pwelch function should get you what you need, the selected window function will not change the answer very much. with a sampling rate of 1/day, the maximum frequency you can determine is .5 cycle/day. As an example see the following code for a .3 cycle/day triangle wave.
t=1:1:100;
d=sawtooth(2*pi*.3*t,.5);
fs=1;
nfft=fs*20; %1 cycle / 20 days will be the lowest freq. we can measure, adjust as needed.
[P,F]=pwelch(d,ones(nfft,1),nfft/2,nfft,fs);
[~,i]=max(P);
F(i)
Jeremy
on 21 Oct 2013
oh ok, I missed the pulse aspect of this. a Fourier transform is not the way to go here. I would just do some basic logic to look for points > 0 and points < 0 and go from there.
lows=find(d<min(d)/2);
highs=find(d>max(d)/2);
2 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!