Forums

Complex AM demodulation- simple question

Started by konrad April 17, 2012
To demodulate AM, I use the formula am = sqrt(I*I + Q*Q)

I am mixing an AM IF signal to baseband, i.e. carrier plus 2 sidebands. My
test signal is modulated at 800Hz.

When I look at the demodulation, it looks OK when I mix perfectly to 0Hz,
but as the transmitted signal moves up or down frequency, I end up with 2
frequencies in the demodulated signal.
i.e. I get a demodulated signal of 200Hz and 600Hz when the carrier is at
200Hz.

Is what I am seeing correct or have I got some other mixing products from
somewhere?

The demod scheme is 10.7MHz into an AtoD into an FPGA at 8.56MHz.  This
gives me 2.14MHz alias.  I lowpass filter.  I then mix with 2.14MHz
(1,0,-1,0 at 8.56MHz) to give me I & Q at baseband.  I filter again.
At this point I capture blocks of I & Q data to check what I'm getting.

regards
Konrad


On Apr 17, 1:15&#2013266080;am, "konrad" <konradb@n_o_s_p_a_m.btinternet.com>
wrote:
> To demodulate AM, I use the formula am = sqrt(I*I + Q*Q) > > I am mixing an AM IF signal to baseband, i.e. carrier plus 2 sidebands. My > test signal is modulated at 800Hz. > > When I look at the demodulation, it looks OK when I mix perfectly to 0Hz, > but as the transmitted signal moves up or down frequency, I end up with 2 > frequencies in the demodulated signal. > i.e. I get a demodulated signal of 200Hz and 600Hz when the carrier is at > 200Hz. > > Is what I am seeing correct or have I got some other mixing products from > somewhere? > > The demod scheme is 10.7MHz into an AtoD into an FPGA at 8.56MHz. &#2013266080;This > gives me 2.14MHz alias. &#2013266080;I lowpass filter. &#2013266080;I then mix with 2.14MHz > (1,0,-1,0 at 8.56MHz) to give me I & Q at baseband. &#2013266080;I filter again. > At this point I capture blocks of I & Q data to check what I'm getting. > > regards > Konrad
I do not fully understand your question, but the AM demodulator should be immune to some carrier shift relative to your internal LO. It is possible that your I and Q signals are not really true I and Q signals. I have an AM demodulator modeled here (bottom program): http://www.fourier-series.com/IQMod/index.html It might be useful to you.
On 17.4.12 8:15 , konrad wrote:
> To demodulate AM, I use the formula am = sqrt(I*I + Q*Q) > > I am mixing an AM IF signal to baseband, i.e. carrier plus 2 sidebands. My > test signal is modulated at 800Hz. > > When I look at the demodulation, it looks OK when I mix perfectly to 0Hz, > but as the transmitted signal moves up or down frequency, I end up with 2 > frequencies in the demodulated signal. > i.e. I get a demodulated signal of 200Hz and 600Hz when the carrier is at > 200Hz. > > Is what I am seeing correct or have I got some other mixing products from > somewhere? > > The demod scheme is 10.7MHz into an AtoD into an FPGA at 8.56MHz. This > gives me 2.14MHz alias. I lowpass filter. I then mix with 2.14MHz > (1,0,-1,0 at 8.56MHz) to give me I& Q at baseband. I filter again. > At this point I capture blocks of I& Q data to check what I'm getting. > > regards > Konrad
Are you mixing with an image-suppressing mixer, using both I and Q phases? You are probably seeing the beat frequency from the mixing image. -- Tauno Voipio
On Tue, 17 Apr 2012 00:15:25 -0500, konrad wrote:

> To demodulate AM, I use the formula am = sqrt(I*I + Q*Q) > > I am mixing an AM IF signal to baseband, i.e. carrier plus 2 sidebands. > My test signal is modulated at 800Hz. > > When I look at the demodulation, it looks OK when I mix perfectly to > 0Hz, but as the transmitted signal moves up or down frequency, I end up > with 2 frequencies in the demodulated signal. i.e. I get a demodulated > signal of 200Hz and 600Hz when the carrier is at 200Hz. > > Is what I am seeing correct or have I got some other mixing products > from somewhere? > > The demod scheme is 10.7MHz into an AtoD into an FPGA at 8.56MHz. This > gives me 2.14MHz alias. I lowpass filter. I then mix with 2.14MHz > (1,0,-1,0 at 8.56MHz) to give me I & Q at baseband. I filter again. At > this point I capture blocks of I & Q data to check what I'm getting. > > regards > Konrad
Like Brent, I think you're not getting true I and Q. You are separately mixing, with 1, 0, -1, 0 to get I, and 0, 1, 0, -1 to get Q? Yes? You need to be doing something similar to get I and Q. Just a side note: I'd be trying synchronous demodulation, if for no other reason than to say that I'd done it. But first you need to get what you have working. -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com