Skip to main content

Doppler Delay (with MATLAB + Simulator)


Doppler Shift Formula

When either the transmitter or the receiver is in motion, or when both are in motion, Doppler Shift is an essential parameter in wireless communication. We notice variations in reception frequencies in vehicles, trains, or other similar environments. In plain language, the received signal frequency increases as the receiver moves toward the transmitter and drops as the receiver moves in the opposite direction. This phenomenon is called the Doppler shift or Doppler spread.

Doppler Shift Formula

The relationship between the transmitted and received frequency is defined as:

fR = fT ± fD
  • fR = Receiving frequency
  • fT = Transmitted frequency
  • fD = Doppler frequency (shift)

The Doppler frequency is determined by the speed of the vehicle and the angle of the arriving wave:

Doppler shift (LOS path): ν1 = fc * v / c
Doppler shift (Reflected path): ν2 = (fc * v / c) * cos(θ)

Doppler spread: BD = | ν2 − ν1 |

Where c is the speed of light and v is the speed of the vehicle. Alternatively, expressed via wavelength (λ):

BD = | (v / λ) * (cos(θ) - 1) |

Movement Scenarios:

1. Towards BS: When the MS reaches towards the Base Station, θ = 0°, so cos(0°) = 1. The frequency increases:
fR = fT + (v / λ)

2. Away from BS: When the MS moves away, θ = 180°, so cos(180°) = -1. The frequency decreases:
fR = fT - (v / λ)

Doppler Shift vs Doppler Spread

1. Doppler Shift

Represents a single frequency change due to relative motion between a source and an observer. For example, the frequency offset of a radar signal reflecting off a single moving car.

2. Doppler Spread

The range of frequency shifts occurring in a multipath environment. It measures the spectral broadening and affects the channel's coherence time.

MATLAB Implementation

% Doppler Shift calculation script
clc; clear; close all;

c = 3e8;      % Speed of light (m/s)
f0 = 2.4e9;   % Center frequency (2.4 GHz)

% Velocities of different objects
velocities = [-30, -10, 0, 10, 20]; 

% Calculate Shifts and Spread
doppler_shifts = (velocities / c) * f0;
doppler_spread = max(doppler_shifts) - min(doppler_shifts);

fprintf('Doppler Shifts (Hz):\n');
disp(doppler_shifts);
fprintf('Doppler Spread (Hz): %f\n', doppler_spread);

Expected Output:

Relative velocities (in m/s): -30 -10 0 10 20 Doppler Shifts (Hz): -240 -80 0 80 160 Doppler Spread (Hz): 400.000000

How Doppler Spread Affects Communication

Doppler spread causes fading in wireless communication. When received power fluctuates over time, it results in fast or slow fading. High Doppler spread leads to a short coherence time, meaning the channel changes very rapidly.

For practical systems, the received signal r(t) is modeled as:

r(t) = s(t - τ) * h(τ, t) * exp(j * 2 * π * fD * (t - τ))
  • s(t - Ï„): Transmitted signal with delay Ï„.
  • h(Ï„, t): Time-varying impulse response.
  • exp(j...): Complex phase shift due to Doppler frequency fD.

Try Interactive Online Simulators



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

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

Design of CMOS XOR/XNOR Gates

Design of CMOS XOR/XNOR Gates The semiconductor industry has experienced rapid integration of multimedia applications into mobile electronics, leading to very high integration density in CMOS VLSI. As operating frequencies increase, power consumption, speed, silicon area, and reliability become critical considerations. The XOR-XNOR circuits are fundamental building blocks in arithmetic circuits (Full Adders, Multipliers), compressors, comparators, parity checkers, code converters, error-detecting/correcting codes, and phase detectors. Their performance directly impacts the complex circuits they are used in. Design goals include full output voltage swing, low power consumption, reduced transistor count, minimal delay, and simultaneous non-skewed outputs. Static Logic (Static CMOS) Stat...

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

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

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

MATLAB Code for MUSIC

  MATLAB Code clc; clear; close all ; %% Step 1: Define Parameters M = 8; % Number of array sensors d = 0.5; % Sensor spacing (lambda/2) K = 2; % Number of signals N = 200; % Number of snapshots theta = [-20 30]; % True signal angles (degrees) SNR = 10; % Signal-to-noise ratio (dB) fprintf( 'Step 1: Parameters Initialized\n' ); %% Step 2: Generate Signal Sources t = 1:N; s1 = exp(1j*2*pi*0.05*t); s2 = exp(1j*2*pi*0.1*t); S = [s1; s2]; figure; plot(real(S(1,:))) title( 'Signal 1 (Real Part)' ) xlabel( 'Samples' ) ylabel( 'Amplitude' ) figure; plot(real(S(2,:))) title( 'Signal 2 (Real Part)' ) xlabel( 'Samples' ) ylabel( 'Amplitude' ) fprintf( 'Step 2: Source Signals Generated\n' ); %% Step 3: Construct Steering Matrix A = zeros(M,K); for k = 1:K A(:,k) = exp(-1j*2*pi*d*(0:M-1)'*sin(theta(k)*pi/180)); end fprintf( 'Step 3: Steering Matr...