What is the window needed for Triangular puls before FFT ?

1 vue (au cours des 30 derniers jours)
Omar thamer
Omar thamer le 21 Oct 2013
Commenté : Jeremy le 30 Oct 2013
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 ?

Réponses (2)

Jeremy
Jeremy le 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 commentaires
Jeremy
Jeremy le 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)
Omar thamer
Omar thamer le 21 Oct 2013
Let me show how the original signal look like ( See image). I have tried with FFT with no results at all. As i mention the discontinuity leads to peaks spreaded allover. If you zoom in the signal you can find that peak width is for 2 days which make sense ( in 2 days we have 3 samples since it has a one sample per day). I have tried the pwelch i get better results but can't be interpreted.

Connectez-vous pour commenter.


Jeremy
Jeremy le 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 commentaires
Omar thamer
Omar thamer le 22 Oct 2013
Do you want me to eliminate zeros from the signal before processing ?
Jeremy
Jeremy le 30 Oct 2013
It is not really clear what you are trying to determine about the signal.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by