Forums

Few questions on a Modem implementation using qpsk modulation on C6713 DSK

Started by kart...@gmail.com May 18, 2010
Greetings to the Community

I am trying to implement a modem using 2 separate Spectrum Digital c6713 boards, one setup as a transmitter and the other as receiver. The idea is basically connecting my iPod output to the line in of transmitter, do some modulation and pulseshaping, then send it out the line out, which goes into the linein of the second dsk.

The following are the parameter that I'm (initially) planning on using.

Modulation: QPSK [zeros mapped to -1 and ones mapped to +1]
sampling freq = 8k samples/sec
carrier freq = 2k Hz
samples/symbol = 4

I'm a beginner to real time processing, and have a few questions. Please correct me wherever I am wrong.

1) The ADC produces samples which are 16 bits per sample on L and R channels as 16 bit signed integers. So, per sample, I have 8 QPSK symbols. Can I use bit masks masking off 2 bits at a time to extract the symbols, and store them into an array? something like
int sample;
#define 8 masks for symbols
sym[index] = sample& mask;
?

2) If the sampling rate = 8k s/sec, then the bit rate would be 16 * 8 = 128 kbps, and the consequent symbol rate would be 64 k sym/sec. I would shape these symbols using a sqrt raised cosine pulse shaping filter and output them to the DAC. Is there a way that the input rate and output rate can be different as in this case?

I did think about Lowpass filtering the input samples to lower the rate, then downsampling them and then doing the bit-symbol mapping, modulation and pulse shaping. I don't know how feasible this is.

3) I want to skip the codec altogether, and use HPI for Digital IO for communication between the two DSKs. I have been trying to get information on how to do this on the internet and so far, I'm totally lost. *Any* help with this will be totally appreciated. I don't know how to use HPI or the required code for using it.

Thank you for bearing with me on this long post! Right now I just need to get the transmitter working. I have the receiver functions (demod, cordic, carrier pll, timing pll , etc) all ready and can't wait to test them out!

Thanks again.

_____________________________________
Karthik-

> I am trying to implement a modem using 2 separate Spectrum
> Digital c6713 boards, one setup as a transmitter and the
> other as receiver. The idea is basically connecting my
> iPod output to the line in of transmitter, do some modulation
> and pulseshaping, then send it out the line out, which goes
> into the linein of the second dsk.
>
> The following are the parameter that I'm (initially)
> planning on using.
>
> Modulation: QPSK [zeros mapped to -1 and ones mapped to +1]
> sampling freq = 8k samples/sec
> carrier freq = 2k Hz
> samples/symbol = 4
>
> I'm a beginner to real time processing, and have a few
> questions. Please correct me wherever I am wrong.
>
> 1) The ADC produces samples which are 16 bits per sample
> on L and R channels as 16 bit signed integers. So, per
> sample, I have 8 QPSK symbols. Can I use bit masks
> masking off 2 bits at a time to extract the symbols, and
> store them into an array? something like
> int sample;
> #define 8 masks for symbols
> sym[index] = sample& mask;
> ?
>
> 2) If the sampling rate = 8k s/sec, then the bit rate
> would be 16 * 8 = 128 kbps, and the consequent symbol
> rate would be 64 k sym/sec. I would shape these symbols
> using a sqrt raised cosine pulse shaping filter and
> output them to the DAC. Is there a way that the input
> rate and output rate can be different as in this case?
>
> I did think about Lowpass filtering the input samples
> to lower the rate, then downsampling them and then
> doing the bit-symbol mapping, modulation and pulse
> shaping. I don't know how feasible this is.

Do you mean input samples from the iPod? If so then you could sample at 8 kHz, and the AIC320 ADC on the DSK 6713
board will do the anti-aliasing for you, but you would not see frequency content above approx 3.5 kHz. If you're only
concerned about speech this would be Ok; if you also want "wideband audio" (such as music) then your sampling rate
should be higher, say 48 kHz. In that case your "base band" rate, or processing rate, would be higher. You could
apply LPF and decimation (as you mention) at some point along the line to reduce the base band rate and allow an 8 kHz
output rate.

> 3) I want to skip the codec altogether, and use HPI for
> Digital IO for communication between the two DSKs. I
> have been trying to get information on how to do this
> on the internet and so far, I'm totally lost. *Any*
> help with this will be totally appreciated. I don't
> know how to use HPI or the required code for using it.

First, yes it can be done. There are a number discussions on the C6x and C55x Yahoo groups about connecting async
EMIF from one DSK to HPI of another, by short wiring between daughterboard connectors. Basically one DSK acts as a
master, as if it's accessing async SRAM, and the other DSK as a slave (HPI). EMIF chip select connects to HPI data
strobe, EMIF /AWE to HPI R/W, a couple of EMIF address lines to HPI HCNTL0 and HCNTL1, etc.

Second, why do you want to do this? In this case there is no modulation and demodulation, you can just send the
bitstream as a series of bytes or groups of 4 bytes. Isn't the modem part of your project; i.e. a requirement? I
don't see how you are preparing for detailed modem implementation only to "skip it altogether".

-Jeff

_____________________________________