Skip to main content

How Windowing Affects Your Periodogram


The windowed periodogram is a widely used technique for estimating the Power Spectral Density (PSD) of a signal. It enhances the classical periodogram by mitigating spectral leakage through the application of a windowing function. This technique is essential in signal processing for accurate frequency-domain analysis.

 

Power Spectral Density (PSD)

The PSD characterizes how the power of a signal is distributed across different frequency components. For a discrete-time signal, the PSD is defined as the Fourier Transform of the signal’s autocorrelation function:

Sx(f) = FT{Rx(τ)}

Here, Rx(τ)}is the autocorrelation function.

FT : Fourier Transform

 

Classical Periodogram

The periodogram is a non-parametric PSD estimation method based on the Discrete Fourier Transform (DFT):

Px(f) = \(\frac{1}{N}\) X(f)2

Here:

  • X(f): DFT of the signal x(n)

  • N: Signal length

However, the classical periodogram suffers from spectral leakage due to abrupt truncation of the signal.

 

Windowing to Mitigate Spectral Leakage

Spectral leakage can be minimized by applying a window function to the signal before computing the DFT. The resulting PSD estimate is called the windowed periodogram:

Pw(f) = \(\frac{1}{NW}\) Xw(f)2

Here:

  • w(n): Window function

  • W: Window normalization factor

Common Window Functions

  • Rectangular Window: Equivalent to the classical periodogram.

w[n]=1, 0≤n≤N−1

w[n]=0, otherwise

Where, N is the window length

  • Hamming Window: Reduces sidelobe amplitudes, improving frequency resolution.

w[n]=0.5(1−cos(\(\frac{\ 2\pi n}{N - 1}\ \))), 0≤n≤N−1

Where, N is the window length

  • Hanning Window: Similar to Hamming but with less sidelobe attenuation.

w[n]=0.54 – 0.46cos(\(\frac{\ 2\pi n}{N - 1}\ \)), 0≤n≤N−1

Where, N is the window length

  • Blackman Window: Offers even greater sidelobe suppression but at the cost of wider main lobes.

w[n]=0.42 – 0.5(cos(\(\frac{\ 2\pi n}{N - 1}\ \)) + 0.08(cos(\(\frac{\ 4\pi n}{N - 1}\ \)), 0≤n≤N−1

Where, N is the window length

 

Implementation Steps

  1. Segment the Signal: Divide the signal into overlapping or non-overlapping segments of length N.

  2. Apply a Window Function: Multiply each segment by a window function w(n).

  3. Compute the DFT: Calculate the DFT of the windowed segments.

  4. Average the Periodograms: For overlapping segments, average the periodograms to reduce variance.

     

Properties of the Windowed Periodogram

  • Bias: Windowing introduces bias in the PSD estimate as the window modifies the signal spectrum.

  • Variance: Averaging periodograms (Welch method) reduces variance but decreases frequency resolution.

  • Trade-Off: The choice of window affects the trade-off between spectral resolution and leakage suppression.

     

    MATLAB Code

    clc;
    clear;
    close all;

    fs = 48000;
    t = 0:1/fs:0.02;
    f_ping = 12000;

    % Base sine wave
    sine_wave = sin(2*pi*f_ping*t)';

    % Apply windows
    w_rect = ones(size(sine_wave));
    w_hann = hann(length(sine_wave));
    w_hamming = hamming(length(sine_wave));
    w_blackman = blackman(length(sine_wave));

    % Windowed signals
    s_rect = sine_wave .* w_rect;
    s_hann = sine_wave .* w_hann;
    s_hamming = sine_wave .* w_hamming;
    s_blackman = sine_wave .* w_blackman;

    % FFT
    Nfft = 4096;
    f = fs*(0:Nfft/2-1)/Nfft;

    % Function to compute and normalize spectrum
    get_norm_fft = @(sig) abs(fft(sig, Nfft))/max(abs(fft(sig, Nfft)));

    S_rect = get_norm_fft(s_rect);
    S_hann = get_norm_fft(s_hann);
    S_hamming = get_norm_fft(s_hamming);
    S_blackman = get_norm_fft(s_blackman);

    % Mainlobe power (±2 bins around peak)
    mainlobe_bins = 2;

    % Function to compute power ratio
    compute_power_ratio = @(S) ...
    deal( ...
    sum(S.^2), ... % Total power
    max(1, find(S == max(S), 1)), ... % Peak bin
    @(peak_bin) sum(S(max(1,peak_bin-mainlobe_bins):min(Nfft,peak_bin+mainlobe_bins)).^2), ...
    @(total, main) 10*log10((total-main)/main) ... % dB sidelobe/mainlobe ratio
    );

    % Calculate ratios
    [total_r, peak_r, get_main_r, get_slr_r] = compute_power_ratio(S_rect);
    main_r = get_main_r(peak_r); slr_r = get_slr_r(total_r, main_r);

    [total_h, peak_h, get_main_h, get_slr_h] = compute_power_ratio(S_hann);
    main_h = get_main_h(peak_h); slr_h = get_slr_h(total_h, main_h);

    [total_ham, peak_ham, get_main_ham, get_slr_ham] = compute_power_ratio(S_hamming);
    main_ham = get_main_ham(peak_ham); slr_ham = get_slr_ham(total_ham, main_ham);

    [total_b, peak_b, get_main_b, get_slr_b] = compute_power_ratio(S_blackman);
    main_b = get_main_b(peak_b); slr_b = get_slr_b(total_b, main_b);

    % Display Results
    fprintf('Window | Mainlobe Power | Sidelobe Power | Sidelobe/Main (dB)\n');
    fprintf('------------|----------------|----------------|--------------------\n');
    fprintf('Rectangular | %14.4f | %14.4f | %18.2f\n', main_r, total_r - main_r, slr_r);
    fprintf('Hann | %14.4f | %14.4f | %18.2f\n', main_h, total_h - main_h, slr_h);
    fprintf('Hamming | %14.4f | %14.4f | %18.2f\n', main_ham, total_ham - main_ham, slr_ham);
    fprintf('Blackman | %14.4f | %14.4f | %18.2f\n', main_b, total_b - main_b, slr_b);

    % Plot
    figure;
    plot(f, 20*log10(S_rect(1:Nfft/2)), 'k'); hold on;
    plot(f, 20*log10(S_hann(1:Nfft/2)), 'r');
    plot(f, 20*log10(S_hamming(1:Nfft/2)), 'g');
    plot(f, 20*log10(S_blackman(1:Nfft/2)), 'b');
    legend('Rectangular','Hann','Hamming','Blackman');
    xlim([f_ping-3000 f_ping+3000]); ylim([-100 5]);
    xlabel('Frequency (Hz)'); ylabel('Magnitude (dB)');
    title('Windowing Effects on Spectrum');
    grid on;

    Output 

    Window      | Mainlobe Power | Sidelobe Power | Sidelobe/Main (dB)
    ------------|----------------|----------------|--------------------
    Rectangular |         3.5771 |         4.9562 |               1.42
    Hann        |         4.3630 |         8.4370 |               2.86
    Hamming     |         4.2367 |         7.3928 |               2.42
    Blackman    |         4.4940 |        10.2410 |               3.58

     

     








Applications

  • Signal Processing: Analyzing frequency content of time-varying signals.

  • Communications: Evaluating spectrum occupancy in wireless systems.

  • Bioinformatics: Investigating periodicities in biological signals (e.g., EEG, ECG).

  • Seismology: Characterizing seismic wave frequencies.

     

    Further Reading

    1. Periodogram in MATLAB

Try Interactive Online Simulator to see the Effect



Contact Us

Name

Email *

Message *

Popular Posts

UGC NET Electronic Science Previous Year Question Papers with Solutions

Download Papers and Solutions Exam Pattern Preparation Tips FAQs More Home / Engineering & Other Exams / UGC NET 2026 PYQ 📊 Exam Highlights: Electronic Science (88) Feature Details Junior Research Fellowship (JRF) ₹37,000 + HRA per month Eligibility M.Sc/M.Tech in Electronics (55%) Validity of Certificate JRF (3 Years) | Lectureship (Lifetime) 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading 📂 View All Question Papers June 2026 - Question Paper Download PDF June 202...

GMSK BER vs SNR (with Simulation)

  GMSK Performance: Why the BER vs. SNR Curve Matters If you’ve ever wondered why GMSK (Gaussian Minimum Shift Keying) became the backbone of the global GSM revolution, the answer lies in its unique balance of spectral efficiency and power performance. But there is no free lunch in engineering. To get that sleek, narrow spectrum, you have to pay a price in Bit Error Rate (BER) . In this guide, we break down the theoretical BER vs. SNR performance of GMSK, the "magic" of the BT product, and how to optimize your link budget for real-world conditions. What is GMSK and Why Should You Care? GMSK is a derivative of MSK (Minimum Shift Keying) that uses a Gaussian pre-modulation filter. This filter "smooths" the phase transitions, significantly reducing sideband power. The result? A constant envelope signal that allows you to use high-efficiency Class-C amplifiers without distorting the signal. This is the secr...

The output voltage V0 (in Volt) for the network given in the Figure is ___

  Find the Output Voltage V o Solve the given circuit using Kirchhoff's Current Law (KCL), Ohm's law, and the supernode method. 1. Given Circuit Parameters Current source 1 mA Resistors 1 kΩ Each resistor Voltage source 6 V Required V o 2. Understand the Circuit The circuit contains a 1 mA current source, four 1 kΩ resistors, and a 6 V source connected between the two midpoint nodes. The output voltage is measured between the top and bottom rails. Reference node Take the bottom rail as ground: 0 V . Let the top rail voltage be V T , and...

What is a Supernode?

  Circuit Analysis What Is a Supernode? A supernode is formed when an ideal voltage source connects two non-reference nodes. It allows us to apply Kirchhoff's Current Law (KCL) to the combined circuit boundary. 1. Understanding a Supernode In nodal analysis, a voltage source between two unknown-voltage nodes makes the current through that source difficult to express directly using Ohm's law. We combine the two nodes and the voltage source into one extended region called a supernode. Key idea Apply KCL around the outer boundary of the supernode, then use the voltage source to write an additional voltage equation. 2. Supernode Circuit Diagram The voltage source connects nodes V L an...

A binary ripple counter is designed to count (0)₁₀ to (64)₁₀. Which of the following is/are the number of flip-flops required ...

  Q. A binary ripple counter is designed to count  (0)₁₀ to (64)₁₀ . Which of the following is/are the number of flip-flops required to design the counter?   (A) 6 (B) 7 (C) 4 (D) 5 Solution A binary ripple counter must count from (0)₁₀ to (64)₁₀ , including both endpoints. Step 1: Calculate the total number of states Since both 0 and 64 are included, add 1 to the difference: N = Last value − First value + 1 N = 64 − 0 + 1 = 65 states The counter visits every integer from 0 through 64: 0, 1, 2, 3, ..., 63, 64 There are 65 distinct states in total. Step 2: Calculate the number of flip-flops Each flip-flop stores one bit. With n flip-flops, the counter can represent 2ⁿ distinct states. 2⁶ = 64 states (not enough) 2⁷ = 128 states (eno...

The cutoff frequency (in GHz) for the dominant TE10 mode of an air-filled rectangular waveguide of ...

  Q. The cutoff frequency (in GHz) for the dominant TE10 mode of an air-filled rectangular waveguide of inner dimension 0.28 inch×0.14 inch is __. (rounded off to two decimal places). Given Information Waveguide dimensions = 0.28 inch × 0.14 inch Wider dimension (a) = 0.28 inch Smaller dimension (b) = 0.14 inch Medium = Air Dominant mode = TE 10 Speed of light (c) = 3 × 10 8 m/s Step 1: Cutoff Frequency Formula The cutoff frequency of a rectangular waveguide is: f c = (c / 2) √[(m/a) 2 + (n/b) 2 ] For the dominant TE 10 mode: m = 1, n = 0 f c = c / 2a Step 2: Convert Inch into Meter We know that 1 inch = 0.0254 meter. a = 0.28 × 0.0254 a = 0.007112 m ...

SRAM, DRAM, EPROM, MRAM, and DDRAM Explained

Computer Fundamentals Types of Memory and Their Technologies Understand the fundamental relationship between different types of computer memory and the technologies used to implement them. Fundamental Matching Memory type, technology, and key characteristics Memory Type Technology Key Characteristic Cache Memory SRAM Very fast; stores frequently accessed data Main Memory DRAM Holds programs and data currently in use Au...

Parametric Down-Conversion of Photons

  Nonlinear Optics One incoming photon is converted into two lower-energy photons, typically in a nonlinear optical medium. Energy is conserved: E in = E 1 + E 2 E in ​ = E 1 ​ + E 2 ​ . Parametric Down-Conversion A nonlinear optical process in which one pump photon is converted into two lower-energy photons, known as the signal and idler photons. 1 Energy Conservation The energy of the pump photon equals the sum of the energies of the signal and idler photons. \[ \boxed{\hbar\omega_p=\hbar\omega_s+\hbar\omega_i} \] \[ \boxed{\omega_p=\omega_s+\omega_i} \] ωₚ Pump angular frequency ...