获得连续的音频数据
这个例子展示了如何设置一个连续使用麦克风音频采集。
创建一个DataAcquisition
创建一个DataAcquisition声音处理软件
作为供应商,并添加一个音频输入通道使用addinput
。
dq =采集(“声音处理软件”);addinput (dq,“Audio0”,1“音频”);
建立了FFT阴谋
高频=图;惠普=情节(0 (1000 1));T =标题(“离散FFT的阴谋”);包含(的频率(赫兹))ylabel (“Y (f) | |”网格)在;
设置ScansAvailableFcn
更新图的FFT实时输入信号通过设置ScansAvailableFcn
。
dq。ScansAvailableFcn = @ (evt) src continuousFFT (src,惠普);
开始收购
图的更新,10秒钟,使用麦克风。
开始(dq,“持续时间”秒(10));图(高频);
函数continuousFFT (daqHandle plotHandle)%计算FFT(数据)和更新的阴谋。data =阅读(daqHandle daqHandle.ScansAvailableFcnCount,“OutputFormat”,“矩阵”);Fs = daqHandle.Rate;lengthOfData =长度(数据);%长度下最近的2的幂nextPowerOfTwo = 2 ^ nextpow2 (lengthOfData);plotScaleFactor = 4;%对n / 2图是对称的plotRange = nextPowerOfTwo / 2;plotRange =地板(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);%更新图集(plotHandle,“ydata”abs_h,“xdata”,gfreq);drawnow结束