我正在为我的类项目做防蚊剂工作。该应用程序应该检测到cat(OpenCV实现)并向cat尖叫。但是,我希望我的软件发出超声波声音,以免打扰周围的人。
有谁知道我怎么能在matlab中做到这一点?
最佳答案
Ryan的回答本质上是正确的,但是有太多的问题超出了我对适当解释的评论范围。两个主要问题是:
这是我的具体建议:
Fs = 44100; % Samples per second. 48000 is also a good choice
toneFreq = 17000; % Tone frequency, in Hertz. must be less than .5 * Fs.
nSeconds = 2; % Duration of the sound
y = sin(linspace(0, nSeconds*toneFreq*2*pi, round(nSeconds*Fs)));
sound(y,Fs); % Play sound at sampling rate Fs
如果需要更大的声音,请调高计算机的系统或扬声器的音量。如果一切顺利,则无法在Matlab中将其调大一点。您可以通过增加toneFreq,但使其小于.5 * Fs来修改toneFreq。大多数计算机扬声器在22050时不会输出太多,所以这就是为什么我选择17000,这在技术上不是超声波。
另外,用toneFreq = 440(应该与钢琴上的“A”相同的音高)或类似的东西测试该代码,这样您就知道它正在工作并且可以听到它的声音很大。