2015-06-03 7 views
0

мне нужна помощь в этом сравнение времени вычислений в MATLAB:Расчет сравнения времени в Matlab

я есть файл Adio, что я хотел бы однажды FFT и MESURE время, которое потребовалось, чтобы вычислить

и сравнить он к тому времени, когда понадобится MATLAB для выполнения DFT по сигналу

1) как я могу сделать время выполнения образца матрицы? 2) как сделать forl matlab для выполнения DFT? FFt это не проблема для меня, как у меня есть команда для это

fid = 'f1lsenae.wav'; 
[x, fs] = audioread(fid); 
x1=x(1:32000); 
Y= fft(x) 
plot Y 

спасибо за помощь

Ассаф

ответ

1

Ко времени выполнения образца кода используйте tic ... toc конструкция:

fid = 'f1lsenae.wav'; 
[x, fs] = audioread(fid); 
x1=x(1:32000); 
tic; % Begin timing 
Y= fft(x) 
toc; % End timing 
plot Y 

Вы говорите, что "заставить Matlab сделать DFT". Имейте в виду, что FFT относится к любому эффективному алгоритму вычисления DFT. Уже Matlab's FFT "является дискретным преобразованием Фурье (DFT) вектора X".

+0

спасибо за крестики/TOC :) моей задачей является сравнение времени выполнения как ДПФ против БПФ я знаю FFT даст мне тот же результат, как ДПФ и что его на Corect пути , но все же я хотел бы заставить DFT на тот же сигнал – user2740068

+1

@ user2740068 - Вы не можете «заставить» MATLAB выполнять ДПФ. Единственной доступной функцией является FFT ... что имеет смысл, поскольку нет смысла сохранять менее эффективный алгоритм для вычисления, чем DFT. Единственный способ - реализовать DFT самостоятельно, и вы можете либо сделать это с помощью двух циклов 'for', либо вы можете векторизовать его, рассматривая DFT как матричное умножение с вектором. – rayryeng

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