Power spectral density plot converted to sound pressure level

82 vues (au cours des 30 derniers jours)
S_saleem
S_saleem le 3 Juin 2023
Commenté : Star Strider le 4 Juin 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)');

Réponses (2)

Hiro Yoshino
Hiro Yoshino le 3 Juin 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 commentaire
S_saleem
S_saleem le 3 Juin 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?

Connectez-vous pour commenter.


Star Strider
Star Strider le 3 Juin 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 commentaires
S_saleem
S_saleem le 4 Juin 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
Star Strider le 4 Juin 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.
.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Parametric Spectral Estimation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by