Up-converting a sinusoidal signal

I want to up-convert a baseband sinusoidal signal of frequency $4000 \, \rm{Hz}$ using a carrier frequency of $20\, \rm{KHz}$. I read that one can up-convert a baseband signal to a passband signal using the following.

But after convolution with a carrier cosine, I get a $16\, \rm{KHz}$ signal. What could be the problem?

I used following Python code to do convolution with carrier frequency: samples * cosineSignal.

• Multiplying a 4kHz tone with a 20kHz carrier will produce 2 tones, at 16 and 24kHz. What else were you expecting? What is your sample rate? – Juancho Oct 18 '17 at 1:01
• I want to up-convert the signal to 20 kHz passband signal to send. I'm using 48 kHz samp rate on baseband signal. – JayHeo Oct 18 '17 at 1:34
• You should not convolve with a carrier signal. You should multiply! – Rodrigo de Azevedo Oct 18 '17 at 13:04

1 Answer

A 48k sample rate is too low to reliably reproduce your upper side of 20k+4k = 24kHz. Thus you end up with a LSB (lower sideband SSB) signal, not an AM signal.