2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 дискретное преобразование фурье
Сообщение15.03.2014, 15:59 


15/03/14
16
Здравствуйте! Помогите пожалуйста решить задачку. Пытаюсь разобраться преобразованием Фурье (дискретным). На прстой задаче столкнулся с проблемой:

- амплитуда для 2*Sin[x] должны быть примерно 2, если использовать функцию FourierTransform так и получается

ListPlot[Table[ Abs[FourierTransform[2*Sin[x], x, w]] /. DiracDelta -> DiscreteDelta, {w, 0.1, 10, 0.1}], Joined -> True, PlotRange -> All]

Изображение

Если использую функцию Fourier, то тут все совсем по-другому.

data = Table[2*Sin[x], {x, 0, 100}];
ListPlot[data, Joined -> True]

Изображение

ListPlot[Abs[Fourier[data]], Joined -> True, PlotRange -> All]

Изображение

Как я понимаю все зависит в данном случае от диапазона значений x. В таком случае как добиться результата аналогичного варианту с функцией FourierTransform? Какие результаты вообще считать верными? Как высчитать истинную амплитуду?

Вариант использовать FourierTransform просто не подходит, так как функция в перспективе будет сложной и нужно дискретное преобразование.

Спасибо заранее.

 Профиль  
                  
 
 Re: дискретное преобразование фурье
Сообщение15.03.2014, 16:42 


08/03/11
186
Посмотрите в справке описание FourierParameters.

 Профиль  
                  
 
 Re: дискретное преобразование фурье
Сообщение15.03.2014, 16:45 


15/03/14
16
Что-то я не совсем понимаю - что имеется в виду? По описанию да - параметры применяются как ограничения для перехода к FourierTransform решениям. Но а подбирать их как?

 Профиль  
                  
 
 Re: дискретное преобразование фурье
Сообщение15.03.2014, 17:09 


08/03/11
186
Посмотрите здесь, там пишут как находить амлитуды и фазы, и менять FourierParameters для этого не обязательно.

 Профиль  
                  
 
 Re: дискретное преобразование фурье
Сообщение15.03.2014, 19:17 


15/03/14
16
Спасибо большое. Есть еще вопрос - как быть с точностью? Амплитуда после преобразования где-то 2,5. В реальности же амплитуда примерно равна 2.

 Профиль  
                  
 
 Re: дискретное преобразование фурье
Сообщение15.03.2014, 21:23 


08/03/11
186
По ссылке все получают точно, хотя там наверное частный случай.

У вас ''сигнал'' периодический?
Если да, то можно частоту (номер бина) сразу определить точно, дальше натягивайте интерполяцию на спектр и находите
максимум. Обычно амплитуда получается с хорошей точностью, а фаза с плохой. Точность улучшается с длиной выборки.
Наверное должны быть формулы для оценки.

Если квази-периодический, то смотрите в справке Fourier->Applications как искать частоту, если у вас будет больше 2х частот -- придется делать ортогонализацию.

Также советую ознакомиться с разными окнами.

-- Сб мар 15, 2014 21:55:32 --

Забыл сказать, что есть уже готовые решения, например, из известных мне,
1) TRIP
2) SDDS ToolKit

С первым пакетом я не работал, а второй -- достаточно удобный. Во втором вам надо использовать sddsfft или sddsnaff, но там есть
еще много полезного для анализа сигналов, плюс естественная интеграция с EPICS

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

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



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

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


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

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