Привет, просто чтобы продолжить тему, хотел бы спросить тебя кое-что о wavwrite. Я пытаюсь получить файл mat (T01DATA.mat) для воспроизведения. Пробовал без sound()
фактического решения; благодаря тебе я понял почему. Изменил его, чтобы получить файл в переменной таким образом:
s = load("T01DATA.mat");
Проверил на s и получил довольно приличное доказательство того, что метод был успешным. Затем я пытаюсь получить его в wav-файл и появляется хаос.
wavwrite(s,"out.wav");
Я понимаю это:
Тогда я сделал следующее:
wavwrite("T01DATA.mat","out.wav");
Теперь я получаю wav-файл, но я не уверен на 100%, что сигнал был записан правильно. Все, что я получаю, это запись длительностью 0 секунд.
решение1
Для тех, кто это проверяет: решение проще, чем я думал. Загружаем файл в 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