Skip to main content

Why is Time-bandwidth Product (TBP) Important?



Time-Bandwidth Product (TBP)

The time-bandwidth product (TBP) is defined as:

TBP = Δf Δt
  • Δ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

MATLAB Script
% 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

Time Duration (s): 0.02
Bandwidth (Hz): 62.5
Time-Bandwidth Product: 1.25

MATLAB: Gaussian Noise TBP

MATLAB Script
% 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 Time Duration (Delta t): 0.50383
RMS Frequency Bandwidth (Delta f): 0.98786
Time-Bandwidth Product (TBP): 0.49772

1. Simulator: Data Pulse (Raised Cosine)

This mimics how a single bit of data is shaped in modern wireless communication.

(Adjusts how "sharp" the filter is)

(How long the pulse lasts)

Calculated TBP: 1.25 Good Efficiency

2. Simulator: Gaussian Pulse (The Perfect Balance)

The Gaussian pulse is special because it achieves the minimum possible TBP. It is the "smoothest" possible signal.

(Widening in time automatically narrows frequency)

Calculated TBP: 0.44 Fundamental Minimum

3. The Math Behind the Simulators

The Time-Bandwidth Product (TBP) is like a "Space-Time" budget for signals. No matter how you design a signal, you cannot make it infinitely small in both time and frequency at once.

  • The Formula: TBP = Δt × Δf
  • The Limit: For any signal, TBP ≥ 0.5 (approx). You can never go below this limit. This is the Heisenberg Uncertainty Principle applied to signals.
  • The Trade-off:
    • If TBP ≈ 0.5 to 1.5: High Spectral Efficiency. Used in 5G, Wi-Fi, and Fiber Optics.
    • If TBP > 10: Spread Spectrum. Used in GPS and Radar to resist interference.

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

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) Theoretical BER ...

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

Simulation of ASK, FSK, and PSK using MATLAB Simulink (with Online Simulator)

📘 Overview 🧮 How to use MATLAB Simulink 🧮 Simulation of ASK using MATLAB Simulink 🧮 Simulation of FSK using MATLAB Simulink 🧮 Simulation of PSK using MATLAB Simulink 🧮 Simulator for ASK, FSK, and PSK 🧮 Digital Signal Processing Simulator 📚 Further Reading ASK, FSK & PSK HomePage MATLAB Simulation Simulation of Amplitude Shift Keying (ASK) using MATLAB Simulink In Simulink, we pick different components/elements from MATLAB Simulink Library. Then we connect the components and perform a particular operation. Result A sine wave source, a pulse generator, a product block, a mux, and a scope are shown in the diagram above. The pulse generator generates the '1' and '0' bit sequences. Sine wave sources produce a specific amplitude and frequency. The scope displays the modulated signal as well as the original bit sequence created by the pulse generator. Mux i...

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

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

OFDM Waveform with MATLAB Code

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

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

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