Skip to main content

Adaptive Equalizer to mitigate Channel Distortion - in MATLAB

 

Adaptive equalizer adjusts its parameters based on the characteristics of the communication channel. It uses adaptive algorithms to continuously estimate and correct for channel distortion, aiming to minimize errors in the received signal. Adaptive equalizers are versatile and effective in varying channel conditions.

 

MATLAB Code

clc;
clear;
close all;

% Parameters
N = 100000; % Number of samples
filter_order = 10; % Order of the adaptive filter
lambda = 0.99; % Forgetting factor for RLS algorithm
delta = 1; % Initial value for the inverse correlation matrix
SNR_range = -20:1:20; % SNR range in dB
ber = zeros(length(SNR_range), 1); % Initialize BER array

% Generate a random signal
original_signal = randi([0, 1], N, 1) * 2 - 1; % Bipolar signal (-1, 1)

% Channel impulse response
h = [0.8, 0.5, 0.2];

% Loop over SNR values
for snr_idx = 1:length(SNR_range)
    SNR = SNR_range(snr_idx); % Current SNR value
    
    % Pass the signal through the channel
    received_signal = filter(h, 1, original_signal);
    
    % Add some noise
    received_signal = awgn(received_signal, SNR, 'measured');
    
    % Initialize the adaptive filter coefficients
    w = zeros(filter_order, 1);
    
    % Initialize buffer for the input to the adaptive filter
    x_buf = zeros(filter_order, 1);
    
    % Initialize output
    equalized_signal = zeros(N, 1);
    
    % Initialize the inverse correlation matrix
    P = delta * eye(filter_order);
    
    % Adaptive equalization using RLS
    for n = 1:N
        % Update the input buffer
        x_buf = [received_signal(n); x_buf(1:end-1)];
        
        % Calculate the gain vector
        k = (P * x_buf) / (lambda + x_buf' * P * x_buf);
        
        % Calculate the error signal
        e = original_signal(n) - w' * x_buf;
        
        % Update the filter coefficients
        w = w + k * e;
        
        % Update the inverse correlation matrix
        P = (P - k * x_buf' * P) / lambda;
        
        % Store the equalized output
        equalized_signal(n) = w' * x_buf;
    end
    
    % Decode the equalized signal using threshold 0
    decoded_signal = equalized_signal > 0;
    decoded_signal = decoded_signal * 2 - 1; % Convert from (0, 1) to (-1, 1)
    
    % Calculate BER
    num_errors = sum(original_signal ~= decoded_signal);
    ber(snr_idx) = num_errors / N;
end

% Plot BER vs SNR
figure;
semilogy(SNR_range, ber, 'b-o');
xlabel('SNR (dB)');
ylabel('Bit Error Rate (BER)');
title('BER vs SNR');
grid on;
 

Output


 Fig 1: BER vs SNR for Adaptive Equalizer (to mitigate the channel distortion)


Copy the Code from here



Contact Us

Name

Email *

Message *

Popular Posts

Online Simulator for ASK, FSK, and PSK Signal Generation

Interactive Digital Signal Processing (DSP) Tutorial and Simulator for ASK, FSK, and BPSK modulation techniques. Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Digital Modulation Visualizer: ASK, FSK, & BPSK Simulator Learn and visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. Perfect for DSP students and engineers. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator Demodulation More Topics 1. ASK (Ampli...

UGC NET Electronic Science Previous Year Question Papers with Solutions

Download Papers and Solutions Exam Pattern Preparation Tips FAQs More Home / Engineering & Other Exams / UGC NET 2026 PYQ 📊 Exam Highlights: Electronic Science (88) Feature Details Junior Research Fellowship (JRF) ₹37,000 + HRA per month Eligibility M.Sc/M.Tech in Electronics (55%) Validity of Certificate JRF (3 Years) | Lectureship (Lifetime) 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading 📂 View All Question Papers June 2025 - Question Paper Download PDF June 2025 - Sol...

DFTs-OFDM vs OFDM: Why DFT-Spread OFDM Reduces PAPR Effectively (with MATLAB Code)

Understanding PAPR in DFT-spread OFDM vs. Standard OFDM In modern wireless communications like 4G LTE and 5G NR, managing the Peak-to-Average Power Ratio (PAPR) is critical for hardware efficiency. While OFDM is the gold standard for high-speed data, its high PAPR poses significant challenges for mobile devices. This is where DFTs-OFDM (also known as SC-FDMA) comes in. DFT-spread OFDM (DFTs-OFDM) has lower Peak-to-Average Power Ratio (PAPR) because it "spreads" the data in the frequency domain before applying IFFT, making the time-domain signal behave more like a single-carrier signal rather than a multi-carrier one like OFDM. Deeper Explanation: Aspect OFDM DFTs-OFDM Signal Type Multi-carrier Single-carrier-like Process IFFT of QAM directly QAM → DFT → IFFT PAPR Level High (due to many...

OFDM Symbols and Subcarriers Explained

This article explains how OFDM (Orthogonal Frequency Division Multiplexing) symbols and subcarriers work. It covers modulation, mapping symbols to subcarriers, subcarrier frequency spacing, IFFT synthesis, cyclic prefix, and transmission. Step 1: Modulation First, modulate the input bitstream. For example, with 16-QAM , each group of 4 bits maps to one QAM symbol. Suppose we generate a sequence of QAM symbols: s0, s1, s2, s3, s4, s5, …, s63 Step 2: Mapping Symbols to Subcarriers Assume N sub = 8 subcarriers. Each OFDM symbol in the frequency domain contains 8 QAM symbols (one per subcarrier): Mapping (example) OFDM symbol 1 → s0, s1, s2, s3, s4, s5, s6, s7 OFDM symbol 2 → s8, s9, s10, s11, s12, s13, s14, s15 … OFDM sym...

Calculation of SNR from FFT bins in MATLAB

📘 Overview 💻 FFT Bin Method 💻 Kaiser Window 📚 Further Reading SNR Estimation Overview In digital signal processing, estimating the Signal-to-Noise Ratio (SNR) accurately is crucial. Below, we demonstrate how to calculate SNR from periodogram and FFT bins using the Kaiser Window . The beta (β) parameter is the key—it allows you to control the trade-off between main-lobe width and side-lobe levels for precise spectral analysis. 1 Define Sampling rate and Time vector 2 Compute FFT and Periodogram PSD 3 Identify Signal Bin and Frequency resolution 4 Segment Signal Power from Noise floor 5 Logarithmic calculation of SNR in dB Method 1: Estimation from FFT Bins This approach uses a Hamming window to estimate SNR directly from the spectral bins. MATLAB Source Code Copy Code clc...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. 📘 Overview 🧮 Simulator ⚖️ Theory 📈 Q-function 📚 Resources BASK Modulation Transmits one of two signals: 0 or $\sqrt{E_b}$, representing binary 0 and 1. Simple but sensitive to noise. BFSK Modulation Transmits one of two signals: $\sqrt{E_b}$ on the Y-axis or $\sqrt{E_b}$ on the X-axis. These are orthogonal signals. BPSK Modulation Transmits $+\sqrt{E_b}$ or $-\sqrt{E_b}$ (antipodal signaling). Most efficient binary scheme. ...