[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Discuss-gnuradio] working AM radio - critique

From: Ettus, Matt
Subject: RE: [Discuss-gnuradio] working AM radio - critique
Date: Tue, 24 Aug 2004 15:55:39 -0700

> The fm demodulator distributed
>with gnuradio produces a working signal with amplitude about .2
>or so, centered about zero.  I simply put gr.complex_mag()
>in place of gr.quadrature_demod_cf() and got audio with
>magnitude about 300 centered about 350. My solution was to
>simply shift and scale and now get good audio, just like fm.

>Q: Is there a better way ?   Is there a signal level standard
>we need to comply with?

Broadcast AM radio uses a max of 100% modulation, I believe.  

This means that the amplitude you see at any point is equal to the carrier
amplitude plus 100% of the modulating signal, and the max amplitude of the
modulating signal is 100% of the carrier amplitude.  Thus the peaks will be
at 2x the carrier and the troughs will be at 0.

In the example above, the DC level of 350 is the carrier, and it provides
the amplitude reference.  To properly demod, you do the following:

Demod sample value = ( raw sample value - carrier level ) / carrier level

This will give you a signal that swings from -1 to +1 (not counting noise).
You would scale that number by 32768 or so for full-scale 16-bit audio

You can get the exact carrier level by doing a lowpass filter.  A simple one
is a moving average or a recursive averager.  You'll want a cutoff frequency
lower than any audio components you expect to receive.  I think 100 Hz would
work, but I'm not sure of the lower cutoff used on AM broadcast stations.


Confidentiality note: This email and any attachments may contain private, 
confidential, and privileged material for the sole use of the intended 
recipient. Any unauthorized review, use, disclosure or distribution is strictly 
prohibited. If you are not the intended recipient, please contact the sender by 
reply e-mail and destroy all copies of the original message.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]