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
Time-Bandwidth Product for a raise 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 for the Filter:
The time duration for the filter is:
Filter Duration = Filter Span × One Symbol Duration
Filter Duration = 2 × 0.01 = 0.02 seconds
Time-Bandwidth Product (TBP):
Now, the time-bandwidth product (TBP) is:
TBP = 0.02 × 62.5 = 1.25
If the filter span is 6:
If the filter span is 6, then the time-bandwidth product will be:
TBP = 0.06 × 62.5 = 3.75
MATLAB Code for Time-Bandwidth product of a Raise Cosine Filter
clc;
clear;
close all;
% Parameters
beta = 0.25; % Roll-off factor (moderate, 0.25 for balance)
span = 2; % Filter span in symbols (moderate duration)
sps = 10; % Samples per symbol (higher ensures smooth waveform)
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); % Filter time duration
bandwidth = (1 + beta) * (symbolRate / 2); % Bandwidth in Hz
TBP = timeDuration * bandwidth; % Time-Bandwidth Product
% Display Results
disp(['Time Duration (s): ', num2str(timeDuration)]);
disp(['Bandwidth (Hz): ', num2str(bandwidth)]);
disp(['Time-Bandwidth Product: ', num2str(TBP)]);
% Simulate Filtered Signal
numSymbols = 100; % Number of symbols to transmit
data = randi([0 1], numSymbols, 1) * 2 - 1; % Random binary data (BPSK)
upsampledData = upsample(data, sps); % Upsample data
txSignal = conv(upsampledData, rcFilter, 'same'); % Filtered signal
% Plot Transmitted Signal
subplot(3,1,3);
plot(txSignal(1:200), 'LineWidth', 1.5); % Plot first few samples
title('Filtered Transmitted Signal');
xlabel('Sample Index');
ylabel('Amplitude');
grid on;
Output
Bandwidth (Hz): 62.5
Time-Bandwidth Product: 1.25
Copy the MATLAB Code above from here
MATLAB Code for the Time-Bandwidth Product of Gaussian Noise
%The code is devloped 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
RMS Time Duration (Delta t): 0.50383
RMS Frequency Bandwidth (Delta f): 0.98786
Time-Bandwidth Product (TBP): 0.49772
Copy the MATLAB Code above from here