主要内容

calibrateMicrophone

校正因子为麦克风

自从R2020a

描述

例子

calibrationFactor= calibrateMicrophone (micRecording,fs,SPLreading)返回麦克风用于创建的校正因子micRecording

calibrationFactor= calibrateMicrophone (micRecording,fs,SPLreading,名称,值)使用一个或多个指定选项名称,值对参数。

例子:SPLreading calibrationFactor = calibrateMicrophone (micRecording fs,‘FrequencyWeighting’,‘Z-weighting’)返回一个SPL的校正因子阅读Z-weighting适用。

例子

全部折叠

这个图描述了设置中使用的例子:

要运行这个示例,您必须连接一个全双工声卡麦克风和扬声器,并使用一个SPL计来确定真正的响度级。

创建一个audioOscillator对象来生成一个1 kHz正弦波在48 kHz的采样率。

fs = 48 e3;osc = audioOscillator (“正弦”1 e3,“SampleRate”fs);

创建一个audioPlayerRecorder对象编写正弦波扬声器同时读取你的麦克风。

playRec = audioPlayerRecorder (fs);

创建一个dsp.AsyncBuffer对象来存储从你的麦克风音频记录。指定缓冲区的容量价值3秒的数据。

大调的= 3;浅黄色= dsp.AsyncBuffer(大调的* fs);

在一个循环中,三秒:

  • 生成一个框架1 kHz正弦信号。

  • 写的框架给你从你的麦克风扬声器同时读一个框架。

  • 写框架获得从你的麦克风的缓冲区。

而循环运行时,注意真正的SPL SPL计测量报告。一旦完成,读取缓冲区的内容对象。

numFrames =大调的* (fs / osc.SamplesPerFrame);2 = 1:numFrames audioOut = osc ();audioIn = playRec (audioOut);写(浅黄色,audioIn);结束释放(playRec);SPL = 78.2;%从物理SPL计读取micRecording =阅读(浅黄色);

计算校正因子的麦克风。

calibrationFactor = calibrateMicrophone (micRecording playRec.SampleRate, SPL);

设置和数据流图描述了例子。

要运行这个例子,您必须将麦克风连接到你的音频卡,生成一个1 kHz语气使用外部设备,并使用一个SPL计来确定真正的响度级。

指定一个48千赫采样率的音频设备和3秒钟时间获取音频。创建一个audioDeviceReader对象读取您的音频设备。

fs = 48 e3;大调的= 3;deviceReader = audioDeviceReader (fs);

创建一个dsp.AsyncBuffer对象存储流音频。

浅黄色= dsp.AsyncBuffer(大调的* fs);

启动1 kHz测试语气使用外部扬声器。然后,在一个循环中,读取你的音频设备,然后把数据写入到缓冲区。而循环运行时,注意真正的SPL SPL计测量报告。一旦完成,读取缓冲区的内容对象。

N = deviceReader.SamplesPerFrame;迷。NumUnreadSamples + N < =迷。能力audioIn = deviceReader ();写(浅黄色,audioIn);结束释放(deviceReader);SPL = 77.7;%从物理SPL计读取micRecording =阅读(浅黄色);

计算校正因子的麦克风。

calibrationFactor = calibrateMicrophone (micRecording deviceReader.SampleRate, SPL);

输入参数

全部折叠

音频信号用于校准麦克风,指定为一个列向量矩阵(mono)或独立的渠道(立体声)。micRecording必须从麦克风你想获得的校准。1 kHz的记录应该包含测试的语气。

数据类型:|

采样率赫兹的麦克风录音,指定为一个积极的标量。推荐的新唱片是48千赫采样率。

数据类型:|

声压级报告计在dB,指定为一个标量或矢量。如果SPLreading被指定为一个向量,它必须有相同数量的元素列micRecording

数据类型:|

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:calibrateMicrophone (micRecording fs, SPLReading PressureReference, 22)

参考压力dB计算在帕斯卡,指定为一个积极的标量。默认的参考压强(20 micropascals)是空气的共同价值。

数据类型:|

使用的频率加权物理表,指定为“权重”,“C-weighting”,或“Z-weighting”

数据类型:字符|字符串

输出参数

全部折叠

麦克风校准系数,作为一个标量返回或行向量相同数量的元素SPLreading

数据类型:|

算法

确定一个麦克风的校准系数,calibrateMicrophone功能用途:

  • 校准的语气从麦克风你想校准记录。

  • 你的声卡广告使用的采样率转换。

  • 已知的响度,通常决定使用一个物理SPL计。

  • 你的身体使用的频率加权SPL米。

  • 大气压力的记录位置。

图显示一个典型的物理设置和所需信息的位置。

图的物理设置。

calibrationFactor将根据方程:

CalibrationFactor = 10 ( ( SPLreading k ) / 20. ) rms ( x )

在哪里x是麦克风录音通过加权滤波器中指定的吗FrequencyWeighting论点。k是1帕斯卡相对于PressureReference在dB计算:

k = 20. 日志 10 ( 1 PressureReference )

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2020a