Let's assume we have a random process consisting of three sinusoids in white noise: $$x[n] = 3 \cdot \sin(ω_1 \cdot n + ϕ_1) + 5 \cdot \cos(ω_2 \cdot n + ϕ_2) + 2 \cdot \sin(ω_3 \cdot n + ϕ_3) + v[n]$$ where $ϕ_1$, $ϕ_2$, $ϕ_3$ are uncorrelated uniformly distributed random variables in $[0,2\pi]$

I want to estimate the power spectral density of $x[n]$. For that purpose I apply two different methods:

  1. Periodiagram of $x[n]$
  2. Welch method (Averaged Modified Periodogram) using Hamming window

I generated the following code and ran in Matlab:

N = 1024; 
w1 = 0.3 * pi;
w2 = 0.6 * pi;
w3 = 0.7 * pi;
phi1 = unifrnd(0, 2*pi);
phi2 = unifrnd(0, 2*pi);
phi3 = unifrnd(0, 2*pi);
u = randn(1, N);
n = 0:N-1;
x = 3 * sin(w1*n + phi1) + 5*cos(w2*n + phi2) + 2*sin(w3*n + phi3) + u;

fig = figure;
title('signal x[n]');           
ylabel ('Magnitude');  


[pw,f]= pwelch(x, N/8, N/16);

Which is the difference in these two methods about the resolution and the variance of the power spectrum ?


1 Answer 1


The standard Periodogram uses all the data and computes its power spectrum spectrum estimatation at once; therefore it provides more spectral resolution but less estimation reliability (larger estimation variance).

The Welch's modification to the standard Periodogram is the concept of dividing the signal into shorter blocks and averaging the computed per block Periodograms, and therefore it has less spectral resolution (due to shorter blocks) but provides smaller estimation variance, due to averaging.

  • $\begingroup$ Thanks for the response! I would like to ask something more. Whis is the correct way to produce the standard periodogram and the Welch's modification to the standard Periodogram in Matlab code? In my example I used the commands: [p,f]=periodogram(x); plot(f,p); However, I get a different result when I just write the command periodogram(x) .. Which one should I keep as an answer? Same for the Welch diagram. $\endgroup$
    – MJ13
    Jun 2, 2019 at 8:24
  • $\begingroup$ Honestly I get the same results from [p,f] = periodogram(x) and p = periodogram(x) ... Hence I don't know why you get different results. $\endgroup$
    – Fat32
    Jun 2, 2019 at 20:45
  • $\begingroup$ Actually the result is different if you change both of the instructions: [p,f]=periodogram(x); plot(f,p); with the instruction periodogram(x). Which is the correct one? $\endgroup$
    – MJ13
    Jun 3, 2019 at 17:01
  • $\begingroup$ In addition, why does Welch method reduces more noise than standard Periodogram? $\endgroup$
    – MJ13
    Jun 5, 2019 at 11:34
  • $\begingroup$ @MJ13 because Welch is taking an average and this will reduce noise... $\endgroup$
    – Fat32
    Jun 5, 2019 at 11:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.