Что означает ошибка Matlab Неподдерживаемое количество каналов

Я ОЧЕНЬ новичок в Matlab и пытаюсь создать WAV файл, но я продолжаю получать неподдерживаемое количество ошибок в каналах. Вот мой код.

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

Я уверен, что моя проблема связана с TTL, поскольку я использовал Matlab один или два раза в прошлом для создания WAV файла. То, что я пытаюсь сделать, это сохранить звук, который другой человек передает по аналоговому каналу с помощью набора данных Matlab Data Acquisition Toolbox. Я не думаю, что я слишком далек от знака, так как я смог воспроизвести звук с помощью Sound (TTL, 44100);

Заранее спасибо.

1 ответ

У вас здесь две проблемы.

Во-первых, в качестве 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);

licensed under cc by-sa 3.0 with attribution.