University of Texas at Austin



Objective:

• This lab deals with implementation of a Quadrature amplitude modulation (QAM) transmitter system, used for digital data transmission over bandpass channels.

Lab slides:

• All the slides referred in this document are taken from the pdf for this lab available here:

Block diagram:

• Please refer to Slide 13-9 for the block diagram of the symbol generation and Slide 13-2 for the overall block diagram.

Task 1: Differential quadrant encoding (Code Composer)

• We will be implementing the 16 – point QAM constellation on Slide 13-8 using the differential encoder block on Table 1 on Slide 13-9 followed by a Symbol Mapper.

• Write a “DiffEncode” function which takes 4 bits as inputs: Q1n, Q2n, Y1nprev and Y2nprev and returns Y1n and Y2n as the outputs.

• Please use the table on Slide 13-9 to implement this function.

• Please DO NOT USE inefficient if – constructs. Simple array manipulation and bit – wise operations would be very efficient.

• Please remember to store the outputs Y1n and Y2n for the next time the DiffEncode is called.

Task 2: 16-QAM constellation symbol mapping (Code Composer)

• Now, we will use the Y1n, Y2n and the two remaining bits Q3n and Q4n to generate the “an” and “bn”.

• Here, Y1n and Y2n indicate which quadrant the data will reside in and Q3n and Q4n decide what the In-phase and Quadrature-phase components would be inside of this quadrant.

• Make sure you multiply the values by d=1000, so that the output symbols have values +/-1000, +/-3000.

• Write a “SymbolMap” function which takes 4 bits as input: Y1n, Y2n, Q3n and Q4n and returns an and bn as the outputs.

Task 3: Scrambler (Code Composer)

• Reuse the scrambler code you created in Lab 5 with input to the scrambler will be “1”. The initial state of the scrambler is 0.

Task 4: SQRT Raised cosine filter implementation using a filter bank (sqtraco.exe)

• Download the following program from the lab Web site:

• Design the filter with the following specifications:

o Give a name for the impulse response file [t, g(t)].

o Give a name for the subfilters file. This is the filter coefficients for each of the 16 filters that go in parallel. Each filter is 6 taps wide (because the truncation width is 3, the number of taps is 3 * 2 = 6. The multiplication factor of 2 arises because of the fact that the impulse response is 3 symbols periods on either side from the mid point).

o Give a name for the amplitude response file.

o Enter the symbol rate: 500 Hz

o Enter the value for M: Samples / baud is the same as samples / symbol = 16.

o Enter the truncation limit L: +/- 3 bauds which is the same as +/- 3 symbol periods.

o Enter the value for alpha: 0.75

• This should give you three different files. The impulse response vs. time, the magnitude response vs. frequency and filter coefficients for each filter of the bank.

Task 5: DSP implementation of 16-QAM (Code Composer)

• The code follows the pattern from Lab 5.

• Now you will have two arrays to hold the In-phase and Quadrature symbols. Call these “Isymbols” and “Qsymbols”.

• Create a table of a sine wave of 1kHz sampled @ 8kHz. Similarly create another table of a cosine wave of 1kHz sampled @ 8kHz.

• In the outer infinite loop, create 4 scrambler bits, update newest index, call DiffEncode, call SymbolMap, and update Qsymbols and Isymbols.

• In the inner loop, Convolve Isymbols with the pulse shaping filter, Convolve Qsymbols with the pulse shaping filter, multiply Isymbols by the cosine table samples, Qsymbols by the sine table samples, update the cosine and sine wave table indices and WriteSample I+Q into both the channels.

• Please do not run the code yet!

Task 6: DSP testing using LabVIEW (Code Composer and LabVIEW)

• Download the following file and place it in the same folder at rtdx.pjt:

• Open rtdx.pjt in Code Composer and keep it open.

• Open lab6.vi in LabVIEW.

• In the front panel, enter 2048 for “Number of samples”, alpha =0.75, fc=1kHz, Samples/symbol = 16, Choose filter type to be SQRT of raised cosine, fsym=500Hz.

• In the block diagram, enter 8000 for “sample rate (Hz)”.

• Run the VI.

• WAIT!!!

• You should be able to see the constellation plots; “I” eye diagram and “Q” eye diagram.

• Lab Report: Entire front panel screen shot.

Task 7: DSP testing using LabVIEW (Code Composer and LabVIEW) (Contd.)

• Now make “Q” =0 in the code. Leave “I” as it is.

• Repeat Task 6.

• Lab Report: Entire front panel screen shot.

Task 8: DSP testing using LabVIEW (Code Composer and LabVIEW) (Contd.)

• Now make “I” =0 from the Task 6 (original) code. Leave “Q” as it is.

• Repeat Task 6.

• Lab Report: Entire front panel screen shot.

• Lab Report: Please comment on your observations from the eye diagrams and constellation plots from Task 7 and 8.

Task 10: DSP implementation of 4-QAM (Code Composer)

• Implement Task 5 for a 4-QAM by setting Q3n and Q4n to ‘0’ and ‘1’ always.

• Repeat Task 6.

• Lab Report: Entire front panel screen shot.

Task 11: Special case of 4-QAM (Code Composer)

• Now, modify the code from Task 10 to input “unscrambled inputs” i.e. Make Q1n and Q2n to be ‘1’ and ‘1’.

• Now WriteSample I-Q to both the channels.

• Observe the output on the oscilloscope.

• Lab Report: Please comment on your observation on the oscilloscope.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download