Skip to main content

Equalizer to reduce Multi-path Effects using MATLAB

 

Steps

1. Convert Bit Stream to Bipolar Format. Converts the bit stream from binary (0, 1) to bipolar format (-1, 1).

2. Define Channel Impulse Response

3. Pass Signal Through the Channel. Convolves the bipolar signal with the channel impulse response to simulate the channel effect.

4. Adds Gaussian noise to the received signal based on the specified SNR.

5. Initialize Adaptive Filter Parameters. 

  • w: Initializes the adaptive filter coefficients.
  • x_buf: Initializes the buffer for the input to the adaptive filter.
  • equalized_signal: Initializes the array to store the equalized signal.
  • P: Initializes the inverse correlation matrix.
  • 6. Adaptive Equalization Using RLS Algorithm

    Loops through each sample to perform adaptive equalization:

    • Update Input Buffer: Adds the current sample to the input buffer.
    • Calculate Gain Vector: Computes the gain vector k for the adaptive filter.
    • Calculate Error Signal: Computes the error between the original signal and the filter output.
    • Update Filter Coefficients: Updates the adaptive filter coefficients based on the error signal.
    • Update Inverse Correlation Matrix: Updates the inverse correlation matrix for the RLS algorithm.
    • Store Equalized Output: Stores the equalized signal in the output array.

    7. Plot Original and Equalized Signals 

     

    MATLAB Script

    clc;
    clear;
    close all;

    % Parameters
    bit_stream = [1, 1, 0, 0, 1, 0, 1, 1, 1, 0]; % Original bit stream
    N = length(bit_stream); % 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 = 15; % SNR value in dB

    % Convert bit stream to bipolar format (-1, 1)
    original_signal = bit_stream * 2 - 1;

    % Channel impulse response
    h = [0.75, 0.05, 0.02];

    % Pass the signal through the channel
    received_signal = filter(h, 1, original_signal);

    % Add some noise
    received_signal_noisy = 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_noisy(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

    % Plot original and equalized signals
    figure;
    subplot(2, 1, 1);
    stem(original_signal, 'filled');
    title('Original Signal');
    xlabel('Sample Index');
    ylabel('Amplitude');
    grid on;

    subplot(2, 1, 2);
    stem(equalized_signal, 'filled');
    title('Equalized Signal');
    xlabel('Sample Index');
    ylabel('Amplitude');
    grid on;
     

    Output


     

    Copy the MATLAB Code from here

     

    Further Reading



    Contact Us

    Name

    Email *

    Message *

    Popular Posts

    CMOS Logic Gates: Inverter, NAND, and NOR

    CMOS Logic Gates: Inverter, NAND, and NOR Complementary metal–oxide–semiconductor (CMOS) technology forms the backbone of modern digital IC design. Patented by Frank Wanlass in 1963 ( US patent 3,356,858 ), CMOS enables low-power, high-speed, and noise-immune logic circuits. CMOS gates, including inverters, NAND, and NOR, are widely used in both large-scale and small-scale integrated circuits due to their efficiency and versatility. CMOS Inverter A CMOS inverter consists of a complementary pair of PMOS and NMOS transistors. The PMOS transistor connects to the supply voltage V DD , while the NMOS connects to ground. The input voltage V IN controls both gates, and the output voltage V OUT is taken from the connected drains. CMOS inverters are highly energy-efficient and produce minimal heat due to their comple...

    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 2026 - Question Paper Download PDF June 202...

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

    IIR Filter Simulation

    IIR Filter & Feedback Lab IIR Filter & Feedback Lab Exploring Recursive Systems: Where Output depends on Output 1 Input Signal $x[n]$ Signal Type Unit Impulse ฮด[n] Sine Wave Unit Step u[n] Frequency (for Sine) Notice: With an Impulse input, the output of an IIR filter can ring forever (Infinite response). 2 Feedback Coefficients Numerator $b$ (Feed-forward) Denominator $a$ (Feedback - $a_0$ is always 1) System Stable Try setting $a$ to 1.0, -1.1 to see an unstable system! ...

    (Filters) Free MATLAB alternative for signal analysis

    Advanced Signal Filters Upload CSV (1st Col) or Audio (WAV, MP3, etc.) Generate Messy Signal (20Hz + 50Hz + 150Hz) No Operation FFT (Spectrum) Amplitude Modulation (AM) Double Sideband Supressed Carrier (DSBSC) Pulse Amplitude Modulation (PAM) Flat Top PAM Filters - LPF, HPF, BPF, Notch Principal Component Analysis (PCA) Cross Spectrum Filter Type: Signal Cleaner ...

    Online Simulator for Frequency Modulatiuon and Demodulation

    FM Modulation Simulator Frequency Modulation (FM) In Frequency Modulation, the frequency of the carrier signal varies in accordance with the message signal's amplitude. s FM (t) = A c cos(ฯ‰ c t + k f ∫m(t)dt) where ฯ‰ = 2ฯ€f & k f = Frequency Sensitivity Modulation index, ฮฒ = (k f * A m ) / f m Change the parameter values to see the effect. Message Freq (Hz) 1 Carrier Freq (Hz) Message Amplitude (Am) Kf (sensitivity): 50 Perform FM Demodulation ๐Ÿงช Experiment for Students: ...

    Decision Feedback Equalizer (DFE) in MATLAB

      MATLAB Code M = 4; % QPSK numSymbols = 10000; numTrainingSymbols = 5000; chtaps = [1 0.5*exp(1i*pi/6) 0.1*exp(-1i*pi/8)]; % Generate QPSK symbols data = randi([0 M-1], numSymbols, 1); tx = pskmod(data, M, pi/4); % DFE setup eq = comm.DecisionFeedbackEqualizer; eq.ReferenceTap = 1; eq.NumForwardTaps = 5; eq.NumFeedbackTaps = 3; % SNR sweep snrVec = 0:5:25; % 0,5,10,...25 dB berBefore = zeros(size(snrVec)); berAfter = zeros(size(snrVec)); for k = 1:length(snrVec) % Apply channel and AWGN rx = awgn(filter(chtaps,1,tx), snrVec(k), 'measured' ); % BER before equalization rxDataNoEq = pskdemod(rx, M, pi/4); [~, berBefore(k)] = biterr(data, rxDataNoEq); % Equalize [y,~,~] = eq(rx, tx(1:numTrainingSymbols)); % Phase correction phaseOffset = angle(mean(conj(tx(1:numTrainingSymbols)) .* y(1:numTrainingSymbols))); yCorrected = y * exp(-1i*phaseOffset); % BER after equalization rxDataEq = pskdemod(yCorrected, M, pi/4); [...

    The electric field of a monochromatic plane wave travelling in a lossless isotropic and homogenous medium is given by E(z, t) = ...

      Q. The electric field of a monochromatic plane wave travelling in a lossless isotropic and homogenous medium is given by E(z, t) = E₀ [x̂ cos(ฯ‰t − kz) + ลท sin(ฯ‰t − kz)] in a right-handed orthogonal co-ordinate system. Which of the following is the correct polarization of the electromagnetic wave? (A) Right-handed circularly polarized Correct answer under the IEEE convention. (B) Left-handed circularly polarized (C) Linearly polarized (D) Linearly polarized at −45° to x̂ Solution 1. Identify the electric-field components Let ฯˆ = ฯ‰t − kz. The components along the x and y directions are: Eโ‚“ = E₀ cos ฯˆ Eแตง = E₀ sin ฯˆ Both components have equal amplitudes, the same frequency, and a phase difference of 90°. These are the conditions for circular polarization. ...