4

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.

enter image description here

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.

JayHeo
  • 53
  • 3

2 Answers2

2

You are right in that: multiplying your signals in the time domain corresponds to a convolution in the frequency domain. A pure complex exponential carrier is basically a peak (a Dirac delta) in the frequency domain. Convolving with that corresponds to a "shift" - which is how you modulate. So far so good.

However, you forgot that your signals are real-valued sinusoidals, which have a (Hermitian) symmetric spectrum. Your baseband signal in the frequency domain then consists of two peaks, one at $4\,\mathrm{kHz}$ and one at $-4\,\mathrm{kHz}$! (The same goes for your carrier actually, but this is not relevant in this case.) Both peaks are then shifted by $20\,\mathrm{kHz}$, so that you end up with $16\,\mathrm{kHz}$ as well as $24\,\mathrm{kHz}$.

Since you seem to be simulating this, and use a sample rate of $48\,\mathrm{kHz}$ across the board, you might run into sampling issues as explained in @hotpaw2 's answer, which is why you might only see the $16\,\mathrm{kHz}$ peak.

mateC
  • 338
  • 1
  • 6
0

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.

hotpaw2
  • 35,346
  • 9
  • 47
  • 90