2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Дискретное преобразование Фурье в Матлаб
Сообщение21.05.2022, 17:44 


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

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

 Профиль  
                  
 
 Posted automatically
Сообщение21.05.2022, 17:54 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

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

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

 Профиль  
                  
 
 Posted automatically
Сообщение21.05.2022, 20:34 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Карантин» в форум «Околонаучный софт»
Причина переноса: тематика.

 Профиль  
                  
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение22.05.2022, 18:49 


21/07/09
300
Доброго времени суток, уважаемые участники форума. Если вопрос с самим языком Матлаба кажется сильно специализированным, то я буду рад помощи в принципе по самому преобразованию Фурье или за ссылки на источники где можно посмотреть мой вопрос. Заранее спасибо

 Профиль  
                  
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение22.05.2022, 20:58 
Заслуженный участник


14/10/14
1220
Не знаю про Матлаб, а вообще дискретное преобразование Фурье из $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 


21/07/09
300
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 
Заслуженный участник


14/10/14
1220
Не знаю, может, надо нарисовать точки $(0,(\mathcal Fv)_0)$, $(1,(\mathcal Fv)_1)$, ... ? $N$ равен длине.

 Профиль  
                  
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение23.05.2022, 17:34 


21/07/09
300
Slav-27 в сообщении #1555218 писал(а):
Не знаю, может, надо нарисовать точки $(0,(\mathcal Fv)_0)$, $(1,(\mathcal Fv)_1)$, ... ? $N$ равен длине.



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

 Профиль  
                  
 
 Re: Дискретное преобразование Фурье в Матлаб
Сообщение26.05.2022, 21:49 
Заслуженный участник


12/07/07
4522
В начальном сообщении не указано, что находится в векторах. Пусть вектор «комплексных» чисел содержит данные через равные промежутки времени (по всему периоду). Тогда из вектора «времёни» можно получить период. Это и позволит найти частоты и построить график.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group