2013-11-15 1 views
1

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

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);

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

ответ

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); 

 Смежные вопросы

  • Нет связанных вопросов^_^