我是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)播放声音了;

提前致谢。

最佳答案

您在这里有两个问题。

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

关于matlab - Matlab错误不支持的 channel 数是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19994522/

10-12 04:08