Power spectral density plot converted to sound pressure level

309 Ansichten (letzte 30 Tage)
S_saleem am 3 Jun. 2023
Kommentiert: Star Strider am 4 Jun. 2023
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)');
0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Hiro Yoshino am 3 Jun. 2023
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 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
S_saleem am 3 Jun. 2023
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?

Melden Sie sich an, um zu kommentieren.

Star Strider am 3 Jun. 2023
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 Kommentare6 ältere Kommentare anzeigen6 ältere Kommentare ausblenden
S_saleem am 4 Jun. 2023
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 am 4 Jun. 2023
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.
.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Spectral Estimation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by