声压水平降低了一定dB

时间:2019-02-22 19:27:22

标签: matlab

我正在使用信号处理工具箱分析MATLAB中的大型Hyrphone数据集,我发现当我执行PSD或三次倍频程频段时,它们的dB级偏移了30或40 dB以上。有人可以建议要为此检查的主要或主要参数是什么。我确实输入了水的所有参考压力,系统的端到端灵敏度以及所有正确值。如果我缺少什么,我想知道。请在下面的代码部分中找到

xgrid = buffer(xbit,N,ceil(N*r),'nodelay').'; %buffer function breaks data into segments or frames as set by user   
                                    %grid whose rows are each (overlapped) 
                                    %   segment for analysis
if xgrid(length(xgrid(:,1)),N) == 0 %remove final segment if not full
    xgrid = xgrid(1:length(xgrid(:,1))-1,:);
end

M = length(xgrid(:,1));             %total number of data segments

xgrid = xgrid.*repmat(w/alpha,M,1);%multiply segments by Hann window function



   %%computing DFT
    X = abs(fft(xgrid.')).'; %DFT of each segment

    %%computing power spectrum which is square of the amplitude
    P = (X./N).^2;

    %%Compute single-sided power spectrum 

    Pss = 2*P(:,2:floor(N/2)+1);        %

f = floor(fs/2)*linspace(1/(N/2),1,N/2);
                                    %calculate frequencies of DFT bins
flow = find(single(f) >= lcut,1,'first');   %low-frequency cut-off                                    
fhigh = find(single(f) <= hcut,1,'last');   %high-frequency cut-off
f = f(flow:fhigh);                  %frequency bins in user-defined range
nf = length(f);                     %number of frequency bins

%% Compute noise power bandwidth and delta(f)

B = (1/N).*(sum((w/alpha).^2));     %noise power bandwidth 
delf = fs/N;                                     

%% Converting to dB
    %for  PSD calculation
        APSD = 10*log10((1/(delf*B))*Pss(:,flow:fhigh)./(pref^2))-S;

谢谢

0 个答案:

没有答案