как я могу получить полиномиальную форму файла .wav (аудио) в Matlab

Мой учитель дал мне задание выразить звуковой файл (.wav) в полиномиальной форме в MATLAB (подгонка кривой).

Я пытался использовать polyfit() следующим образом: -

 a=wavread('filename');
 x=linspace(0,1,239915);
 p=polyfit(x,a,4);
 display(p);

но я получаю ошибку как

Векторы X и Y должны быть одного размера

Пожалуйста помогите.

Размер а не 239915, это для х мы взяли столько выборок, для строчного пространства, кстати, зачем нам х для полифита().

Заранее благодарю


person Shreyas Patel    schedule 19.08.2015    source источник
comment
Что такое m? Каков размер a? Я предполагаю, что a не имеет длины 239915.   -  person hbaderts    schedule 19.08.2015
comment
извините, это была моя ошибка, когда я написал m, вместо этого должно быть p, поэтому я изменил вопрос, пожалуйста, помогите мне сейчас, спасибо   -  person Shreyas Patel    schedule 24.08.2015


Ответы (1)


Попробуй это

a = wavread('filename')
x = linspace(0, 1, numel(a))';
p = polyfit(x,a,4);
display(p)

Обратите внимание, что я транспонирую вывод linspace, поскольку он возвращает вектор-строку, где wavread возвращает вектор-столбец, поэтому вы получаете сообщение об ошибке.

person Jørgen    schedule 19.08.2015
comment
Спасибо за это, я изменил в соответствии с вашим предложением, но все равно он не работает, выдает ту же ошибку, так что есть любой другой способ. - person Shreyas Patel; 24.08.2015
comment
Точно такая же ошибка? Это моно или стерео волновой файл? Что печатают size(a) и size(x)? - person Jørgen; 24.08.2015