Power spectral density plot converted to sound pressure level

조회 수: 296 (최근 30일)
S_saleem
S_saleem 2023년 6월 3일
댓글: Star Strider 2023년 6월 4일
I have analysed a voltage signal and plotted the PSD. However, I need to produce a power-spectral-density plot from the data in terms of non-dimensional frequency. How do I calculate the Strouhal number for the frequency range and generate a power spectral density per unit Strouhal number plot for it?
nfft=2048;
window = hann(nfft);
overlap = 0;
[PSD, freq] = pwelch(det_data, window, overlap, nfft,fs);
figure;
plot(freq, 10*log10(PSD), 'b');
title('Power Spectral Density');
xlabel('Frequency (Hz)');
ylabel('Power Spectral Density (dB/Hz)');

답변 (2개)

Hiro Yoshino
Hiro Yoshino 2023년 6월 3일
The simplest way is this; try the following code without receiving the result from the function:
pwelch(det_data, window, overlap, nfft,fs);
It will show the PSD plot with the x-axis set normalized frequency.
  댓글 수: 1
S_saleem
S_saleem 2023년 6월 3일
I need to convert this PSD into SPL and then plot dB/St vs St plot. St=strouhal number. Can you help me with it?

댓글을 달려면 로그인하십시오.


Star Strider
Star Strider 2023년 6월 3일
To generate an SPL plot, and assuming compatible units (among other things) —
nfft=2048;
window = hann(nfft);
overlap = 0;
[PSD, freq] = pwelch(det_data, window, overlap, nfft,fs);
figure;
plot(freq, 10*log10(PSD), 'b');
title('Power Spectral Density');
xlabel('Frequency (Hz)');
ylabel('Power Spectral Density (dB/Hz)');
Pref = 20; % microPascals
SPL = pow2db(PSD/Pref^2);
figure
plot(freq, SPL)
grid
Calculating the Strouhal number is not possible.
While we can assume that f is frequency, and are nowhere defined, miuch less calculated.
.
  댓글 수: 8
S_saleem
S_saleem 2023년 6월 4일
Thank you very much. This is really helpful!! Please let me know how should I scale the ampltiude to a dB/V scaling factor of about 230 for this plot?
% %% PSD in terms of NON-DIMENSIONALIZed frequency
St= ((freq*Dj*0.001)/(Uj));
ss=(psd*Dj/Uj)/St;
plot(St, 10*log(ss))
title('Sound Pressure Level (SPL)');
xlabel('St');
ylabel('SPL (dB)');
xlim([0.1 1.5])
Star Strider
Star Strider 2023년 6월 4일
My pleasure!
I do not understand what you are doing, particularly with respect to ‘scaling factor’. (I am specifically helping only to get your code to run correctly.)
Please let me know how should I scale the ampltiude to a dB/V scaling factor of about 230 for this plot?
I do not understand what you are doing well enough to respond to that.
.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Spectral Estimation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by