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

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...

Constellation Diagram of FSK in Detail

📘 Overview 🧮 Simulator for constellation diagram of FSK 🧮 Theory 🧮 MATLAB Code 📚 Further Reading 📚 BER vs SNR from Constellation   Binary bits '0' and '1' can be mapped to 'j' and '1' to '1', respectively, for Baseband Binary Frequency Shift Keying (BFSK) . Signals are in phase here. These bits can be mapped into baseband representation for a number of uses, including power spectral density (PSD) calculations. For passband BFSK transmission, we can modulate signal 'j' with a lower carrier frequency and signal '1' with a higher carrier frequency while transmitting over a wireless channel. Let's assume we are transmitting carrier signal fc1 for the transmission of binary bit '1' and carrier signal fc2 for the transmission of binary bit '0'. Simulator for 2-FSK Constellation Diagram Simulator for 2-FSK Constellation Diagram ...

UGC NET Electronic Science Previous Year Question Papers with Solutions

Home / Engineering & Other Exams / UGC NET 2026 PYQ ⬇️ Download Papers and Solutions 📋 Exam Pattern 💡 Preparation Tips ❓ FAQs 📊 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 - Solved Paper + Explanation ...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. 📘 Theory 🧮 Simulators 💻 MATLAB Code 📚 Resources BER Definition SNR Formula BER Calculator MATLAB Comparison 📂 Explore M-ary QAM, PSK, and QPSK Topics ▼ 🧮 Constellation Simulator: M-ary QAM 🧮 Constellation Simulator: M-ary PSK 🧮 BER calculation for ASK, FSK, and PSK 🧮 Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit f...

Coherence Bandwidth and Coherence Time (with MATLAB + Simulator)

🧮 Coherence Bandwidth 🧮 Coherence Time 🧮 MATLAB Code s 📚 Further Reading For Doppler Delay or Multi-path Delay Coherence time T coh ∝ 1 / v max (For slow fading, coherence time T coh is greater than the signaling interval.) Coherence bandwidth W coh ∝ 1 / Ï„ max (For frequency-flat fading, coherence bandwidth W coh is greater than the signaling bandwidth.) Where: T coh = coherence time W coh = coherence bandwidth v max = maximum Doppler frequency (or maximum Doppler shift) Ï„ max = maximum excess delay (maximum time delay spread) Notes: The notation v max −1 and Ï„ max −1 indicate inverse proportionality. Doppler spread refers to the range of frequency shifts caused by relative motion, determining T coh . Delay spread (or multipath delay spread) determines W coh . Frequency-flat fading occurs when W coh is greater than the signaling bandwidth. Coherence Bandwidth Coherence bandwidth is...

FM Bandwidth and FM Band Explained

FM radio uses the frequency band from 88 MHz to 108 MHz , which is a 20 MHz-wide spectrum . This is the range of carrier frequencies available to stations. 108 MHz − 88 MHz = 20 MHz However, a single FM station occupies only about 200 kHz . This is the bandwidth of the modulated FM signal. 1. Why One FM Station Needs ~200 kHz FM uses frequency modulation . The bandwidth depends on how far the carrier swings. Carson's Rule gives the approximate FM bandwidth: B = 2 ( Δf + f m ) ...

Online Simulator for ASK, FSK, and PSK

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 More Topics 1. ASK (Amplitude Shift Keying) Simulat...