2

我对 Matlab 非常陌生,正在尝试生成一个 .wav 文件,但我不断收到 Unsupported number of Channels 错误。这是我的代码。

TTL = zeros(2, 2205);
TTL(1,1:2205) = 2;
audiowrite('hereitis.wav', TTL, 44100, 'BitsPerSample', 16);

我相当肯定我的问题在于 TTL,因为我过去曾使用过一次或两次 Matlab 来生成 .wav 文件。我想做的是保存另一个人使用 Matlab 数据采集工具箱通过模拟传输的声音。我不认为我离题太远了,因为我已经能够使用 Sound(TTL, 44100); 播放声音;

提前致谢。

4

1 回答 1

5

你这里有两个问题。

首先,正如help audiowrite所说:

立体数据应指定为具有两列的矩阵。

但是你有两行,所以你需要改变它。如果您运行更改的代码,您将收到警告:

Warning: Data clipped when writing file. 
>In audiowrite>clipInputData at 390   
In audiowrite at 166

这意味着您需要为信号使用正确的数据类型(在本例中为 int16)。所以在这个修改之后,我们来到这个代码:

TTL = int16(zeros(2205, 2));
TTL(1:2205, 1) = 2;
audiowrite('hereitis.wav', TTL, 44100, 'BitsPerSample', 16);
于 2013-11-15T07:20:52.257 回答