Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📡 PyComms

PyComms-Lab Banner

A comprehensive, curriculum-aligned collection of Python-based simulations for core topics in Electronics and Communication Engineering (ECE). Designed for academic learning, lab assignments, and concept visualization.

Python NumPy SciPy Matplotlib

Stars GitHub Issues Last Commit Repo Size

Author Maintained License Contributions Welcome


Curriculum

This repository is structured sequentially to follow a standard Communication Engineering syllabus, from foundational probability and signals to digital transmission, wireless channels, network protocols, and emerging 5G/Radar technologies.

# Folder Focus & Included Simulations
01 01_Probability_Random_Variables_and_Noise Gaussian PDF/CDF, random processes (autocorrelation, PSD), noise types, Central Limit Theorem (CLT), probability distributions
02 02_Signals_and_Systems Basic signal generation, convolution, Fourier series, FFT analysis, sampling & aliasing
03 03_Analog_Modulation AM, FM, PM, SSB/DSB modulation & demodulation
04 04_Digital_Modulation ASK, FSK, PSK (BPSK/QPSK), QAM, constellations, QPSK/QAM text transmission over noisy channel
05 05_Pulse_Modulation PAM, PWM/PPM, PCM encoding/decoding, delta modulation, adaptive delta modulation
06 06_Information_Theory_and_Coding Entropy, Shannon-Fano, Huffman coding, channel capacity, mutual information, rate-distortion, Lempel-Ziv (LZ78) coding
07 07_Error_Control_Coding Linear block codes, Hamming codes, CRC, convolutional coding, Viterbi decoding, Reed-Solomon (15,11) coding, BCH codes, Turbo coding
08 08_Data_Transmission_and_Line_Coding Line codes (NRZ, Manchester, AMI, B8ZS), eye diagram, ISI, raised cosine pulse shaping, baseband transmission, scrambler/descrambler
09 09_AWGN_and_Channel_Modeling AWGN channels, Rayleigh & Rician fading, BER vs. SNR analysis, Shannon capacity limits, multipath delay spread, LS vs. MMSE channel estimation
10 10_Multiplexing_and_Multiple_Access TDM, FDM, CDMA, OFDM, Wavelength Division Multiplexing (WDM), Pure & Slotted ALOHA
11 11_Transmitter_and_Receiver_Design Superheterodyne receiver, Phase-Locked Loop (PLL), Automatic Gain Control (AGC), direct conversion receiver, transmitter architecture
12 12_Spread_Spectrum_Communication DSSS, FHSS, PN sequence generation (LFSR), processing gain
13 13_DSP_for_Communication Correlation receiver, FIR/IIR digital filters, equalization, matched filtering
14 14_Antenna_and_Wave_Propagation Radiation patterns, Friis transmission equation, ground wave propagation, link budget calculator
15 15_Optical_Communication Fiber attenuation, numerical aperture, optical BER, chromatic dispersion analysis, optical link budget
16 16_Satellite_Communication Orbital parameters, Doppler shift, satellite link budget
17 17_Wireless_and_Mobile_Communication Cellular frequency reuse, handoff, MIMO capacity, path loss models, OFDM wireless, receiver diversity combining (SC, EGC, MRC)
18 18_Network_Protocols_and_Data_Link ARQ protocols (Stop-and-Wait, Go-Back-N, Selective Repeat), sliding window flow control, frame-level error detection
19 19_Radar_Communication Radar range equation, chirp pulse compression, Doppler radar velocity estimation
20 20_Emerging_Technologies 5G NR numerology & slot structure, mmWave propagation with atmospheric loss, Massive MIMO beamforming, Cognitive Radio spectrum sensing
21 21_Mini_Projects Socket chat app, SDR basics, spectrum analyzer GUI, speech signal compression
22 22_Advanced_Modulation_Visualizations 16-QAM noise dashboard, QAM order comparison, QPSK BER dashboard

Simulation Scripts & Outputs

Below is the complete curriculum index of all simulation scripts, including direct links to their source code, saved console logs, and visual plots.

01. Probability Random Variables and Noise

Folder path: 01_Probability_Random_Variables_and_Noise

Simulation Script Output Plot(s) Description
central_limit_theorem.py Plot 1
Plot 2
Central Limit Theorem demonstration.
gaussian_pdf_cdf.py Plot Gaussian PDF and CDF visualization.
noise_types.py Plot Noise types in communication systems.
probability_distributions.py Plot Probability distributions used in communication engineering.
random_processes.py Plot Random processes: autocorrelation and power spectral density.

02. Signals and Systems

Folder path: 02_Signals_and_Systems

Simulation Script Output Plot(s) Description
basic_signals_generation.py Plot Simulation script.
convolution.py Plot Simulation script.
fft_analysis.py Plot Simulation script.
fourier_series.py Plot Simulation script.
sampling_aliasing.py Plot Simulation script.

03. Analog Modulation

Folder path: 03_Analog_Modulation

Simulation Script Output Plot(s) Description
am_modulation_demodulation.py Plot Simulation script.
fm_modulation.py Plot Simulation script.
pm_modulation.py Plot Simulation script.
ssb_dsb_modulation.py Plot Simulation script.

04. Digital Modulation

Folder path: 04_Digital_Modulation

Simulation Script Output Plot(s) Description
ask_modulation.py Plot Simulation script.
constellation_diagrams.py Plot Simulation script.
fsk_modulation.py Plot Simulation script.
psk_bpsk_qpsk.py Plot Simulation script.
qam16_modulation_demodulation.py Plot Simulation script.
qam_modulation.py Plot Simulation script.
qpsk_modulation_demodulation.py Plot Simulation script.

05. Pulse Modulation

Folder path: 05_Pulse_Modulation

Simulation Script Output Plot(s) Description
adaptive_delta_modulation.py Plot Simulation script.
delta_modulation.py Plot Simulation script.
pam.py Plot Simulation script.
pcm_encoding_decoding.py Plot Simulation script.
pwm_ppm.py Plot Simulation script.

06. Information Theory and Coding

Folder path: 06_Information_Theory_and_Coding

Simulation Script Output Plot(s) Description
channel_capacity.py Plot Simulation script.
entropy_calculation.py - Simulation script.
huffman_coding.py - Simulation script.
lempel_ziv_coding.py Plot Lempel-Ziv (LZ78) Compression Algorithm Demonstration.
mutual_information.py Plot Mutual Information and BSC Channel Capacity.
rate_distortion.py Plot Rate-Distortion Functions for Gaussian and Binary Sources.
shannon_fano_coding.py - Simulation script.
source_coding_efficiency.py - Simulation script.

07. Error Control Coding

Folder path: 07_Error_Control_Coding

Simulation Script Output Plot(s) Description
bch_code.py Plot Bose-Chaudhuri-Hocquenghem (BCH) Cyclic Code.
convolutional_coding.py - Simulation script.
cyclic_redundancy_check.py - Simulation script.
hamming_code.py - Simulation script.
linear_block_codes.py - Simulation script.
reed_solomon_coding.py Plot Reed-Solomon Error Control Coding.
turbo_code_basics.py Plot Turbo Code Encoder and Iterative Decoder.
viterbi_decoder.py - Simulation script.

08. Data Transmission and Line Coding

Folder path: 08_Data_Transmission_and_Line_Coding

Simulation Script Output Plot(s) Description
baseband_transmission.py Plot Complete baseband digital transmission system.
eye_diagram.py Plot Eye diagram generation for baseband digital transmission.
intersymbol_interference.py Plot 1
Plot 2
Inter-Symbol Interference (ISI) and pulse shaping.
line_coding_schemes.py Plot Line coding schemes used in digital data transmission.
scrambler_descrambler.py Plot Scrambler and descrambler for digital data transmission.

09. AWGN and Channel Modeling

Folder path: 09_AWGN_and_Channel_Modeling

Simulation Script Output Plot(s) Description
awgn_capacity.py Plot Shannon Channel Capacity of AWGN Channel.
awgn_channel.py Plot Simulation script.
ber_vs_snr_bpsk.py Plot Simulation script.
ber_vs_snr_qpsk.py Plot Simulation script.
channel_estimation.py Plot Pilot-based Channel Estimation (LS vs. MMSE).
multipath_channel.py Plot Multipath Channel Simulation and Frequency Selective Fading.
rayleigh_fading.py Plot Simulation script.
rician_fading.py Plot Simulation script.

10. Multiplexing and Multiple Access

Folder path: 10_Multiplexing_and_Multiple_Access

Simulation Script Output Plot(s) Description
aloha_simulation.py Plot Pure and Slotted ALOHA Multiple Access Throughput.
cdma_simulation.py - Simulation script.
fdm_simulation.py Plot Simulation script.
ofdm_simulation.py Plot Simulation script.
tdm_simulation.py Plot Simulation script.
wdm_simulation.py Plot Wavelength Division Multiplexing (WDM) Simulation.

11. Transmitter and Receiver Design

Folder path: 11_Transmitter_and_Receiver_Design

Simulation Script Output Plot(s) Description
agc_automatic_gain_control.py Plot Automatic Gain Control (AGC) simulation.
direct_conversion_receiver.py Plot Direct-conversion (zero-IF) receiver simulation.
pll_phase_locked_loop.py Plot Phase-Locked Loop (PLL) simulation.
superheterodyne_receiver.py Plot Simulation script.
transmitter_architecture.py Plot Transmitter architecture simulation.

12. Spread Spectrum Communication

Folder path: 12_Spread_Spectrum_Communication

Simulation Script Output Plot(s) Description
dsss_direct_sequence.py Plot Direct Sequence Spread Spectrum (DSSS) simulation.
fhss_frequency_hopping.py Plot Frequency-Hopping Spread Spectrum (FHSS) simulation.
pn_sequence_generator.py Plot PN (Pseudo-Noise) sequence generator using LFSR.
processing_gain.py Plot Processing gain and jamming margin in spread spectrum systems.

13. DSP for Communication

Folder path: 13_DSP_for_Communication

Simulation Script Output Plot(s) Description
correlation_receiver.py Plot Simulation script.
digital_filters_fir_iir.py Plot Simulation script.
equalization.py Plot Simulation script.
matched_filter.py Plot Simulation script.

14. Antenna and Wave Propagation

Folder path: 14_Antenna_and_Wave_Propagation

Simulation Script Output Plot(s) Description
friis_transmission_equation.py Plot Simulation script.
ground_wave_propagation.py Plot Simulation script.
link_budget_calculator.py - Simulation script.
radiation_pattern.py Plot Simulation script.

15. Optical Communication

Folder path: 15_Optical_Communication

Simulation Script Output Plot(s) Description
ber_optical_link.py Plot Simulation script.
dispersion_analysis.py Plot Optical Fiber Dispersion Analysis.
fiber_attenuation.py Plot Simulation script.
numerical_aperture.py - Simulation script.
optical_link_budget.py Plot Optical Link Power Budget Design.

16. Satellite Communication

Folder path: 16_Satellite_Communication

Simulation Script Output Plot(s) Description
doppler_shift_satellite.py Plot Simulation script.
link_budget_satellite.py - Simulation script.
orbital_parameters.py - Simulation script.

17. Wireless and Mobile Communication

Folder path: 17_Wireless_and_Mobile_Communication

Simulation Script Output Plot(s) Description
cellular_frequency_reuse.py Plot Simulation script.
diversity_techniques.py Plot Wireless Receiver Diversity Combining Techniques.
handoff_simulation.py Plot Simulation script.
mimo_simulation.py - Simulation script.
ofdm_wireless.py Plot OFDM Wireless Transmission with Cyclic Prefix.
path_loss_models.py Plot Simulation script.

18. Network Protocols and Data Link

Folder path: 18_Network_Protocols_and_Data_Link

Simulation Script Output Plot(s) Description
arq_protocols.py Plot ARQ (Automatic Repeat reQuest) protocol simulation.
error_detection_protocols.py Plot Error detection at the data-link layer.
flow_control.py Plot Sliding window flow control simulation.

19. Radar Communication

Folder path: 19_Radar_Communication

Simulation Script Output Plot(s) Description
doppler_radar.py Plot Doppler radar simulation for moving-target velocity estimation.
pulse_compression.py Plot Linear FM (chirp) pulse compression simulation.
radar_range_equation.py Plot Radar range equation calculation and detection analysis.

20. Emerging Technologies

Folder path: 20_Emerging_Technologies

Simulation Script Output Plot(s) Description
5g_nr_basics.py Plot 5G NR (New Radio) Numerology and Slot Structure.
cognitive_radio.py Plot Cognitive Radio Spectrum Sensing Simulation.
massive_mimo.py Plot Massive MIMO Beamforming and Precoding Simulation.
mmwave_propagation.py Plot Millimeter Wave (mmWave) Propagation Characteristics.

21. Mini Projects

Folder path: 21_Mini_Projects

Simulation Script Output Plot(s) Description
chat_application_socket.py - Simulation script.
digital_filter_designer.py Plot Simulation script.
dtmf_dialpad_simulator.py Plot Simulation script.
software_defined_radio_basics.py Plot Simulation script.
spectrum_analyzer_gui.py Plot Simulation script.
speech_signal_compression.py Plot Simulation script.

22. Advanced Modulation Visualizations

Folder path: 22_Advanced_Modulation_Visualizations

Simulation Script Output Plot(s) Description
qam16_noise_dashboard.py Plot Simulation script.
qam_order_comparison.py Plot Simulation script.
qpsk_ber_constellation_dashboard.py Plot Simulation script.

How to Run

Run any simulation from the repository root:

# General run command
python <folder_name>/<script_name>.py

# Example: Run 5G NR Numerology Simulation
python 20_Emerging_Technologies/5g_nr_basics.py

# Example: Run Massive MIMO Precoding & Beamforming
python 20_Emerging_Technologies/massive_mimo.py

# Example: Run Sliding Window Flow Control
python 18_Network_Protocols_and_Data_Link/flow_control.py

Most scripts display an interactive Matplotlib plot and print quantitative performance results to the console.

Highlighted Advanced Examples

  • Massive MIMO Beamforming (20_Emerging_Technologies/massive_mimo.py): Models a Uniform Linear Array (ULA) at a Base Station and simulates Zero Forcing (ZF), Minimum Mean Squared Error (MMSE), and Maximum Ratio Transmission (MRT) precoders, plotting sum-rate scaling and beam radiation patterns.
  • Turbo Codes (07_Error_Control_Coding/turbo_code_basics.py): Simulates a parallel concatenated systematic convolutional code with iterative soft-decision feedback decoding, showing how BER improves iteration by iteration.
  • OFDM Wireless System (17_Wireless_and_Mobile_Communication/ofdm_wireless.py): Contains a full transceiver chain: IFFT modulation, Cyclic Prefix (CP) insertion, multipath channel convolution, FFT demodulation, and 1-tap frequency domain equalization (FEQ).

⚖️ License

This project is licensed under the MIT License - see the LICENSE file for details


🔗 Connect with me

Twitter LinkedIn Stack Exchange GitHub

About

Python simulations for Electronics & Communication Engineering (ECE). Interactive Matplotlib plots and console logs covering random processes, digital modulation, coding theory, wireless channels, 5G NR, MIMO, and radar systems.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages