我知道 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;
最佳答案
这可以用 SOX 来完成 http://sox.sourceforge.net/
执行此操作的 Octave /SOX 代码示例是 system('play/home/a_playback.wav | rec -c 1 -r 8000 -b 16/home/a_record.wav trim 0 00:01')
关于matlab - 将数组作为声音播放并并行记录其输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7923137/