How to generate a signal with time varying frequency?

8 visualizzazioni (ultimi 30 giorni)
Jetson Ronald
Jetson Ronald il 22 Ott 2012
Risposto: Carlos il 10 Mar 2014
Hello I am using Hilbert spectrum to study my nonstationary earthquakes recorded strong-motion. I was able to analyze the signal into AMPLITUDE ENVELOPE and INSTANTANEOUS FREQUENCY, later I was able to synthesis my signal back with the same amplitude envelope, instantaneous frequency and the phase.
My objective is to generate nonstationary signal with the empirical amplitude envelope and empirical instantaneous frequency which I have calibrated based on the seismological parameters. Now I did the following exercise 1) I took a ground-motion record and analyzed it using Hilbert spectrum and I replaced the amplitude envelope with my empirical envelope and keeping instantaneous frequency and the phase from the analysis intact and try to synthesis the signal back, I was successful and the resulting signal was good. 2) In the second case, I did the same operation but replacing the instantaneous frequency with the empirical one and keeping the other parameters intact. Although the empirical model closely resembles the actual instantaneous frequency, still the resulting signal was quite different; in fact the signal had completely different frequencies.
Could you help me, how to generate signal with time varying frequency?

Risposte (3)

Lisa Justin
Lisa Justin il 22 Ott 2012
Use wavelet transform or Short time fourier transform. I prefer wavelet tranform for nonstationary signals
  1 Commento
Jetson Ronald
Jetson Ronald il 22 Ott 2012
Hello Lisa Thank you for the answer.
I find Hilbert transform to be more suitable my intended purpose.
However, I can alayze my signal using Wavelet and short term fourier transform but the question is to how to generate time varying frequency signal?

Accedi per commentare.


BecauseHElives
BecauseHElives il 10 Mar 2014
I hope you found the answer by now. If not, I think this should help ....

Carlos
Carlos il 10 Mar 2014
This is a simple way to do it
f=0:0.1:100;
int=cos(2*pi.*f);

Community Treasure Hunt

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

Start Hunting!

Translated by