This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

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 Bharadwaj

  • Karthik,

    This is more of a hardware forum so I can take a stab at your third question, but I won't be able to help with the first two.

    The HPI port is considered to be a slave port so it is not possible to hook up two slave peripherals directly to each other without some intermediary control logic.  You may have better luck hooking up two devices with EMIF <-> HPI or even McASP <-> McASP.

    -Tommy

  • Tommy,

    Thank you for your reply. I will work on your suggestion and try hooking up EMIF-HPI. At this point, I have no embedded programming experience. Can you please direct me to some information that might help me get the interface working? It will be helpful for me if I can know how to write code for setting up the interface, and perhaps do a small test to see that it is working.

    Thank you for your help. I really appreciate it.

    PS: Is there an appropriate forum where I can post the first 2 questions of my previous post?

    Karthik

     

  • Karthik,

    There's not really a clearly defined bucket for custom program implementation topics.  Even though this forum is more focused on hardware, people will offer suggestions if they have experience with the application.

    For hooking up the HPI to EMIF, the peripheral reference guides are a good start.

    If you look at the HPI manual, it shows a rough block diagram on p12 for what signals the HPI needs: http://www.ti.com/litv/pdf/spru578c

    In the place of the generic HOST component, you would just use the C6713 asynch EMIF: http://www.ti.com/litv/pdf/spru266e

    -Tommy

  • Hello. I was looking for related posts of what I'm doing before of make a new post and I found yours, I'm using a TMS320C6713 DSK and I want to take a small audio sample and modulate it with different modulation type (BPSK, QPSK and 16QAM) I already have the code for the modulation process but I don't know how to work with an audio sample I mean I need to know how to take a sample and store it. I will apreciate if you can help me