## How to determine sampling frequency of wgn?

Hello there,

I’m trying to understand noise analysis and the concept of power spectral density. I’ve found this article:

https://pure.mpg.de/pubman/faces/ViewItemOverviewPage.jsp?itemId=item_152164

Which was really helpful and interesting, but I’ve encountered some problems while trying to put it in practise.

For convenience I wanted to generate white noise (mainly because of its flat spectral density) via wgn funtion and then calculate its PSD. If i understood it correctly, wgn creates discrete samples, which completely lack any relatationship to time.

And here comes my problem – while normalizing the results, equivalent noise bandwidth is dependent on sampling rate and so is PSD:

,

where w are window function values, S are complex results from fft function.

By experimenting with code I came upon sampling rate of 2 samples/s, when mean power of PSD was getting close to 5 dB. Unfortunatelly, I still cannot confidently explain this.

Is there please any way to obtain "realistic" white noise samples in MATLAB? Or do I have to add white noise to (co)sine signal with known sampling? If I’m missing something, please let me know.

Thank you in advance,

Jan

CODE:

% Size parameters

L = pow2(16);

iterations = 100;

% ??? (Guessed value)

fs = 2;

% Frequency resolution

f_res = fs/L;

% Create noise with power of 5 dBW

data = wgn(L,iterations, 5);

% Apply Hann window

h = hann(L);

w = ones(L,iterations) .* h;

data = data .* w;

% Calculate normalizing factor S2

S2 = sum(h.^2);

% Calculate fft

S = fft(data,L,1);

S = S .* conj(S);

% Average power spectrum

for i = 1:L

PSD(i) = mean(S(i,:));

end

% Normalize results

PSD = 2 * PSD / (fs * S2);

% Discard symmectric part

PSD = PSD(1:(L/2+1));

% PSD in dB(W)

PSD = 10*log10(PSD);

% Mean value of PSD

display("Power = " + mean(PSD) + " dB");

% Calculate frequency

f = (0:(L/2)) * f_res;

% Plot data

figure

plot(f,PSD)

xlabel("f [Hz]")

ylabel("PSD [dB/Hz]")Hello there,

I’m trying to understand noise analysis and the concept of power spectral density. I’ve found this article:

https://pure.mpg.de/pubman/faces/ViewItemOverviewPage.jsp?itemId=item_152164

Which was really helpful and interesting, but I’ve encountered some problems while trying to put it in practise.

For convenience I wanted to generate white noise (mainly because of its flat spectral density) via wgn funtion and then calculate its PSD. If i understood it correctly, wgn creates discrete samples, which completely lack any relatationship to time.

And here comes my problem – while normalizing the results, equivalent noise bandwidth is dependent on sampling rate and so is PSD:

,

where w are window function values, S are complex results from fft function.

By experimenting with code I came upon sampling rate of 2 samples/s, when mean power of PSD was getting close to 5 dB. Unfortunatelly, I still cannot confidently explain this.

Is there please any way to obtain "realistic" white noise samples in MATLAB? Or do I have to add white noise to (co)sine signal with known sampling? If I’m missing something, please let me know.

Thank you in advance,

Jan

CODE:

% Size parameters

L = pow2(16);

iterations = 100;

% ??? (Guessed value)

fs = 2;

% Frequency resolution

f_res = fs/L;

% Create noise with power of 5 dBW

data = wgn(L,iterations, 5);

% Apply Hann window

h = hann(L);

w = ones(L,iterations) .* h;

data = data .* w;

% Calculate normalizing factor S2

S2 = sum(h.^2);

% Calculate fft

S = fft(data,L,1);

S = S .* conj(S);

% Average power spectrum

for i = 1:L

PSD(i) = mean(S(i,:));

end

% Normalize results

PSD = 2 * PSD / (fs * S2);

% Discard symmectric part

PSD = PSD(1:(L/2+1));

% PSD in dB(W)

PSD = 10*log10(PSD);

% Mean value of PSD

display("Power = " + mean(PSD) + " dB");

% Calculate frequency

f = (0:(L/2)) * f_res;

% Plot data

figure

plot(f,PSD)

xlabel("f [Hz]")

ylabel("PSD [dB/Hz]") Hello there,

I’m trying to understand noise analysis and the concept of power spectral density. I’ve found this article:

https://pure.mpg.de/pubman/faces/ViewItemOverviewPage.jsp?itemId=item_152164

Which was really helpful and interesting, but I’ve encountered some problems while trying to put it in practise.

For convenience I wanted to generate white noise (mainly because of its flat spectral density) via wgn funtion and then calculate its PSD. If i understood it correctly, wgn creates discrete samples, which completely lack any relatationship to time.

And here comes my problem – while normalizing the results, equivalent noise bandwidth is dependent on sampling rate and so is PSD:

,

where w are window function values, S are complex results from fft function.

By experimenting with code I came upon sampling rate of 2 samples/s, when mean power of PSD was getting close to 5 dB. Unfortunatelly, I still cannot confidently explain this.

Is there please any way to obtain "realistic" white noise samples in MATLAB? Or do I have to add white noise to (co)sine signal with known sampling? If I’m missing something, please let me know.

Thank you in advance,

Jan

CODE:

% Size parameters

L = pow2(16);

iterations = 100;

% ??? (Guessed value)

fs = 2;

% Frequency resolution

f_res = fs/L;

% Create noise with power of 5 dBW

data = wgn(L,iterations, 5);

% Apply Hann window

h = hann(L);

w = ones(L,iterations) .* h;

data = data .* w;

% Calculate normalizing factor S2

S2 = sum(h.^2);

% Calculate fft

S = fft(data,L,1);

S = S .* conj(S);

% Average power spectrum

for i = 1:L

PSD(i) = mean(S(i,:));

end

% Normalize results

PSD = 2 * PSD / (fs * S2);

% Discard symmectric part

PSD = PSD(1:(L/2+1));

% PSD in dB(W)

PSD = 10*log10(PSD);

% Mean value of PSD

display("Power = " + mean(PSD) + " dB");

% Calculate frequency

f = (0:(L/2)) * f_res;

% Plot data

figure

plot(f,PSD)

xlabel("f [Hz]")

ylabel("PSD [dB/Hz]") psd, noise analysis, white noise, wgn, noise, matlab MATLAB Answers — New Questions