lab_2

13
BER Performance with GNU Radio

description

USPR lab using GNuRadio

Transcript of lab_2

  • BER Performance with GNU Radio

  • Digital Modulation

    Digital modulation is the process of translating a digital bit stream to analog waveforms that can be sent over a frequency band

    In digital modulation, an analog carrier signal is modulated by a digital bit stream

    The changes in the carrier signal are chosen from a finite number of M alternative symbols (the modulation alphabet)

    2

  • Modulation Alphabet

    In ASK, a finite number of amplitudes are used In FSK, a finite number of frequencies are used In PSK, a finite number of phases are used

    In the case of ASK and PSK, where the carrier frequency

    of the modulated signal is constant, the modulation alphabet is often conveniently represented on a constellation diagram, showing the amplitude of the I signal at the x-axis, and the amplitude of the Q signal at the y-axis, for each symbol

    3

  • Digital Modulation

    4

  • Digital-to-Analog Conversion

    5

  • Binary ASK

    6

  • Binary FSK

    7

  • Binary PSK

    8

  • QAM

    In QAM, a finite number of at least two phases, and at least two amplitudes are used An in-phase signal (the I signal, for example a cosine waveform) A quadrature phase signal (the Q signal, for example a sine

    wave) They are amplitude modulated with a finite number of

    amplitudes, and summed

    It can be seen as a two-channel system, each channel using ASK. The resulting signal is equivalent to a combination of PSK and ASK

    9

  • This Lab

    This Lab is to measure the reliability of digital modulation, i.e., ASK, 4-ASK, QPSK, 8-PSK, and 16-QAM

    The reliability is measured in bit error rate (BER) versus SNR (signal-to-noise ratio)

    SNR and Eb/No S/N = (Eb*bits/symbol) / (No*BW)

    = Eb/No * (bits/symbol)/BW

    10

  • 1. On the right side, find Random Source from Sources category. Bring it to the main window. Double click Random Source block and change the output type to Byte, the maximum to 2 (in case of binary ASK), number of samples to 10M, and repeat to No.

    2. Add Variable from Variables category and change the ID to symbol, the value to 1, -1 (in case of binary ASK). Hint) root mean square (r.m.s.) of signal = root( (1^2 + 1^2) / 2 ) = 1 noise amplitude = sqrt ( No / 2 ) Therefore, to make SNR = 10 * log10( 1 / No ) = 0 dB, No = 1 and thus noise amplitude is 0.707 Similarily, to make SNR = 1 dB, No = 0.7938 and thus noise amplitude is 0.630

    3. Add another Variable from Variables category and change the ID to value, the value to 0, 1 (in case of binary ASK).

    4. Add Chunks to Symbols from Misc Conversions category and change the input type to Byte, symbol table to symbol, the dimension to 1.

    5. Click on the out port of Random Source block and in port of Chunks to Symbols block to make a connection.

    6. Add Noise Source from Sources category and change the amplitude to 0.707 (amplitude can be adjusted to change SNR).

    11

    Lab homepage http://monet.postech.ac.kr/class/lab/

  • 7. Add Add from Operators category and make connections between Chunks to Symbols and Add blocks, Noise Source and Add blocks.

    8. Add Constellation Decoder from Modulators category and change the symbol position to symbol, the symbol value out to value, and make a connection with Add block.

    9. Add Import from Misc category and change the import to import math. 10. Add Error Rate from Misc category and change the window size to 10M, the bits

    per symbol to int(math.log(len(symbol))/math.log(2)). 11. Make connections between Random Source and Error Rate blocks,

    Constellation Decoder and Error Rate blocks. 12. Add Number Sink from Graphical Sinks and change the type to Float , the title

    to BER, the min value to 0, the max value to 1, the factor to 1, the decimal places to 20, the average to On, the show gauge to Hide.

    13. Make a connection between Error Rate and Number Sink blocks. 14. Add Scope Sink from Graphical Sinks category and change the XY mode to

    On. 15. Make a connection between Add and Scope Sink blocks. 16. Save the grc file and Click Generate the flow graph icon. Notice that there is a

    warning message at the bottom of the window. Solve this problem by adding Throttle block properly.

    12

  • 17. Click Execute the flow graph icon to execute it. 18. Calculate the BER performance of binary ASK with varying noise amplitudes

    0.707, 0.630, 0.562, 0.501, 0.446, 0.398, 0.354, 0.316, 0.282, 0.251, 0.224, 0.199, 0.177, 0.158, 0.141, 0.125, and 0.112 for SNR= 0 dB, 1 dB, , 16 dB, respectively, draw the BER vs. SNR curve (in log scale), and describe the process in detail.

    19. To visualize the effect of noise, add Scope Sink after the Add block and another Scope Sink after the Chunks to Symbols block.

    20. Repeat the above experiment for 4-ASK after changing the value of Variable (set to ID: symbol) block to 1.342, 0.447, -0.447, -1.342, that of Variable (set to ID: value) block to 0, 1, 2, 3, and the maximum of Random Source block to 4. Hint) r.m.s. of signal = root ( (1.342^2 + 0.447^2 + 0.447^2 + 1.342^2) / 4 ) = 1

    21. Repeat the above experiment for QPSK after changing the value of Variable (set to ID: symbol) block to 0.707+0.707j, 0.707-0.707j, -0.707+0.707j, -0.707-0.707j Hint) a + aj, a - aj, -a + aj, -a - aj

    22. Repeat the above experiment for 8-PSK and 16-QAM Hint)

    13 8-PSK 16-QAM

    Please send in your assignments (with all grc files) via email

    BER Performance with GNU RadioDigital ModulationModulation AlphabetDigital ModulationDigital-to-Analog ConversionBinary ASKBinary FSKBinary PSKQAMThis LabSlide Number 11Slide Number 12Slide Number 13