Эй, просто чтобы продолжить тему хотел бы спросить вас кое-что о wavwrite. Я пытаюсь получить файл мата (T01DATA.mat) для воспроизведения. Пробовал со sound() без реального решения; благодаря вам, я понимаю, почему. Модифицировал его, чтобы получить файл в переменную следующим образом:

s = load("T01DATA.mat");

Проверено на s и получилось довольно приличное доказательство того, что метод был успешным. Затем я пытаюсь получить его в файл WAV и появляется хаос.

wavwrite(s,"out.wav");

Я получаю это:

Скриншот

Итак, я сделал это тогда:

wavwrite("T01DATA.mat","out.wav");

Теперь я получаю wav-файл, но я не уверен на 100%, что сигнал записан правильно. Все, что я получаю, это 0 секунд записи.

1 ответ1

0

Для тех, кто проверяет это: решение проще, чем я думал. Загружая файл в Octave:

load("filename.ext");

Octave автоматически сохраняет его в переменной "y". Это потому, что Octave может импортировать переменные из файла .mat. При загрузке файла Octave видит имя столбца и векторы, поэтому он автоматически импортирует данные внутри переменной.

s = load("T01DATA.mat"); #Making this whole code unnecessary)

Чтобы получить файл .wav из .mat, вы можете реализовать только wavwrite() с "y", и все будет идеально.

wavwrite(y,Fs,"out.wav");

Это создаст out.wav внутри папки, с которой вы работаете. Вы можете проверить это с

pwd

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .