Skip to main content

Function of a Decision Feedback Equalizer (DFE) Equalizer (with MATLAB)

 

Decision Feedback Equalizer is the abbreviation for this. We know that in a typical wireless communication scenario, different multipath cause the signal to arrive at the receiver at different times after transmitting it from the transmitter. Our signal may show a slight spatial frequency shift as a result. By using several taps to receive signals with varying time delays or signals with a slight frequency shift, equalizers solve this problem by changing their tap weights.

Decision feedback equalizers continuously update their tap coefficient vectors by reducing the error between the desired signal and adaptive filter output.

Inter-symbol interference (ISI) happens in a typical wireless communication system when the modulation bandwidth exceeds the radio channel's coherence bandwidth. Equalization reduces the ISI produced by multipath within a time-dispersive channel.

** Coherence bandwidth is the bandwidth (range of frequencies) over which the channel is constant is called coherence bandwidth

Both feed-forward taps and feed-backward taps are used in a DFE equalizer. 

'Input' - Input signal, specified as a column vector
'Desired' - Training symbols (column vector). The vector length of the desired must be less than or equal to the length of the input.
'Train' - Train equalizer flag. It starts training when the value changes from 0 to 1.
'Error' - Error signal (column vector)
'Weight' - Tap weights

The error between the feedforward and feedback signal is used to adjust the tap weights. To recover the original signal, it also converges the tap weights. DFE uses an adaptive algorithm at the receiver side to track the changing channel and modifies the weight of its filter to recover the known pilot signal most of the time. The data bits are then appropriately corrected. Pilot signals are provided at short intervals and are known to the receiver to track the communication channel or medium's frequently changing characteristics.

 


QPSK + Multipath + Decision Feedback Equalizer (DFE)

20 BER Before: 0 | BER After: 0

Simulator Workflow & Mathematics

1 The Signal Path

  1. QPSK Modulation Random bits are grouped into pairs and mapped to complex symbols: s = exp(j * (π/4 + kπ/2)).
  2. Multipath Channel The signal is convolved with a multi-tap impulse response, simulating reflections that cause Inter-Symbol Interference (ISI).
  3. DFE Equalization A Feedforward Filter (FFF) suppresses precursor ISI, while a Feedback Filter (FBF) subtracts post-cursor ISI using previous symbol decisions.

2 The DFE Equations

// 1. Equalizer Output

y[n] = Σ(w_f[k] * x[n-k]) - Σ(w_b[k] * d[n-k])

(Feedforward Output - Feedback Correction)

// 2. Error Calculation

e[n] = d_known[n] - y[n]

// 3. LMS Weight Update

w_f[k] = w_f[k] + μ * e[n] * x*[n-k]

w_b[k] = w_b[k] - μ * e[n] * d*[n-k-1]

Where μ is the step size, x* is the conjugate of the received signal, and d are previous decisions.

Also read about

[2] Adaptive Equalizer to mitigate Channel Distortion (in MATLAB)

[3] Roll of an Equalizer in Channel Estimation


People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

How to use MATLAB Simulink

Introduction to MATLAB Simulink MATLAB Simulink is a popular add-on of MATLAB. Here, you can use different blocks like modulator, demodulator, AWGN channel, etc. And you can do experiments on your own. Steps to Get Started 1. Go to the 'Simulink' tab at the top navbar of MATLAB. If not found, click on the add-on tab, search 'Simulink,' and then click on it to add. 2. Once you installed the simulation, click the 'new' tap at the top left corner. 3. Then, search the required blocks in the 'Simulink library.' Then, drag it to the editor space. 4. You can double-click on the blocks to see the input parameters. 5. Then, connect the blocks by dragging a line from one block's output terminal to another block's input. 6. If the connection is complete, click the 'run' tab in the middle of the top navbar. 7. After clicking on the run ...

Theoretical BER vs SNR for binary ASK, FSK, and PSK with MATLAB Code + Simulator

šŸ“˜ Overview & Theory 🧮 MATLAB Codes šŸ“š Further Reading Bit Error Rate (BER) Equations In ASK, noise directly affects the signal amplitude, making it the most vulnerable since the data is carried in amplitude changes. In FSK, data is represented by frequency variations, and because noise typically impacts amplitude more than frequency, FSK is more robust than ASK. In PSK, data is encoded in the signal phase, and BPSK specifically uses 180-degree phase shifts, creating the greatest separation between signal points and therefore achieving the lowest bit error rate (BER) for the same power level. BER formulas for ASK, FSK, and PSK modulation schemes. ASK BER = 0.5 × erfc(0.5 × √SNR) FSK BER = 0.5 × erfc(√(SNR / 2)) PSK BER = 0.5 × erfc(√SNR) erfc / Q-func...

OFDM Waveform with MATLAB Code (with Simulator)

  In OFDM (Orthogonal Frequency Division Multiplexing) , we transmit multiple orthogonal subcarriers simultaneously. Since the subcarriers are orthogonal , they do not interfere with each other, which is one of the main advantages of OFDM. Practically, OFDM converts a wideband signal into multiple narrowband orthogonal subcarriers. For typical wireless communication, if the signal bandwidth (or symbol duration) exceeds the coherence bandwidth of the channel, the signal experiences frequency-selective fading . Fading distorts the signal, making it difficult to recover the original information. By using OFDM, we transmit the same wideband signal across multiple orthogonal narrowband subcarriers, reducing the effect of fading. For example, if we want to transmit a signal of bandwidth 1024 kHz , we can divide it into N = 8 subcarriers . Each subcarrier is then spaced by: Ī”f = Total Bandwidth N = 1024 8 kHz...

MATLAB Code for Constellation Diagram of QAM configurations such as 4, 8, 16, 32, 64, 128, and 256-QAM

šŸ“˜ Overview of QAM 🧮 4-QAM MATLAB 🧮 16-QAM MATLAB šŸš€ Online Simulator šŸ“‚ Other Topics on Constellation Diagrams... ▼ 🧮 MATLAB Code for 4-QAM 🧮 MATLAB Code for 16-QAM 🧮 MATLAB Code for m-ary QAM 🧮 Simulator for m-ary PSK 🧮 Simulator for m-ary QAM 🧮 Overview of Energy per Bit (Eb / N0) 🧮 Simulator for ASK, FSK, and PSK Overview of QAM One of the best-performing modulation techniques is QAM [↗] . Here, we modulate the symbols by varying the carrier signal's amplitude and phase in response to the variation in the message signal (or voltage variation). So, we may say that QAM is a combination of phase and amplitude modulation. Additionally, it performs better than ASK or PSK [↗] . In fact, any constellation for any type of modulatio...

Theoretical vs. simulated BER vs. SNR for ASK, FSK, and PSK (MATLAB Code + Simulator)

šŸ“˜ Overview 🧮 Simulator šŸ’» Theoretical Code šŸ“Š Simulated Code šŸ“š Resources Overview BER vs. SNR denotes how many bits in error are received for a given signal-to-noise ratio, typically measured in dB. Common noise types in wireless systems: šŸš€ 1. Additive White Gaussian Noise (AWGN) 🌊 2. Rayleigh Fading AWGN adds random noise; Rayleigh fading attenuates the signal variably. A good SNR helps reduce these effects. Bit Error Rate (BER) Equations BER formulas for ASK, FSK, and PSK modulation schemes. ASK BER = 0.5 × erfc(0.5 × √SNR) FSK BER = 0.5 × erfc(√(SNR / 2)) PSK BER = 0.5 × erfc(√SNR) erfc / Q-function (Click here) Live BER S...

FastAPI Static Files – Overview

FastAPI Static Files Often, a web application needs to include resources that do not change, even when dynamic data is rendered. These resources are called static assets . Examples of static files include: Images ( .png , .jpg ) JavaScript files ( .js ) Stylesheets ( .css ) Installing Required Library To handle static files in FastAPI, you need the aiofiles library. pip install aiofiles Mounting Static Files FastAPI uses the StaticFiles class to serve static content. You mount a folder (usually named static ) so that all files inside it can be accessed via a URL. from fastapi import FastAPI from fastapi.staticfiles import StaticFiles app = FastAPI() app.mount("/static", StaticFiles(directory="static"), name="static") Example 1: Using an Image Place an image file (for example, fa-logo.png ) inside the static folder. main.py from fastapi import FastAPI, Request from fastapi.responses import HTMLRespon...

Online Simulator for ASK, FSK, and PSK

Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Interactive Modulation Simulators Visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. šŸ“” ASK Simulator šŸ“¶ FSK Simulator šŸŽš️ BPSK Simulator šŸ“š More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics Simulator for Binary ASK Modulation Digital Message Bits Carrier Freq (Hz) Sampl...

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