什么是Matlab错误不支持的通道数意味着什么

时间:2013-11-15 06:03:25

标签: matlab audio signal-processing wav

我对Matlab很新,我正在尝试生成一个.wav文件,但我不断收到不支持的频道数错误。这是我的代码。

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

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

提前致谢。

1 个答案:

答案 0 :(得分:4)

这里有两个问题。

首先,正如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);