Giter Site home page Giter Site logo

elc325-simulink-project's Introduction

Digital Communications MATLAB Simulink Project

Simulation and performance evaluation of the following modulation schemes in an Additive White Gaussian Noise (AWGN) envrionment:

  • Binary Phase-Shift Keying (BPSK)
  • Quadrature Phase-Shift Keying (QPSK)
  • Frequency Shift Keying (FSK)
  • Quadrature Amplitude Modulation (QAM)

Common steps to reproduce the simulation model:

  • Open MATLAB, run the simulink command from the command window.
  • In the Simulink window, click on New Model.
  • Click on Library Browser and drag and drop the required blocks:
    • Modulator Baseband (Scheme Dependent)
    • Demodulator Baseband (Scheme Dependent)
    • Random Integer Generator (See Note 1)
    • AWGN channel (set noise level to EbNo)
    • Raised Cosine Transmit Filter
    • Raised Cosine Receive Filter
    • Constellation Diagram (x2)
    • Error Rate Calculation
    • Display
    • To Workspace (set the name to ber)
  • Connect the blocks as shown in the screenshots using drag and drop.
  • Set the Simulation period to 100000 (With Raised Cosine Filters, it was set to 10000).
  • For QAM, there are more steps in the QAM section.
  • Save the model using Ctrl+S.

Common steps to reproduce the simulation model:

  • Run the bertool command from the MATLAB command window.
  • In the BER Tool window, set the Eb/N0 range to -10:10
  • Choose the modulation scheme from the dropdown menu
  • Choose the Modulation Index (See Note 2) and click Plot
  • Open the Monte Carlo tab, set the Eb/N0 range to -10:10
  • Set the Variable name to ber
  • Choose the model file using the Browse button and click Run

Note 1: Random Generator Set Size and Modulation Index should be set to the same value for each scheme. BPSK/FSk: 2, QPSK: 4, QAM: 16 or 64.

Note 2: Scatter plots are produced at a noise level of 10 dB.

Note 3: This project was created using MATLAB R2016a. Unless otherwise stated, all values are left to the default setting (e.g. Initial Seed in the AWGN Channel block is set to 67)


Binary Phase-Shift Keying Modulation (BPSK)

Explanation

BPSK is a modulation scheme which shifts the phase of the output signal depending on the input. The input is binary and the zeros and ones are represented by two different phase states in the carrier signal. The phase difference is 180 degrees.

BPSK without Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot

BPSK with Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot


Quadrature Phase-Shift Keying Modulation (QPSK)

Explanation

QPSK (A.K.A. Double Side Band Suppressed Carrier) is a variation of PSK in which two bits are modulated at once, selecting one of four possible carrier phase shifts (0°, 90°, 180°, or 270°). QPSK doubles the bandwidth efficiency leaving more space for other users.

QPSK without Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot

QPSK with Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot


Frequency Shift Keying (FSK)

Explanation

FSK is a digital modulation scheme in which the frequency of the carrier signal varies according to the digital signal changes. The output of a FSK-modulated wave is high in frequency for a binary High input and is low in frequency for a binary Low input.

FSK without Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot

FSK with Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot


Quadrature Amplitude Modulation (QAM)

Explanation

QAM is a scheme used to transmit two digital bit streams or two analog signals by modulating the amplitudes of two carrier waves so that they differ in phase by 90°. The two signals can be mathematically represented by a sine and a cosine wave.

Extra simulation steps

  • Click on the QAM Modulator Baseband block
  • Set the M-ary number to 16 or 64
  • Set the Normalization method to Average Power

QAM-16 without Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot

QAM-16 with Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot

QAM-64 without Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot

QAM-64 with Raised Cosine Filter

Simulink Model Diagram:

Model

Scatter Plot (Before Noise)

ScatterPlot(BeforeNoise)

Scatter Plot (After Noise)

ScatterPlot(AfterNoise)

BER Performance Plot

BER-Plot

elc325-simulink-project's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.