2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Дискретное преобразование Фурье в Матлаб
Сообщение21.05.2022, 17:44 
Здравствуйте, уважаемые участники форума. Помогите пожалуйста со следующей задачей. У меня есть заданный вектор комплексных чисел -мой сигнал во временной области, есть также вектор времени той же длины. Как мне получить преобразование Фурье этого вектора в частотной области? Я перечитал и пересмотрел огромное число инструкций по fft в Матлаб, но там почему-то постановку задачи начинают с задания частот, а у меня наоборот задан отрезок времени, да и сигнал у меня не выражен аналитически, как в этих инструкциях. Подскажите пожалуйста, как мне провести это преобразование Фурье. В качестве попыток своего решения приведу часть кода, где я не знаю какую выбрать ось частот и вообще правильную ли я команду выбрал для преобразования Фурье

Используется синтаксис Matlab M
clear all
clc
load('signal.mat','a','t');
A=fft(a);

 
 
 
 Posted automatically
Сообщение21.05.2022, 17:54 
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

- напишите текст так, чтобы он был читаемым;
- оформите код с помощью тэгов подсветки синтаксиса.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 
 
 
 Posted automatically
Сообщение21.05.2022, 20:34 
 i  Тема перемещена из форума «Карантин» в форум «Околонаучный софт»
Причина переноса: тематика.

 
 
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение22.05.2022, 18:49 
Доброго времени суток, уважаемые участники форума. Если вопрос с самим языком Матлаба кажется сильно специализированным, то я буду рад помощи в принципе по самому преобразованию Фурье или за ссылки на источники где можно посмотреть мой вопрос. Заранее спасибо

 
 
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение22.05.2022, 20:58 
Не знаю про Матлаб, а вообще дискретное преобразование Фурье из $v=(v_0,v_1,...,v_{N-1})\in\mathbb C^N$ делает $\mathcal Fv=((\mathcal Fv)_0,...,(\mathcal Fv)_{N-1})\in\mathbb C^N$, $(\mathcal Fv)_k=\sum\limits_{l=0}^{N-1}v_l\exp(-2\pi \sqrt{-1} \frac{kl}N)$, в обратную сторону $v_k=\frac1N\sum\limits_{l=0}^{N-1}(\mathcal Fv)_l\exp(2\pi \sqrt{-1} \frac{kl}N)$. FFT -- это не более чем алгоритм вычисления этих сумм, который работает быстрее, чем какой попало. "Вектор времени" тут не участвует.

 
 
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение23.05.2022, 00:33 
Slav-27 в сообщении #1555201 писал(а):
Не знаю про Матлаб, а вообще дискретное преобразование Фурье из $v=(v_0,v_1,...,v_{N-1})\in\mathbb C^N$ делает $\mathcal Fv=((\mathcal Fv)_0,...,(\mathcal Fv)_{N-1})\in\mathbb C^N$, $(\mathcal Fv)_k=\sum\limits_{l=0}^{N-1}v_l\exp(-2\pi \sqrt{-1} \frac{kl}N)$, в обратную сторону $v_k=\frac1N\sum\limits_{l=0}^{N-1}(\mathcal Fv)_l\exp(2\pi \sqrt{-1} \frac{kl}N)$. FFT -- это не более чем алгоритм вычисления этих сумм, который работает быстрее, чем какой попало. "Вектор времени" тут не участвует.


Спасибо большое. Определение я знаю. Но вот мне нужно построить график образа преобразования. Что должно быть отложено по оси абсцисс? Я так понимаю это должны быть какие-то частоты, которые должны определяться из того самого "вектора времени", да и в Вашем определении N наверняка связан с длиной этого вектора. Подскажите пожалуйста.

 
 
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение23.05.2022, 07:46 
Не знаю, может, надо нарисовать точки $(0,(\mathcal Fv)_0)$, $(1,(\mathcal Fv)_1)$, ... ? $N$ равен длине.

 
 
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение23.05.2022, 17:34 
Slav-27 в сообщении #1555218 писал(а):
Не знаю, может, надо нарисовать точки $(0,(\mathcal Fv)_0)$, $(1,(\mathcal Fv)_1)$, ... ? $N$ равен длине.



Мне кажется это будет неправильным, даже исходя из размерности. К тому же никак не использована информация о векторе времени. Я читал, что вектор частот должен зависеть от вектора времени и даже есть теорема Котельникова, которая ограничивает вектор частот в зависимости от шага по времени. Но я не знаю каким образом это реализовать в своем коде. Подскажите пожалуйста.

 
 
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение26.05.2022, 21:49 
В начальном сообщении не указано, что находится в векторах. Пусть вектор «комплексных» чисел содержит данные через равные промежутки времени (по всему периоду). Тогда из вектора «времёни» можно получить период. Это и позволит найти частоты и построить график.

В учебном пособии Павлейно М. А., Ромаданов В.М. «Спектральные преобразования в Matlab» (pdf) (нагуглил за несколько секунд) рассматривается, в частности, вопрос дискретизации сигналов и дискретного преобразования Фурье.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group