Получение матрицы 'y' и частоты дискретизации в качестве параметров функции аудиозаписи, т. Е. Аудиозаписи (имя файла, y, Fs) - PullRequest
0 голосов
/ 11 сентября 2018

Я немного растерялся в понимании того, как функция аудиовизуальной функции выводит 'y' и 'Fs', последние два параметра функции. Я посмотрел на некоторые примеры, предоставленные Matlab, и они, кажется, работают нормально. Первый набор кодов - это пример Matlab, который возвращает значения 'y' и 'Fs'.

load handel.mat filename = 'handel.wav'; audiowrite(filename,y,Fs);

Теперь я написал аналогичный набор кодов для работы с файлом .csv. Зная, что входной аргумент для функции загрузки может быть только в формате .mat, я написал несколько кодов в следующем формате.

csvread('bgst.csv');
save bgst.mat
load bgst.mat;
filename = 'bgst.wav';
audiowrite(filename,y,Fs);

Но в этом случае я получаю сообщение об ошибке: Неопределенная функция или переменная 'y' (или, Fs, если я определил y в строке с функцией csvread). Итак, почему audiowrite не создает 'y', а 'Fs' само по себе, как в предыдущем случае. Кстати, мой файл .csv имеет размер 999998x4 double. И, если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 11 сентября 2018

Когда вы делаете:

load handel.mat

Вы загружаете MAT-файл , содержащий переменные, в рабочую область.Это то, что инициализирует y и Fs, которые используются в качестве входных аргументов для audiowrite.Это можно увидеть с помощью функции whos, чтобы увидеть создаваемые переменные:

>> clear all        % Removes all current variables
>> load handel.mat
>> whos
  Name          Size             Bytes  Class     Attributes

  Fs            1x1                  8  double              
  y         73113x1             584904  double             

Переменная y содержит матрицу аудиоданных с частотой дискретизации Fs.Вы должны сами создать их для своих данных и передать их audiowrite.

...