Power Spectrum of Colored Noises
1 回表示 (過去 30 日間)
古いコメントを表示
Hi, I would like to know how to "normalize" the power spectrum of FFT so that the length of the colored noise doesn't affect the amount of power ploted.
Example below: When I change the value of 'duration', the final plot will show a different amount of energy. I understand that this is a cumulative sum, but I would like to get a normalized version of the plot for all signals.
How can I do that?
% Sample Rate:
Fs = 48000;
% Duration (seconds):
duration = 10;
% Signal Length:
L = Fs * duration;
%%Generate Colored Noise:
generator = dsp.ColoredNoise(0, L);
% Get the white noise signal:
white_noise = generator();
%%Normalize the signal between [-1 +1]:
white_noise = white_noise/max(abs(white_noise));
%%FFT:
Y = fft(white_noise);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
%%Plot:
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
0 件のコメント
採用された回答
Greg Dionne
2018 年 2 月 2 日
I think you're looking for a PSD.
Try periodogram(white_noise) or periodogram(white_noise,[],[],Fs)
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!