我知道 Octave/MATLAB 可以将数组作为声音播放,但我想知道 Octave 是否可以做到这一点:我想循环播放一系列频率,并让 Octave 使用计算机上的扬声器播放它们,并让 Octave 也记录使用麦克风输入的声音来获取最大值。我正在尝试自动化一种方法,让 Octave 循环频率并记录接收到的数据,以便我稍后可以返回并查看共振频率。 Octave 可以并行执行此类操作吗?
我使用的是带有全双工声卡的 Ubuntu Linux 10.04 64 位
Example:
clear all
t=linspace(0,1,44100);
A = 1; % amplitude
Fs = 44100
for ii=1:1:10
freq=ii; %how many in 1 sec
T = 1/freq; % period of the signal
vertoffset=0.5;
% square
square = mod(t * A / T, A) > A / 2;
square = square - vertoffset;
sound(square,Fs);
end;
这可以通过 SOX 来完成http://sox.sourceforge.net/ http://sox.sourceforge.net/
执行此操作的 Octave/SOX 代码的示例是
系统('播放/home/a_playback.wav | rec -c 1 -r 8000 -b 16 /home/a_record.wav 修剪 0 00:01')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)