主要内容

获取连续音频数据

此示例演示如何使用麦克风设置连续音频采集。

创建数据采集

创建数据采集直接声音作为供应商,并添加一个音频输入通道到它使用附加输入.

dq=数据采集(“directsound”); 附加输入(dq,“音频0”1.“音频”);

设置FFT图

hf=数字;hp=绘图(零(1000,1));T=标题('离散FFT图'); xlabel公司('频率(Hz)')伊莱贝尔(“|是(f)|”)网格;

设置ScansAvailableFcn

通过设置扫描可用FCN.

dq.ScansAvailableFcn=@(src,evt)连续fft(src,hp);

开始采集

当使用麦克风时,数字会更新10秒钟。

启动(dq,“持续时间”,秒(10));数字(hf);

功能连续FFT(数据句柄,绘图句柄)%计算FFT(数据)并用它更新绘图。数据=读取(daqHandle,daqHandle.ScansAvailableFcnCount,“输出格式”,“矩阵”); Fs=数据句柄速率;lengthOfData=长度(数据);%下一个最接近长度的2次方nextPowerOfTwo=2^nextpower2(lengthOfData);plotScaleFactor=4;%图是关于n/2对称的plotRange=nextPowerOfTwo/2;plotRange=楼层(plotRange/plotScaleFactor);yDFT=fft(数据,下一个功率2);h=yDFT(1:绘图范围);abs\u h=绝对值(h);%频率范围freqRange=(0:nextPowerOfTwo-1)*(Fs/nextPowerOfTwo);%仅打印到n/2(因为另一半是镜像)gfreq=频率范围(1:绘图范围);%更新绘图设置(plotHandle,'数据',绝对值,'扩展数据',gfreq);刷新屏幕结束