How to generate a signal with time varying frequency?

11 visualizaciones (últimos 30 días)
Jetson Ronald
Jetson Ronald el 22 de Oct. de 2012
Respondida: Carlos el 10 de Mzo. de 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?

Respuestas (3)

Lisa Justin
Lisa Justin el 22 de Oct. de 2012
Use wavelet transform or Short time fourier transform. I prefer wavelet tranform for nonstationary signals
  1 comentario
Jetson Ronald
Jetson Ronald el 22 de Oct. de 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?

Iniciar sesión para comentar.


BecauseHElives
BecauseHElives el 10 de Mzo. de 2014
I hope you found the answer by now. If not, I think this should help ....

Carlos
Carlos el 10 de Mzo. de 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