Time-Bandwidth Product (TBP)
The time-bandwidth product (TBP) is defined as:
- Δf (Bandwidth): The frequency bandwidth of the signal, representing the range of frequencies over which the signal is spread.
- Δt (Time duration): The duration for which the signal is significant, i.e., the time interval during which the signal is non-zero.
The TBP is a measure of the "spread" of the signal in both time and frequency domains. A higher TBP means the signal is both spread over a larger time period and occupies a wider frequency range.
To calculate the period of a signal with finite bandwidth, Heisenberg’s uncertainty principle plays a vital role where the time-bandwidth product indicates the processing gain of the signal.
We apply spread spectrum techniques in wireless communication for various reasons, such as interference resilience, security, robustness in multipath, etc. But in spread spectrum techniques, we compromise some bandwidth.
The time-bandwidth product for Gaussian-shaped pulses is 0.44 (approx.).
If the time-bandwidth product of a signal is >> 1, then the signal bandwidth (B) is much greater than what is required for transmitting the data rate (Rb). So, in this case, we are unable to utilize the whole available bandwidth. For this case, spectrum efficiency will be less.
To your knowledge, the product of the variance of time and variance of bandwidth for a Gaussian signal is 0.25, and for a triangular-shaped signal, it is 0.3.
Example: Raised Cosine Filter
Let’s assume we have designed a raised cosine filter with a roll-off factor of 0.25. The symbol rate for transmission is 100 symbols per second, and the number of samples per symbol is 10. Also, assume the filter span is 2, meaning the duration is up to 2 symbol times.
Bandwidth Calculation:
The bandwidth of the raised cosine filter is calculated as:
Bandwidth = (Symbol Rate × (1 + Roll-off Factor)) / 2
Bandwidth = (100 × (1 + 0.25)) / 2 = 62.5 Hz
Time Duration (Filter Span = 2):
Filter Duration = Filter Span × One Symbol Duration
Filter Duration = 2 × 0.01 = 0.02 seconds
Time-Bandwidth Product (TBP):
TBP = 0.02 × 62.5 = 1.25
Time Duration (Filter Span = 6):
If the filter span is 6, then the time-bandwidth product will be:
TBP = 0.06 × 62.5 = 3.75
Conclusion: The raised cosine filter reduces the effect of intersymbol interference (ISI) during signal transmission. Increasing the bandwidth helps mitigate ISI to a greater extent, but it also increases the time-bandwidth product, making the system less bandwidth-efficient.
Ready to Simulate?
Use the professional MATLAB scripts below to visualize the Time-Bandwidth Product in real-time.
View MATLAB Scripts ↓MATLAB: Raised Cosine Filter TBP
% The code is developed by SalimWireless.Com
clc;
clear;
close all;
% Parameters
beta = 0.25; % Roll-off factor
span = 2; % Filter span in symbols
sps = 10; % Samples per symbol
symbolRate = 1e2; % Symbol rate in Hz
% Generate the Raised Cosine Filter
rcFilter = rcosdesign(beta, span, sps, 'sqrt');
% Plot the Impulse Response
t = (-span/2 : 1/sps : span/2) * (1/symbolRate);
figure;
subplot(3,1,1);
plot(t, rcFilter, 'LineWidth', 1.5);
title('Raised Cosine Filter Impulse Response');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
% Analyze Frequency Response
[H, F] = freqz(rcFilter, 1, 1024, sps * symbolRate);
subplot(3,1,2);
plot(F, abs(H), 'LineWidth', 1.5);
title('Raised Cosine Filter Frequency Response');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
grid on;
% Time-Bandwidth Product Calculation
timeDuration = span * (1 / symbolRate);
bandwidth = (1 + beta) * (symbolRate / 2);
TBP = timeDuration * bandwidth;
% Display Results
disp(['Time Duration (s): ', num2str(timeDuration)]);
disp(['Bandwidth (Hz): ', num2str(bandwidth)]);
disp(['Time-Bandwidth Product: ', num2str(TBP)]);
% Simulate Filtered Signal
numSymbols = 100;
data = randi([0 1], numSymbols, 1) * 2 - 1;
upsampledData = upsample(data, sps);
txSignal = conv(upsampledData, rcFilter, 'same');
subplot(3,1,3);
plot(txSignal(1:200), 'LineWidth', 1.5);
title('Filtered Transmitted Signal');
xlabel('Sample Index');
ylabel('Amplitude');
grid on;
Output Results
Bandwidth (Hz): 62.5
Time-Bandwidth Product: 1.25
MATLAB: Gaussian Noise TBP
% The code is developed by SalimWireless.Com clc; clear; close all; % Step 1: Generate Gaussian pulse t = 0:0.01:1; % Time vector sigma = 1; % Standard deviation gaussian_pulse = exp(-t.^2 / (2 * sigma^2)); % Step 2: Calculate RMS time duration power_signal = gaussian_pulse.^2; rms_time = sqrt(sum(t.^2 .* power_signal) / sum(power_signal)); % Step 3: Calculate Frequency Bandwidth Fs = 100; % Sampling frequency N = length(gaussian_pulse); f = (-N/2:N/2-1) * (Fs / N); % Frequency vector G_f = fftshift(fft(gaussian_pulse)); % Fourier transform power_spectrum = abs(G_f).^2; rms_freq = sqrt(sum(f.^2 .* power_spectrum) / sum(power_spectrum)); % Step 4: Compute TBP TBP_rms = rms_time * rms_freq; % Display results disp(['RMS Time Duration (Delta t): ', num2str(rms_time)]); disp(['RMS Frequency Bandwidth (Delta f): ', num2str(rms_freq)]); disp(['Time-Bandwidth Product (TBP): ', num2str(TBP_rms)]);
Output Results
RMS Frequency Bandwidth (Delta f): 0.98786
Time-Bandwidth Product (TBP): 0.49772