HXS*_*947 2 audio matlab signal-processing wav
我是Matlab的新手,正在尝试生成.wav文件,但是我一直收到不支持的通道数错误。这是我的代码。
TTL = zeros(2, 2205);
TTL(1,1:2205) = 2;
audiowrite('hereitis.wav', TTL, 44100, 'BitsPerSample', 16);
Run Code Online (Sandbox Code Playgroud)
我可以肯定我的问题是TTL,因为我过去曾经使用过Matlab一次或两次来生成.wav文件。我想做的是使用Matlab数据采集工具箱保存别人通过模拟传输的声音。我不觉得我太过分了,因为我已经能够使用Sound(TTL,44100)播放声音了;
提前致谢。
您在这里有两个问题。
首先,help audiowrite如前所述:
立体声数据应指定为具有两列的矩阵。
但是您有两行,因此需要进行更改。如果您运行更改的代码,则会收到警告:
Warning: Data clipped when writing file.
>In audiowrite>clipInputData at 390
In audiowrite at 166
Run Code Online (Sandbox Code Playgroud)
这意味着您需要为信号使用适当的数据类型(在本例中为int16)。因此,在进行了修改之后,我们来看下面的代码:
TTL = int16(zeros(2205, 2));
TTL(1:2205, 1) = 2;
audiowrite('hereitis.wav', TTL, 44100, 'BitsPerSample', 16);
Run Code Online (Sandbox Code Playgroud)