Walsh Hadamard Code – Matlab Simulation

[ratings] The following is a function to generate a Walsh Hadamard Matrix of given codeword size. The codeword size has to be a power of 2. function [H]=generateHadamardMatrix(codeSize) %[H]=generateHadamardMatrix(codeSize); % Function to generate Walsh-Hadamard Matrix where "codeSize" is the code % length of walsh code. The first matrix gives us two codes; 00, 01. The … Read more

FFT and Spectral Leakage

Spectral leakage due to FFT is caused by: mismatch between desired tone and chosen frequency resolution, time limiting an observation. Understand the concept using hands-on examples. Limits of frequency domain studies Frequency Transform is used to study a signal’s frequency domain characteristics. When using FFT to study the frequency domain characteristics of a signal, there … Read more

Understand Moving Average Filter with Python & Matlab

This post contains interactive python code which you can execute in the browser itself. The moving average filter is a simple Low Pass FIR (Finite Impulse Response) filter commonly used for smoothing an array of sampled data/signal. It takes \(L\) samples of input at a time and takes the average of those \(L\)-samples and produces … Read more

Random Interleaver

[ratings] Random Interleaver: The Random Interleaver rearranges the elements of its input vector using a random permutation. The incoming data is rearranged using a series of generated permuter indices. A permuter is essentially a device that generates pseudo-random permutation of given memory addresses. The data is arranged according to the pseudo-random order of memory addresses. … Read more

Block Interleaver Design for RS codes

Reed-Solomon (RS) codes are powerhouse error-correcting tools, but they have a specific Achilles’ heel: if a burst error exceeds their correction capacity ($t$), the entire codeword fails. Block Interleaving is the mathematical bridge that allows RS codes to survive massive, contiguous bursts by spreading the damage across multiple codewords. This comprehensive guide explains the design, … Read more

Interleavers and deinterleavers

[ratings] Interleavers and Deinterleavers are designed and used in the context of characteristics of the errors that might occur when the message bits are transmitted through a noisy channel. To understand the functions of an interleaver/deinterleaver, understanding of error characteristics is essential. Two types are errors concern communication system design engineer. They are burst error … Read more

QPSK – Quadrature Phase Shift Keying

Quadrature Phase Shift Keying (QPSK) is a form of phase modulation technique, in which two information bits (combined as one symbol) are modulated at once, selecting one of the four possible carrier phase shift states. The QPSK signal within a symbol duration \(T_{sym}\) is defined as $$s(t) = A \cdot cos \left[2 \pi f_c t … Read more

Spread Spectrum Communications – Introduction

Spread spectrum system, originally developed for military applications, is extremely resistant to unauthorized detection, jamming, interference and noise. It converts a narrowband signal to wideband signal by the means of spreading. Standards like WiFi and bluetooth use spread spectrum technology such as direct sequence spread spectrum and frequency hopping spread spectrum respectively. Spread spectrum techniques … Read more

Demystifying Error Correction: Convolutional Codes and the Viterbi Algorithm

Convolutional Encoding Unlike block codes (like Reed-Solomon), Convolutional Codes do not have a fixed block size. Instead, they process a continuous stream of bits. The output at any given time depends not only on the current input bit but also on the previous $K-1$ bits, where $K$ is the Constraint Length.+1. Convolutional codes are a … Read more