我知道Octave / MATLAB可以播放数组作为声音,但我想知道Octave是否可以这样做:我想循环一系列频率并让Octave使用我的电脑上的扬声器播放它们,并且有Octave还可以使用麦克风输入录制声音以获得最大值。我正在尝试自动化一种让Octave循环通过频率并记录接收到的数据的方法,以便我可以稍后再回顾并查看共振频率。 Octave可以并行执行此类操作吗?
我正在使用带有全双工声卡的Ubuntu Linux 10.04 64位
示例:
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;
答案 0 :(得分:1)
这可以通过SOX完成 http://sox.sourceforge.net/
执行此操作的八度/ SOX代码示例 system('play /home/a_playback.wav | rec -c 1 -r 8000 -b 16 /home/a_record.wav trim 0 00:01')