主要内容

获取连续的音频数据

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

创建数据速度

创建一个数据磁起指导作为供应商,并使用addInput

dq = daq(“指导”);addInput(DQ,“ audio0”,1,“声音的”);

设置FFT图

hf =图;hp =图(零(1000,1));t = title(“离散的FFT图”);Xlabel(“频率(Hz)”)ylabel('| y(f)|') 网格;

设置scansavailablefcn

通过设置实时输入信号的FFT更新图Scansavailablefcn

dq.scansavailablefcn = @(src,evt)连续FFFT(src,hp);

开始获取

随着麦克风的使用,该图更新10秒钟。

开始(DQ,“期间”,秒(10));图(HF);

功能连续FFFT(Datahandle,plothandle)%计算FFT(数据)并使用它更新图。data = read(daqhandle,daqhandle.scansavailablefcncount,“输出格式”,,,,“矩阵”);fs = daqhandle.rate;lengthofdata =长度(data);%的下一个最接近2的功率nextPowerOftWo = 2 ^ nextPow2(lengthofdata);绘图法= 4;百分比图是N/2的对称性plotRange = nextPoweroftwo / 2;plotrange = floor(plotrange / plotscaleFactor);ydft = fft(数据,nextPoweroftwo);h = ydft(1:plotrange);ABS_H = ABS(H);% 频率范围freqrange =(0:nextPoweroftwo-1) *(fs / nextPoweroftwo);%仅绘制到N/2(另一半是镜像)gfreq = freqrange(1:plotrange);%更新图set(plothandle,'ydata',abs_h,'xdata',gfreq);绘制结尾