Anda di halaman 1dari 13

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

Digital Modulation

Digital-to-Analog Conversion

Binary ASK

Binary FSK

Binary PSK

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

This Lab

This Lab is to measure the reliability of digital


modulation, i.e., ASK, 4-ASK, QPSK, 8-PSK, and 16QAM

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.

2.

3.

4.

5.

6.

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.
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
Add another Variable from Variables category and change the ID to value, the
value to 0, 1 (in case of binary ASK).
Add Chunks to Symbols from Misc Conversions category and change the input
type to Byte, symbol table to symbol, the dimension to 1.
Click on the out port of Random Source block and in port of Chunks to Symbols
block to make a connection.
Add Noise Source from Sources category and change the amplitude to 0.707
(amplitude can be adjusted to change SNR).

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

7.

8.

9.
10.

11.

12.

13.
14.

15.
16.

Add Add from Operators category and make connections between Chunks to
Symbols and Add blocks, Noise Source and Add blocks.
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.
Add Import from Misc category and change the import to import math.
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)).
Make connections between Random Source and Error Rate blocks,
Constellation Decoder and Error Rate blocks.
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.
Make a connection between Error Rate and Number Sink blocks.
Add Scope Sink from Graphical Sinks category and change the XY mode to
On.
Make a connection between Add and Scope Sink blocks.
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.
18.

19.

20.

21.

22.

Click Execute the flow graph icon to execute it.


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.
To visualize the effect of noise, add Scope Sink after the Add block and another
Scope Sink after the Chunks to Symbols block.
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
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
Repeat the above experiment for 8-PSK and 16-QAM
Hint)
Please send in your assignments
(with all grc files) via email

8-PSK

16-QAM

13

Anda mungkin juga menyukai