Skip to content

Implements and simulates a digital communication system using Continuous Phase Modulation (CPM) with FSM-based modulator, Viterbi receiver, spectral analysis, and BER evaluation. Includes Python scripts, data, and Jupyter notebooks.

License

Notifications You must be signed in to change notification settings

FForzano/CPM-modem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wireless Ecosystems Project

This repository contains the code and resources for a project developed by Federico Forzano for the Wireless Ecosystems course at the University of Ferrara, taught by Prof. Velio Tralli. For more information about the course, see the official course page.

Project Overview

The project implements and simulates a digital communication system based on Continuous Phase Modulation (CPM). It includes:

  • A CPM modulator based on a finite state machine, supporting different modulation indices, pulse shapes, and memory lengths.
  • A receiver with Viterbi decoding for symbol sequence reconstruction, including simulation of transmission over an AWGN channel.
  • Tools for spectral analysis of CPM signals under various parameters.
  • Performance evaluation scripts to estimate bit error rates as a function of noise and system configuration.
  • Jupyter notebooks for interactive exploration, visualization, and reporting.

Repository Structure

  • CPM_Spettri.ipynb / CPM_Spettri.py: Spectral analysis of CPM signals, exploring the impact of modulation parameters and pulse shapes.
  • Performance_evaluation.ipynb / Performance_evaluation.py: Simulation and evaluation of system performance, including error probability estimation.
  • Relazione_interattiva.ipynb: Interactive report and simulation notebook, with detailed explanations and plots.
  • ImpostazioneSistema/: System setup scripts, impulse and waveform generation, and utility functions.
  • Modulatore/: CPM modulator implementation and related logic.
  • Ricevitore/: Receiver implementation, including Viterbi decoding and signal processing.
  • Data/configuration files (*.npy, *.pkl, *.configurations): Used for storing generated signals, symbol sequences, and modulation parameters.

Requirements

  • Python 3.8+
  • NumPy, Matplotlib, SciPy (see notebooks/scripts for additional dependencies)

Usage

Clone the repository and run the notebooks or scripts to reproduce the simulations, analyze spectra, and evaluate system performance. Configuration files and data are generated automatically by the scripts.

License

See LICENSE for details.

Author

Federico Forzano

Instructor

Prof. Velio Tralli

About

Implements and simulates a digital communication system using Continuous Phase Modulation (CPM) with FSM-based modulator, Viterbi receiver, spectral analysis, and BER evaluation. Includes Python scripts, data, and Jupyter notebooks.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published