隔音材料对感知噪音水平的影响gydF4y2Ba
在本例中,您测量发动机噪声,并使用心理声学指标对其感知的响度、锐度、波动强度、粗糙度和总体恼人水平进行建模。然后模拟隔音材料的添加,并重新计算总体烦恼水平。最后,您将比较烦恼程度,并显示通过应用隔音材料获得的感知改进。gydF4y2Ba
记录电平校准gydF4y2Ba
心理声学测量用校准的麦克风输入电平产生最准确的结果。使用gydF4y2BacalibrateMicrophonegydF4y2Ba
为了使您的记录水平与声压级表的读数相匹配,您可以使用1 kHz音源(例如在线音源或手机应用程序)和校准的声压级表。1khz校准音的声压级应该大到足以压倒任何背景噪声。有关使用MATLAB作为1 kHz音源的校准示例,请参见gydF4y2BacalibrateMicrophonegydF4y2Ba
.gydF4y2Ba
模拟录音,并包括一些背景噪音。假设SPL仪表读数为83.1 dB (c加权)。gydF4y2Ba
FS = 48e3;t = (1:2*FS)/FS;S = rng(gydF4y2Ba“默认”gydF4y2Ba);testTone = 0.46*sin(2* *t*1000)。' + 1*pinknoise(2*FS);rng(s) splMeterReading = 83.1;gydF4y2Ba
若要计算记录链的校准级别,请调用gydF4y2BacalibrateMicrophonegydF4y2Ba
并指定测试音调、采样率、声压级读数和声压级表的频率加权。为了补偿可能的背景噪声并产生精确的校准电平,请匹配声压级计的频率加权设置。gydF4y2Ba
calibrb = calibrateMicrophone(testTone,FS,splMeterReading,gydF4y2Ba“FrequencyWeighting”gydF4y2Ba,gydF4y2Ba“C-weighting”gydF4y2Ba);gydF4y2Ba
声压级gydF4y2Ba
一旦有了录音链的校准因子,就可以进行声学测量。当使用物理仪表时,您被限制在测量期间所选择的设置。与gydF4y2BasplMetergydF4y2Ba
对象时,您可以在录制完成后更改设置。这使得试验不同的时间和频率加权选项变得很容易。gydF4y2Ba
加载一个引擎记录并创建相应的时间向量。gydF4y2Ba
[x,FS] = audioread(gydF4y2Ba“Engine-16-44p1-stereo-20sec.wav”gydF4y2Ba);x = x(1:8*FS,1);gydF4y2Ba%只使用频道1,只保留8秒。gydF4y2Bat = (1:size(x,1))/FS;gydF4y2Ba
创建一个gydF4y2BasplMetergydF4y2Ba
对象,选择c加权,快速时间加权,峰值声压级测量间隔0.2秒。gydF4y2Ba
spl = splMeter(gydF4y2Ba“CalibrationFactor”gydF4y2Bacalib,gydF4y2Ba...gydF4y2Ba“FrequencyWeighting”gydF4y2Ba,gydF4y2Ba“C-weighting”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“TimeWeighting”gydF4y2Ba,gydF4y2Ba“快速”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“TimeInterval”gydF4y2Ba, 0.2,gydF4y2Ba...gydF4y2Ba“SampleRate”gydF4y2BaFS);gydF4y2Ba
绘制声压级和峰值声压级。gydF4y2Ba
[LCF,~,LCpeak] = spl(x);LCpeak情节(t, t, LCF)传说(gydF4y2Ba“LCpeak”gydF4y2Ba,gydF4y2Ba“性能”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“东南”gydF4y2Ba)标题(gydF4y2Ba《发动机噪声的声压级测量》gydF4y2Ba)包含(gydF4y2Ba的时间(秒)gydF4y2Ba) ylabel (gydF4y2Ba“SPL (dB)”gydF4y2Ba) ylim([70 95])网格gydF4y2Ba在gydF4y2Ba
心理声学的指标gydF4y2Ba
响度级gydF4y2Ba
监测SPL对职业安全符合性很重要。然而,声压级测量并不能反映实际听者所感知到的响度。gydF4y2BaacousticLoudnessgydF4y2Ba
测量听力正常(无听力障碍)的人类听者所感知的响度。的gydF4y2BaacousticLoudnessgydF4y2Ba
函数还显示了哪些频带对响度的感性感觉贡献最大。gydF4y2Ba
使用与之前相同的校准级别,并假设自由场记录(默认值),绘制平稳响度。gydF4y2Ba
acousticLoudness (x, FS, calib)gydF4y2Ba
响度为23.8索恩,大部分噪音低于3.3(树皮等级)。将3.3 Bark转换为Hz使用gydF4y2Babark2hzgydF4y2Ba
流(gydF4y2Ba“3.3吠声响度频率:%d Hz\n”gydF4y2Ba轮(bark2hz (3.3), 1));gydF4y2Ba
3.3吠声频率:330hzgydF4y2Ba
的gydF4y2BaacousticLoudnessgydF4y2Ba
函数返回在sones中感知的响度。为了理解sone测量,将其与SPL (dB)读数进行比较。60个phons的信号被认为是在60分贝声压级下测量到的1千赫的声音。将23.8 sones转换为phons使用gydF4y2Basone2phongydF4y2Ba
演示了发动机噪声的响度感知与86 dB声压级下测量的1 kHz音调一样大。gydF4y2Ba
流(gydF4y2Ba“等效1 kHz声压级:%d phons\n”gydF4y2Ba而圆(sone2phon (23.8)));gydF4y2Ba
等效1千赫声压级:86个phonsgydF4y2Ba
制作你自己的图表,单位为phons,频率为Hz,对数刻度。gydF4y2Ba
[sone,spec] = acousticLoudness(x,FS,calib);吠声= 0.1:0.1:24;gydF4y2Ba%树皮等级为ISO 532-1响度gydF4y2BaHz = bark2hz(吠声);specPhon = sone2phon(spec);specPhon semilogx (hz)标题(gydF4y2Ba“具体的响度”gydF4y2Ba)副标题(sprintf (gydF4y2Ba'响度= %。一方的gydF4y2Basone2phon(宋)))包含(gydF4y2Ba的频率(赫兹)gydF4y2Ba) ylabel (gydF4y2Ba“响度(方/树皮)”gydF4y2Ba) xlim(hz([1,end]))网格gydF4y2Ba在gydF4y2Ba
您还可以绘制随时间变化的响度和特定响度,以分析发动机的声音是否随时间变化。这可以与其他相关的时变数据一起显示,如发动机每分钟转数(rpm)。在这种情况下,噪声是静止的,但您可以观察到噪声的脉冲性质。gydF4y2Ba
calib acousticLoudness (x, FS,gydF4y2Ba“TimeVarying”gydF4y2Ba,真的,gydF4y2Ba“TimeResolution”gydF4y2Ba,gydF4y2Ba“高”gydF4y2Ba)gydF4y2Ba
用频率(Hz)(对数刻度)绘制具体响度。gydF4y2Ba
[tvsoneHD,tvspecHD,perc] = audisticloudness (x,FS, calibrb,gydF4y2Ba“TimeVarying”gydF4y2Ba,真的,gydF4y2Ba“TimeResolution”gydF4y2Ba,gydF4y2Ba“高”gydF4y2Ba);tvspec = tvspecHD(1:4:end,:,:);gydF4y2Ba%用于标准分辨率测量gydF4y2BaspectimeHD = 0:5e-4:5e-4*(size(tvspecHD,1)-1);gydF4y2Ba%时间轴为响度输出gydF4y2Baclf;gydF4y2Ba%不重用前面的子图gydF4y2Ba冲浪(spectimeHD hz, sone2phon (tvspecHD)。”gydF4y2Ba“EdgeColor”gydF4y2Ba,gydF4y2Ba的插值函数gydF4y2Ba);集(gca),gydF4y2Ba“视图”gydF4y2Ba90年[0],gydF4y2Ba“YScale”gydF4y2Ba,gydF4y2Ba“日志”gydF4y2Ba,gydF4y2Ba“YLim”gydF4y2Ba赫兹([1,结束]));标题(gydF4y2Ba特定响度(HD)gydF4y2Ba) zlabel (gydF4y2Ba特定响度(phons/Bark)gydF4y2Ba) ylabel (gydF4y2Ba的频率(赫兹)gydF4y2Ba)包含(gydF4y2Ba的时间(秒)gydF4y2Ba) colorbargydF4y2Ba
锐度水平gydF4y2Ba
人们所感知到的声音的尖锐程度会极大地影响其整体恼人程度。方法估计声音信号的感知锐度水平gydF4y2BaacousticSharpnessgydF4y2Ba
函数。gydF4y2Ba
锐度(规格)gydF4y2Ba
夏普= 1.1512gydF4y2Ba
粉红杂音的锐度为2尖。这意味着发动机噪声偏向低频。gydF4y2Ba
绘制时变锐度图。gydF4y2Ba
calib acousticSharpness (x, FS,gydF4y2Ba“TimeVarying”gydF4y2Ba,真正的);gydF4y2Ba
波动的力量gydF4y2Ba
在发动机噪音的情况下,低频调制有助于感知烦恼水平。gydF4y2Ba
首先,看看信号中存在哪些调制频率。gydF4y2Ba
N = 2^nextpow2(size(x,1));Xa = abs(x);gydF4y2Ba使用整流信号gydF4y2Bapspectrum (xa-mean (xa)、FS、gydF4y2Ba“FrequencyLimits”gydF4y2Ba80年[0],gydF4y2Ba“FrequencyResolution”gydF4y2Ba1)标题(gydF4y2Ba调制频率的gydF4y2Ba)gydF4y2Ba
调制频率峰值为24.9 Hz。在30赫兹以下,调制主要被认为是波动。在49.7 Hz处有第二个峰值,在粗糙度范围内。gydF4y2Ba
使用gydF4y2BaacousticFluctuationgydF4y2Ba
计算感知波动强度。在这段录音中,发动机噪音相对稳定,所以我们有算法自动检测出最能听到的波动频率(gydF4y2Ba在你gydF4y2Ba
).gydF4y2Ba
acousticFluctuation (x, FS, calib)gydF4y2Ba
用Hertz而不是Bark解释结果。为了减少计算量,重用之前计算的时变比响度。或者,您也可以指定您感兴趣的调制频率。gydF4y2Ba
[vacil,spec,fMod] =声学波动(tvspec,gydF4y2Ba“ModulationFrequency”gydF4y2Ba, 24.9);clf;gydF4y2Ba%不重复使用以前的子图gydF4y2BaflucHz = bark2hz(0.5:0.5:23.5);Spectime = 0:2e-3:2e-3*(size(spec,1)-1);冲浪(spectime flucHz、规范。gydF4y2Ba“EdgeColor”gydF4y2Ba,gydF4y2Ba的插值函数gydF4y2Ba);集(gca),gydF4y2Ba“视图”gydF4y2Ba90年[0],gydF4y2Ba“YScale”gydF4y2Ba,gydF4y2Ba“日志”gydF4y2Ba,gydF4y2Ba“YLim”gydF4y2Ba,结束,flucHz ([1]));标题(gydF4y2Ba“比波动强度”gydF4y2Ba) zlabel (gydF4y2Ba比波动强度(树皮/树皮)gydF4y2Ba) ylabel (gydF4y2Ba的频率(赫兹)gydF4y2Ba)包含(gydF4y2Ba的时间(秒)gydF4y2Ba) colorbargydF4y2Ba
粗糙度gydF4y2Ba
使用gydF4y2BaacousticRoughnessgydF4y2Ba
函数来计算信号的感知粗糙度。让算法自动检测出最能听到的调制频率(gydF4y2Ba在你gydF4y2Ba
).gydF4y2Ba
acousticRoughness (x, FS, calib)gydF4y2Ba
用Hertz而不是Bark解释结果。为了减少计算量,重用之前计算的时变比响度。指定调制频率。gydF4y2Ba
[asper,specR,fModR] =声学粗糙度(tvspecHD,gydF4y2Ba“ModulationFrequency”gydF4y2Ba, 49.7);clf;gydF4y2Ba%不重复使用以前的子图gydF4y2BarougHz = bark2hz(0.5:0.5:23.5);冲浪(spectimeHD rougHz specR。’,gydF4y2Ba“EdgeColor”gydF4y2Ba,gydF4y2Ba的插值函数gydF4y2Ba);集(gca),gydF4y2Ba“视图”gydF4y2Ba90年[0],gydF4y2Ba“YScale”gydF4y2Ba,gydF4y2Ba“日志”gydF4y2Ba,gydF4y2Ba“YLim”gydF4y2Ba,结束,rougHz ([1]));标题(gydF4y2Ba特定的粗糙的gydF4y2Ba) zlabel (gydF4y2Ba特定粗糙度(aspers/Bark)gydF4y2Ba) ylabel (gydF4y2Ba的频率(赫兹)gydF4y2Ba)包含(gydF4y2Ba的时间(秒)gydF4y2Ba) colorbargydF4y2Ba
音质gydF4y2Ba
对于整体音质评估,结合前面的指标,产生心理声学烦恼指标(由Zwicker和Fastl定义)。关系式如下:gydF4y2Ba
利用心理声学实验的结果进行了定量描述:gydF4y2Ba
:gydF4y2Ba
sone的响度百分比(只有5%的时间被超过的水平)gydF4y2Ba
为gydF4y2Ba ,在那里gydF4y2Ba 锐度在敏锐吗gydF4y2Ba
,在那里gydF4y2Ba 波动强度在波动和gydF4y2Ba 粗糙度是asppergydF4y2Ba
在这个例子中,锐度小于1.75,所以它不是一个影响因素。因此,您可以设置gydF4y2Ba 为零。gydF4y2Ba
百分位响度,gydF4y2Ba
的第三个输出返回的第二个值gydF4y2BaacousticLoudnessgydF4y2Ba
当gydF4y2Ba“TimeVarying”gydF4y2Ba
设置为gydF4y2Ba真正的gydF4y2Ba
.gydF4y2Ba
N5 = perc(2);gydF4y2Ba
计算忽略信号第一秒的平均波动强度。gydF4y2Ba
F = mean(501:end,1);gydF4y2Ba
计算忽略信号第一秒的平均粗糙度。gydF4y2Ba
R = mean(asper(2001:end,1));gydF4y2Ba
计算心理声学烦恼度量。gydF4y2Ba
pa = N5 *(1 + abs(2.18/(N5^.4)*(.4*f+.6*r))))gydF4y2Ba
Pa = 26.3402gydF4y2Ba
改善隔音效果gydF4y2Ba
测量改进的隔音对测量的声压级和感知噪音的影响。gydF4y2Ba
使用图形EQ滤波器组进行仿真gydF4y2Ba
设计一个gydF4y2BagraphicEQgydF4y2Ba
对象来模拟拟建隔音的衰减。低频更难衰减,所以我们创建了一个最好在200赫兹以上的模型。gydF4y2Ba
geq = graphicEQ(gydF4y2Ba“带宽”gydF4y2Ba,gydF4y2Ba“1倍频程”gydF4y2Ba,gydF4y2Ba“SampleRate”gydF4y2BaFS,gydF4y2Ba“收益”gydF4y2Ba, (-6.4 - -5.6 -0.5 -8.25 - -8.4 -1.25 - -3.4 7 8 7]);cf = getCenterFrequencies(splMeter(gydF4y2Ba“带宽”gydF4y2Ba,gydF4y2Ba“1倍频程”gydF4y2Ba));gydF4y2Ba
显示的频率响应gydF4y2BagraphicEQgydF4y2Ba
对象。gydF4y2Ba
[B,A] = coeffs(geq);sos = [B;A].';[H,w] = freqz(sos,2^16,FS);semilogx (w, db (abs (H)))标题(gydF4y2Ba“模拟隔音滤波器的频率响应”gydF4y2Ba) ylabel (gydF4y2Ba相对声压级(dB)gydF4y2Ba)包含(gydF4y2Ba的频率(赫兹)gydF4y2Ba) xlim(cf([1,end])gydF4y2Ba在gydF4y2Ba
使用图形EQ对引擎录音进行过滤以模拟隔音效果。gydF4y2Ba
X2 = geq(x);gydF4y2Ba
比较有隔音和没有隔音的声压级。重复使用相同的SPL仪表设置,但使用过滤记录。gydF4y2Ba
reset(spl) [LCFnew,~,LCpeaknew] = spl(x2);LCpeak情节(t, t, LCF, t, LCpeaknew, t, LCFnew)传说(gydF4y2Ba“LCpeak(原始)gydF4y2Ba,gydF4y2Ba“LCF(原始)”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“LCpeak(带隔音)”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“LCF(带隔音)”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“东南”gydF4y2Ba)标题(gydF4y2Ba《发动机噪声的声压级测量》gydF4y2Ba)包含(gydF4y2Ba的时间(秒)gydF4y2Ba) ylabel (gydF4y2Ba“SPL (dB)”gydF4y2Ba) ylim([70 95])网格gydF4y2Ba在gydF4y2Ba
比较隔音前后的感知响度测量值。gydF4y2Ba
acousticLoudness (x2, FS, calib)gydF4y2Ba
响度从23.8 sone下降到16.3 sone。然而,在phons中解释响度可能更容易。将sone单位转换为phons使用gydF4y2Basone2phongydF4y2Ba
.gydF4y2Ba
流(gydF4y2Ba“不隔音的音量:\t%。1 f方\ n”gydF4y2Ba, sone2phon (23.8));gydF4y2Ba
无隔音的响度:85.7 phonsgydF4y2Ba
流(gydF4y2Ba“增加隔音的音量:\t%。1 f方\ n”gydF4y2Ba, sone2phon (16.3));gydF4y2Ba
增加隔音的响度:80.3 phonsgydF4y2Ba
流(gydF4y2Ba“感知降噪:\t\t%。1f声子(分贝声压级在1 kHz)\n”gydF4y2Ba-sone2phon sone2phon (23.8) (16.3));gydF4y2Ba
感知降噪:5.5 phons (dB SPL在1 kHz)gydF4y2Ba
隔音材料后,gydF4y2BaacousticLoudnessgydF4y2Ba
显示对发动机噪音的感知大约减少了5.5 dB。人类对声音的感知在非常低的频率是有限的,而大部分的发动机噪音都在这个频率。频率越高,隔音效果越好。gydF4y2Ba
计算心理声学烦恼因子的减少。首先计算声锐度的平均值。gydF4y2Ba
[~,spec2hd,perc2] = acousticLoudness(x2,FS,calib,gydF4y2Ba“TimeVarying”gydF4y2Ba,真的,gydF4y2Ba“TimeResolution”gydF4y2Ba,gydF4y2Ba“高”gydF4y2Ba);Spec2 = spec2hd(1:4:end,:,:);shp =声学锐度(spec2,gydF4y2Ba“TimeVarying”gydF4y2Ba,真正的);New_sharp = mean(shp(501:end))gydF4y2Ba
New_sharp = 1.0796gydF4y2Ba
锐度降低,因为隔音在高频衰减时更有效。它低于1.75的阈值,因此它被烦恼因子忽略。gydF4y2Ba
现在,计算涨落强度和粗糙度的平均值。gydF4y2Ba
vacil2 =声学波动(spec2);F2 = mean(vacil2(501:end,1));asper2 =声学粗糙度(spec2hd);R2 = mean(asper2(2001:end,1));gydF4y2Ba
计算新的心理声烦恼因子。从26.3下降到18.1。gydF4y2Ba
N5hp = perc2(2);gydF4y2Ba% N5隔音gydF4y2Bapahp = N5hp * (1 + abs (2.18 / (N5hp ^。4)*(。4 r2 * f2 + 6 *)))gydF4y2Ba
Pahp = 18.0626gydF4y2Ba
参考文献gydF4y2Ba
Zwicker, Eberhard和Hugo Fastl。gydF4y2Ba心理声学:事实与模型gydF4y2Ba.卷。22。施普林格科技与商业传媒,2013。gydF4y2Ba