a计权噪声级-感觉噪声级-有效感觉噪声级-a计权声压级计算代码(matlab代码)
时间: 2023-06-06 08:02:40 浏览: 381
A计权噪声级、感觉噪声级和有效感觉噪声级都是评价噪声的指标,其中A计权噪声级是按照人耳的响度感受特性进行加权计算的声压级指标;感觉噪声级是根据人耳对噪声响度的总体感觉进行评价;有效感觉噪声级则综合了声音频率波形、响度级别和持续时间等多个因素对噪声进行评价。
根据定义,使用matlab代码进行计算如下:
1、定义信号并进行采样和滤波:
t = linspace(0,1,44100);
x = sin(2*pi*440*t);
fs = 44100; % 采样率为44100Hz
B = 1; % 带宽为1Hz
fc = 440; % 截止频率为440Hz
[b,a] = butter(1,fc/(fs/2),'high');
y = filter(b,a,x); % 高通滤波
2、计算A计权声压级:
Lp_A = 20*log10(rms(y)/2e-5) + 2.0;
3、计算等响声级(感觉噪声级):
Lp_Z = 20*log10(sqrt(sum(y.^2))/rms(y)/2e-5);
4、计算有效感觉噪声级(SEL):
y2 = y.^2; % 平方求能量
ta = 0.125; % 1/8秒时间常数
K = 1/(ta*fs); % 根据时间常数计算出K值
ta_w = 0.035; % 称重时间常数
Z = filter(K, [1 K-1], y2); % 经平滑滤波后的谐波声能量
sum_Z = cumsum(Z)/fs;
for n = 1:length(y)
if sum_Z(n) > ta_w
start_n = n;
break;
end
end
for n = length(y):-1:1
if sum_Z(n) > ta_w
end_n = n;
break;
end
end
SEL = 10*log10(sum(y2(start_n:end_n))/((end_n-start_n+1)*2.828e-13));
以上代码可以用于计算给定信号的A计权噪声级、感觉噪声级和有效感觉噪声级。其中,A计权声压级、等响声级和有效声级可以作为噪声的评价指标,有助于工程实践中的噪声控制。
阅读全文