RMS Delay Spread [↗]
Delay Spread Calculator
The above calculator
- Converts Power to Linear Scale: It correctly converts the power values from decibels (dB) to a linear scale.
- Calculates Mean Delay: It accurately computes the mean excess delay, which is the first moment of the power delay profile.
- Calculates RMS Delay Spread: It correctly calculates the RMS delay spread, defined as the square root of the second central moment of the power delay profile.
MATLAB Code
clc;
clear all;
close all;
% Define a practical channel based on a Tapped Delay Line (TDL) model
% This replaces the unrealistic 'randn' signal.
delays_ns = [0, 50, 120]; % Delays of each path in nanoseconds
powers_dB = [0, -3.0, -8.0]; % Power of each path in decibels
% Convert powers from dB to linear scale
powers_linear = 10.^(powers_dB / 10);
% --- Correct Calculation of RMS Delay Spread ---
% 1. Calculate the total power (sum of linear powers)
total_power = sum(powers_linear);
% 2. Calculate the Mean Excess Delay (power-weighted average delay)
mean_delay = sum(delays_ns .* powers_linear) / total_power;
% 3. Calculate the RMS Delay Spread (power-weighted standard deviation)
rms_delay_spread = sqrt(sum(((delays_ns - mean_delay).^2) .* powers_linear) / total_power);
% --- Visualization ---
% For a clearer plot, we can create a simple impulse response representation
figure;
stem(delays_ns, powers_linear, 'LineWidth', 1.5);
title('Power Delay Profile of a Practical Channel');
xlabel('Delay (ns)');
ylabel('Linear Power');
grid on;
ax = gca;
ax.XAxis.Limits = [-10, 150]; % Adjust axis for better visibility
% --- Display the Results ---
fprintf('Using the practical TDL model:\n');
fprintf('Mean Excess Delay: %.2f ns\n', mean_delay);
fprintf('RMS Delay Spread: %.2f ns\n', rms_delay_spread);
web('https://www.salimwireless.com/search?q=rms%20delay%20spread', '-browser');
Output
Mean Excess Delay: 26.56 ns
RMS Delay Spread: 37.75 ns