I was reading the documentation on the scipy.signal.hilbert and an example was given there to illustrate the principle. To make it easier to understand, I copied some of the codes from the documentation.

A chirp signal was created starting from 20 Hz to 100Hz:

signal = chirp(t, 20.0, t[-1], 100.0)

Then it says an amplitude modulation is applied:

signal *= (1.0 + 0.5 * np.sin(2.0*np.pi*3.0*t) )

I wonder whether is this amplitude modulation, from e.g. wikipedia, amplitude modulation takes the form:

$y(t) = (1 + \frac{m(t)}{A})c(t)$,

where $m(t)$ is the modulated signal (here the sine wave signal?) and $c(t)$ the carrier wave (here the chirp signal?)

Does it mean that we are actually using a chirp signal to modulate a sine wave? I wonder shouldn't the carrier signal be a sine wave?



1 Answer 1


You are confusing the term "Amplitude Modulation" (AM, what is described in your wiki link, a modulation scheme for transmitting baseband signals in a higher modulation band) with the much more general amplitude modulation used in the scipy documentation.

The latter basically refers to the multiplication of two time signals, which is exactly what is done by the sample code. If you must refer it to AM, then you are right in the sense that the low frequency sine signal is the "message" and the higher fequency chirp is used as "carrier".

  • $\begingroup$ Thanks a lot! That clarifies the doubt. $\endgroup$
    – pi_6Squre
    Commented Apr 18 at 15:37
  • $\begingroup$ You are welcome. Please consider accepting my answer, so that the question appears as "answered" in the database. $\endgroup$
    – Max
    Commented Apr 19 at 6:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.