我有来自 Fluent FFowcs-Williams Hawkings 声学分析的压力信号。
我使用 Matlab 将此压力信号转换为频域以获得 SPL 值。我使用了 FFT 的幅度:
A = fft(s10); %Amplitude
B = abs(A); %Magnitude of amplitude (complex numbers to real)
C = B/L; %Normalize amplitude by dividing by number of samples
D = C(1:fix(L/2)+1); %Select one half of 2-sided spectrum
E = 2*D; %Compensate for loss of energy by taking only 1 half of spectrum
F = E/sqrt(2); %Rms of amplitude
SPL = 20*log10(F/Pref);
据我所知,Fluent 使用 FFT 的功率谱密度来计算 SPL,而不是使用幅度。此计算的结果对应于 Fluent 在其 FFT 中所做的:
A = fft(s10); %Amplitude
G = A(1:fix(L/2)+1); %Select 1-sided spectrum
PSD = (2*(abs(G)).^2)/(Fs*L); %Compensate for loss of energy by multiplying by 2; scale by
%dividing by Fs and L; square
SPL2 = 10*log10(PSD/(2e-5)^2);
在绘制这两组不同的结果时,两个信号的 SPL 值之间存在恒定的差异。在这种情况下,它是 12.0377 dB 的偏移。
我的问题是,这两种方法中哪一种是计算 SPL 的正确方法,为什么?还是我的计算有误?
帮助将不胜感激!