主要内容

获取连续音频数据

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

创建数据采集

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

dq=daq(“directsound”); 附加输入(dq,“音频0”1.“音频”);

设置FFT图

hf=数字;hp=绘图(零(1000,1));T=标题(“离散FFT图”); xlabel(‘频率(Hz)’)伊拉贝尔(| Y(f)|)网格在…上;

设置扫描可用FCN

通过设置扫描可用FCN.

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

开始采集

当使用麦克风时,此图将更新10秒。

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

作用连续FFT(数据句柄、绘图句柄)%计算FFT(数据)并用其更新绘图。数据=读取(daqHandle、daqHandle.ScansAvailableFcnCount、,“输出格式”,“矩阵”);Fs=daqHandle.Rate;lengthOfData=长度(数据);%距离长度最近的2次幂NEXTPOWEROFTOW2=2^nextpow2(lengthOfData);plotScaleFactor=4;%图是关于n/2对称的plotRange=nextPowerOfTwo/2;plotRange=floor(plotRange/plotScaleFactor);yDFT=fft(数据,nextPowerOfTwo);h=yDFT(1:plotRange);abs_h=abs(h);%频率范围频率范围=(0:nextPowerOfTwo-1)*(Fs/nextPowerOfTwo);%最多只能打印n/2(因为另一半是镜像)gfreq=频率范围(1:绘图范围);%更新绘图设置(绘图手柄,“伊达塔”,abs_h,“扩展数据”,gfreq);现在终止