MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# How to generate a signal with time varying frequency?

Asked by Jetson Ronald on 22 Oct 2012
Latest activity Answered by Carlos on 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?

## Products

No products are associated with this question.

Answer by Lisa Justin on 22 Oct 2012

Use wavelet transform or Short time fourier transform. I prefer wavelet tranform for nonstationary signals

## 1 Comment

Jetson Ronald on 22 Oct 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?

Answer by BecauseHElives on 10 Mar 2014

http://www.mathworks.com/help/slcontrol/ug/frest.sinestream.html

I hope you found the answer by now. If not, I think this should help ....

Answer by Carlos on 10 Mar 2014

This is a simple way to do it

```f=0:0.1:100;
int=cos(2*pi.*f);
```