This repository contains simulations related to basic digital communication methods and principles. Each folder represents a specific session. Below is a list of sessions along with a brief description of their contents.
-
Topics:
- Working with basic pulse shapes and analyzing their characteristics.
- Deriving PSK modulation bit error rate (BER) formula and plotting it versus SNR, comparing it with MATLAB’s
berawgn
function. - Examining the effects of channel magnitude (
$\alpha$ ) and phase ($\phi$ ) on the Symbol Error Rate (SER) of PSK modulation.
- Topics:
- Implementing a method to achieve a Gaussian distribution using the Central Limit Theorem (CLT).
- Implementing digital filtering and comparing results with MATLAB’s built-in
filter
function. - Determining the start of data transmission using correlation and a predefined header.
- Visualizing the FFT of a single-tone signal and analyzing how various parameters (e.g., sample size, input frequency) affect the FFT output.
- Topics:
- Using matrices to calculate the Discrete Fourier Transform (DFT) and signal spectrum.
- Observing the impact of non-ideal transformations from intermediate-band to baseband.
- Topics:
- Simulations related to white noise, filtering, baseband signals, and intermediate-band signals.
-
Topics:
- Implementing a transmission simulation. The goal is to send data packets through an ideal channel and detect them.
-
Main functions:
bitGenerator
: Generates bits for transmission.grayMatrixGenerator
: Generates Gray code matrix for encoding.pulseModulation
: Modulates bits with different pulse shapes (e.g., triangular).symbolDetection
: Detects symbols using correlators or matched filters.minDistanceDetector
: Detects symbols based on minimum distance.
-
Modulation schemes:
- PAM
- PSK
- QAM
Note: FSK modulation (coherent and non-coherent) is implemented in lab05.m
.
- Topics:
- A complete implementation of a communication system, transmitting data with added noise, time delay, and phase offset.
- Bit Error Rate (BER) vs SNR curves were plotted and compared with MATLAB’s built-in functions.
-
Topics:
- Implementing a simple example to get started with the ADALM-PLUTO (PlutoSDR).
- Transmitting and receiving data using the PlutoSDR, visualized with MATLAB plots.
-
Files:
example.m
: A basic code for initializing and working with PlutoSDR.lab04.m
: Implements the communication system fromlab03.m
on PlutoSDR.
- Topics:
- Completion of
lab03.m
with added Frequency Shift Keying (FSK) modulation and simulation.
- Completion of
- Topics:
- Hardware implementation of
lab05.m
using ADALM-PLUTO (PlutoSDR). It builds uponlab04.m
with updates for FSK modulation.
- Hardware implementation of
-
Clone the repository:
git clone https://github.com/your-username/digital-communication-lab.git cd digital-communication-lab
-
Open MATLAB and navigate to the desired session folder (e.g.,
PreLab01
,Lab01
, etc.). -
Run the MATLAB scripts from the command line or MATLAB editor.