主要内容

衡量一个音频设备的频率响应

频率响应(FR)是一个重要的工具,描述一个音频设备或组件的忠诚。

这个示例需要一个音频设备能够录制和播放音频的和合适的音频驱动程序。了解更多关于如何记录和播放音频数据的例子中,看到的audioDeviceReaderaudioDeviceWriter

FR测量技术的描述

FR测量比较了产出水平的音频设备输入的水平。基本FR测量由两个或三个测试音调:中期,高,低。

在本例中您执行一个可听范围FR测量通过彻底的最低频率的正弦波最高的范围。平坦响应表明一个音频设备,同样对所有频率响应。

设置实验

在本例中,您测量FR播放音频信号通过audioDeviceWriter然后通过记录信号audioDeviceReader。回路电缆用于物理连接audio-out声卡的音频)在港港口。

音频设备的读者和作家

首先,使用audioDeviceReader系统对象™和audioDeviceWriter系统对象连接到音频设备。这个示例使用Focusrite斯佳丽2 i2 48千赫采样率的音频设备。

sampleRate = 48 e3;设备=“Focusrite USB ASIO”;aDR = audioDeviceReader (SampleRate = SampleRate,设备=设备,司机=“ASIO”,BitDepth =“16位整数,ChannelMappingSource =“财产”,ChannelMapping = 1);aDW = audioDeviceWriter (SampleRate = SampleRate,设备=设备,司机=“ASIO”,BitDepth =“16位整数,ChannelMappingSource =“财产”,ChannelMapping = 1);

测试信号

测试信号为正弦波和每帧1024个样本的初始频率0 Hz。50赫兹的频率增加增量扫描可听范围。

samplesPerFrame = 1024;sineSource = audioOscillator (频率= 0,SignalType =“正弦”,SampleRate = SampleRate,SamplesPerFrame = SamplesPerFrame);

频谱分析仪

使用简介可视化的FR音频I / O系统。20的平均谱估计在整个实验过程中使用和分辨率带宽设置为50赫兹。采样频率设置为48 kHz。

RBW = 50;Navg = 20;范围=简介(SampleRate = SampleRate,RBWSource =“财产”RBW = RBW,AveragingMethod =“指数”,ForgettingFactor = 0,FrequencySpan =“start-and-stop-frequencies”,StartFrequency = 0,StopFrequency = sampleRate / 2,PlotAsTwoSidedSpectrum = false,FrequencyScale =“日志”,PlotMaxHoldTrace = true,ShowLegend = true,YLimits = 20 [-110],YLabel =“权力”,Title =“音频设备的频率响应”);

频率响应测量回路

为了避免设置时间FR测量的影响,预试你的音频循环5秒。

一旦实际FR测量开始,扫描测试信号通过声音频率范围。使用频谱分析仪FR形象化。

抽搐toc < 5 x = sineSource ();aDW (x);y = aDR ();范围(y);结束数= 1;readerDrops = 0;writerDrops = 0;真正的如果数= = Navg newFreq = sineSource。频率+ RBW;如果newFreq > sampleRate / 2打破结束sineSource。频率= newFreq;数= 1;结束x = sineSource ();writerUnderruns = aDW (x);[y, readerOverruns] = aDR ();readerDrops = readerDrops + readerOverruns;writerDrops = writerDrops + writerUnderruns;范围(y);数=计数+ 1;结束发行版(aDR)发布(aDW)发布(范围)

频率响应测量结果

频谱分析仪显示两个情节。第一个情节的谱估计是最后一个记录的数据。第二个情节是最大权力每个频率的频谱分析仪计算本,正弦波横扫频谱。得到的最大保存图数据和频率向量,可以使用对象的功能getSpectrumData和情节的最大保持跟踪。

data = getSpectrumData(范围);freqVector = data.FrequencyVector {1};freqResponse = data.MaxHoldTrace {1};semilogx (freqVector freqResponse);包含(“频率(赫兹)”);ylabel (“权力(dBm)”);标题(“音频设备的频率响应”);

频率响应图表明,音频设备测试在这个例子中有一个平坦的频率响应在可听范围内。