Skip to main content

What is the Step Size in FFT?

 

In FFT (Fast Fourier Transform), the step size refers to the spacing between consecutive points in the output data after performing the transform. It's often determined by the sampling rate of the signal. The step size is crucial for accurate frequency representation, and smaller step sizes provide finer frequency resolution in the resulting frequency domain representation.


Step Size of a Signal in the Time Domain (in general)

Suppose you have a signal sampled at 1000 Hz (sampling rate) for a duration of 1 second. The step size, or the time difference between consecutive samples, is then given by the inverse of the sampling rate:

Step size = 1 / Sampling rate = 1 / 1000 Hz = 0.001 seconds

 

General Frequency Resolution:

Sampling frequency fs​=1000Hz

Duration T= 1 second

Number of samples N=fs⋅T=1000⋅1=1000

 Δf=1 / T

Δf=1 / 1 second = 1 Hz

 

Frequency Domain Step Size in FFT

Step Size in the Frequency Domain

The step size in the frequency domain refers to the spacing between adjacent frequency bins in the FFT output. It is determined by the signal's sampling rate and the size of the FFT:

Δf = fs / N

Where:

  • Δf: Frequency step size (frequency resolution).
  • fs: Sampling rate (Hz).
  • N: FFT size (number of bins).

Total Bandwidth

The total bandwidth covered by the FFT is determined by the sampling rate and the Nyquist theorem:

Total Bandwidth = fs / 2

Frequencies above the Nyquist frequency (fs/2) cannot be represented due to aliasing.

Frequency Step Size after FFT

Combining the above, the frequency step size (bin width) in the FFT output is:

Δf = fs / (2N)

 

Suppose:

  • Sampling frequency: Hz

  • FFT size:

  • Then:

    Δf=10005121.953 Hz

So, your FFT bins are spaced about 1.953 Hz apart.


Key Observations:

  • Smaller Δf results in higher frequency resolution.
  • To achieve smaller Δf, increase the FFT size (N) or the signal's duration (T).
  • Total bandwidth is inversely proportional to the number of bins (N).

Time Domain Step Size in FFT

 Time step (seconds) = Hop size / fs (samples)
 
Suppose:

    Sampling frequency fs ​= 1000 Hz

    FFT window length = 512 samples

    Hop size = 256 samples (i.e., 50% overlap)

Then:

    Each FFT is calculated on a 512-sample window

    The window shifts forward by 256 samples

    Time step size = 256 / 1000​ = 0.256 seconds

So, a new FFT is computed every 0.256 seconds of the signal.
 

MATLAB Code

% The code is developed by SalimWireless.Com


clc;
clear all;
close all;


% Parameters
fs = 1000; % Sampling frequency (Hz)
T = 1; % Duration (seconds)
N1 = 256; % FFT size for coarse resolution
N2 = 1024; % FFT size for fine resolution
t = 0:1/fs:T-1/fs; % Time vector


% Signal with multiple frequency components
f1 = 50; % Frequency 1 (Hz)
f2 = 60; % Frequency 2 (Hz)
f3 = 200; % Frequency 3 (Hz)
signal = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);


% FFT with coarse resolution (N1)
fft_coarse = fft(signal, N1);
frequencies_coarse = (0:N1-1)*(fs/N1); % Frequency vector
magnitude_coarse = abs(fft_coarse);


% FFT with fine resolution (N2)
fft_fine = fft(signal, N2);
frequencies_fine = (0:N2-1)*(fs/N2); % Frequency vector
magnitude_fine = abs(fft_fine);


% Plotting
figure;


% Coarse Resolution Plot
subplot(2, 1, 1);
plot(frequencies_coarse(1:N1/2), magnitude_coarse(1:N1/2));
title('FFT with Coarse Resolution (N = 256) where step size is 3.906');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
grid on;


% Fine Resolution Plot
subplot(2, 1, 2);
plot(frequencies_fine(1:N2/2), magnitude_fine(1:N2/2));
title('FFT with Fine Resolution (N = 1024) where step size is 0.977');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
grid on;

Output






Copy the MATLAB Code above from here

Further Reading

People are good at skipping over material they already know!

View Related Topics to







Admin & Author: Salim

s

  Website: www.salimwireless.com
  Interests: Signal Processing, Telecommunication, 5G Technology, Present & Future Wireless Technologies, Digital Signal Processing, Computer Networks, Millimeter Wave Band Channel, Web Development
  Seeking an opportunity in the Teaching or Electronics & Telecommunication domains.
  Possess M.Tech in Electronic Communication Systems.


Contact Us

Name

Email *

Message *

Popular Posts

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...

📘 Overview of BER and SNR 🧮 Simulator for m-ary QAM and m-ary PSK 🧮 MATLAB Codes 📚 Further Reading Modulation Constellation Diagrams BER vs. SNR BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ... What is Bit Error Rate (BER)? The abbreviation BER stands for bit error rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. It is defined as,  In mathematics, BER = (number of bits received in error / total number of transmitted bits)  On the other hand, SNR refers to the signal-to-noise power ratio. For ease of calculation, we commonly convert it to dB or decibels.   What is Signal the signal-to-noise ratio (SNR)? SNR = signal power/noise power (SNR is a ratio of signal power to noise power) SNR (in dB) = 10*log(signal power / noise power) [base 10] For instance,...

Constellation Diagrams of ASK, PSK, and FSK

📘 Overview 🧮 Simulator for constellation diagrams of ASK, FSK, and PSK 🧮 Theory 🧮 MATLAB Codes 📚 Further Reading BASK (Binary ASK) Modulation: Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1.    BFSK (Binary FSK) Modulation: Transmits one of two signals: +√Eb​ ( On the y-axis, the phase shift of 90 degrees with respect to the x-axis, which is also termed phase offset ) or √Eb (on x-axis), where Eb​ is the energy per bit. These signals represent binary 0 and 1.  BPSK (Binary PSK) Modulation: Transmits one of two signals: +√Eb​ or -√Eb (they differ by 180 degree phase shift), where Eb​ is the energy per bit. These signals represent binary 0 and 1.    Simulator for BASK, BPSK, and BFSK Constellation Diagrams SNR (dB): 15 Add A...

ASK, FSK, and PSK

📘 Overview 📘 Amplitude Shift Keying (ASK) 📘 Frequency Shift Keying (FSK) 📘 Phase Shift Keying (PSK) 📘 Which of the modulation techniques—ASK, FSK, or PSK—can achieve higher bit rates? 🧮 MATLAB Codes 📘 Simulator for binary ASK, FSK, and PSK Modulation 📚 Further Reading   ASK or OFF ON Keying Ask is a simple (less complex)  Digital Modulation Scheme  where we vary the  modulation  signal's amplitude or voltage by the message signal's amplitude or voltage. We select two levels (two different voltage levels) for transmitting modulated message signals for the exam. And for example, we mapped the signal as two-level  "+5 Volt"  (which is the upper level) and another level,  "0 Volt,"  which is considered as the lower level. Whenever we need to transmit binary bit  "1,"  then the transmitter transmits a signal of  "+5 Volts,"  and when we need to send bit  "0,"  t...

RMS Delay Spread, Excess Delay Spread and Multi-path ...

📘 Overview 🧮 Multipath Components or MPCs 🧮 Excess Delay spread 🧮 Power delay Profile 🧮 RMS Delay Spread 🧮 Simulator for Calculating RMS Delay Spread 🧮 Why is there significant multipath in the case of very high frequencies? 🧮 Why RMS Delay Spread is essential for wireless communication? 🧮 Why the Power Delay Profile is essential? 🧮 MATLAB Codes 📚 Further Reading Signal Processing RMS Delay Spread, Excess Delay Spread, and Multipath... RMS Delay Spread, Excess Delay Spread, and Multipath (MPCs) The fundamental distinction between wireless and wired connections is that in wireless connections signal reaches at receiver thru multipath signal propagation rather than directed transmission like co-axial cable. Wireless Communication has no set communication path between the transmitter and the receiver. The line of sight path, also known as the LOS path, is the shortest and most direc...

Comparisons among ASK, PSK, and FSK | And the definitions of each

📘 Overview 🧮 Simulator 🧮 Noise Sensitivity, Bandwidth, Complexity, etc. 🧮 MATLAB Codes 🧮 Some Questions and Answers 📚 Further Reading Modulation ASK, FSK & PSK Constellation MATLAB Simulink MATLAB Code Comparisons among ASK, PSK, and FSK    Comparisons among ASK, PSK, and FSK   Simulator for Calculating Bandwidth of ASK, FSK, and PSK The baud rate represents the number of symbols transmitted per second. Both baud rate and bit rate are same for binary ASK, FSK, and PSK. Select Modulation Type: ASK FSK PSK Baud Rate or Bit Rate (bps): Frequency Deviation (Hz) for FSK: Calculate Bandwidth Comparison among ASK,  FSK, and PSK Performance Comparison: 1. Noise Sensitivity:    - ASK is the most sensitive to noise due to its r...

MATLAB Code for Pulse Amplitude Modulation (PAM) and Demodulation

📘 Overview & Theory 🧮 MATLAB Code 1 🧮 MATLAB Code 2 🧮 MATLAB Code for Pulse Amplitude Modulation and Demodulation of Digital data 🧮 Other Pulse Modulation Techniques (e.g., PWM, PPM, DM, and PCM) 📚 Further Reading   Pulse Amplitude Modulation (PAM) & Demodulation MATLAB Script clc; clear all; close all; fm= 10; % frequency of the message signal fc= 100; % frequency of the carrier signal fs=1000*fm; % (=100KHz) sampling frequency (where 1000 is the upsampling factor) t=0:1/fs:1; % sampling rate of (1/fs = 100 kHz) m=1*cos(2*pi*fm*t); % Message signal with period 2*pi*fm (sinusoidal wave signal) c=0.5*square(2*pi*fc*t)+0.5; % square wave with period 2*pi*fc s=m.*c; % modulated signal (multiplication of element by element) subplot(4,1,1); plot(t,m); title('Message signal'); xlabel ('Time'); ylabel('Amplitude'); subplot(4,1,2); plot(t,c); title('Carrier signal'); xlabel('Time'); ylabel('Amplitu...

UGC NET Electronic Science Previous Year Question Papers

Home / Engineering & Other Exams / UGC NET 2022: Previous Year Question Papers ...   NET | GATE | ESE | UGC-NET (Electronics Science, Subject code: 88 ) UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [December 2024] UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [June 2024] UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [December 2023] UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [June 2023] UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [December 2022]  UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [June 2022]   UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [December 2021] UGC Net Electronic Science Questions With Answer Key Download Pdf [June 2020] UGC Net Electronic Science Questions With Answer Key Download Pdf [December 2019] UGC Net Electronic Science Questions With Answer...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...

📘 Overview 🧮 Simulator for m-ary QAM and m-ary PSK 🧮 MATLAB Code for BPSK, M-ary PSK, and M-ary QAM Together 🧮 MATLAB Code for M-ary QAM 🧮 MATLAB Code for M-ary PSK 📚 Further Reading   MATLAB Script for  BER vs. SNR for M-QAM, M-PSK, QPSk, BPSK %Written by Salim Wireless %Visit www.salimwireless.com for study materials on wireless communication %or, if you want to learn how to code in MATLAB clc; clear; close all; % Parameters num_symbols = 1e5; % Number of symbols snr_db = -20:2:20; % Range of SNR values in dB % PSK and QAM orders to be tested psk_orders = [2, 4, 8, 16, 32]; qam_orders = [4, 16, 64, 256]; % Initialize BER arrays ber_psk_results = zeros(length(psk_orders), length(snr_db)); ber_qam_results = zeros(length(qam_orders), length(snr_db)); % BER calculation for each PSK order and SNR value for i = 1:length(psk_orders) psk_order = psk_orders(i); for j = 1:length(snr_db) % Generate random symbols ...