How to compute Sound Pressure Level?

92 次查看(过去 30 天)
I have to Plot SPL(Sound Pressure Level)
SPL = 20log10(P1/P_ref), where P_ref = 2upa.
the outcome is scalar.
i want to plot SPL Gragh in frequency domain. SPL = 20log10(abs(P1)/abs(P_ref))
when i have P1 FFT data, that is the value of P_ref ??
Thank you

回答(1 个)

Sarthak
Sarthak 2023-9-15
Hi Sangwoo,
I understand you want to plot the SPL Graph in frequency domain and want to know the value of “P_ref”.
In the formula for Sound Pressure Level (SPL), “P_ref” is the reference pressure level. It is a fixed reference value used to calculate the SPL in decibels (dB). The commonly used reference pressure level in acoustics is 20 micropascals (uPa), which corresponds to the threshold of hearing for the average human ear at a frequency of 1 kHz.
So, when you have FFT data for P1 and want to calculate SPL in the frequency domain, you should use “P_ref” as 20 uPa for all frequency components. This is because the reference level for SPL remains constant across different frequencies.
Here's how you can calculate SPL in the frequency domain using FFT data:
1. Compute the FFT of the sound signal to obtain the frequency domain representation of P1.
2. For each frequency component in the FFT data, calculate the magnitude (absolute value) of P1 at that frequency.
3. Use the formula for SPL:
SPL(f) = 20 * log10(|P1(f)| / P_ref)
Where:
- “SPL(f)” is the SPL at frequency “f”.
- “|P1(f)|” is the magnitude of P1 at frequency “f”.
- “P_ref” is the reference pressure level (20 uPa).
4. Plot the calculated SPL values against the corresponding frequency components.
You can try writing the code using the above steps. Hope this solves your query.

类别

Help CenterFile Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by