2014 dxdy logo

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

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




 
 Short Time Fourier Transform как сделать в Mathematica ?
Сообщение24.10.2014, 19:36 
Subj.

 
 
 
 Re: Short Time Fourier Transform как сделать в Mathematica ?
Сообщение24.10.2014, 20:38 
Чего бы не по определению? Из того, что написано на вики, следует, что это преобразование Фурье от некоторой функции.

 
 
 
 Re: Short Time Fourier Transform как сделать в Mathematica ?
Сообщение25.10.2014, 06:29 
Vince Diesel

Смысл STFT в анализе изменений спектра со временем. Интересует сама функция которая выделит частоты, которые наиболее часто встречаются в анализируемом потоке данных. Никто не подскажет как сделать STFT в Matematica ?

 
 
 
 Re: Short Time Fourier Transform как сделать в Mathematica ?
Сообщение25.10.2014, 15:14 
qweras в сообщении #922786 писал(а):
Интересует сама функция которая выделит частоты, которые наиболее часто встречаются в анализируемом потоке данных.
Так это уже не STFT, а функция от него. Можно банально брать взвешенное среднее в каждый момент времени. Можно делать что-то другое, если вам нужно несколько частот.

Вам STFT нужно, обработчик или всё и сразу? Если STFT в списке, то по совету Vince Diesel присмотритесь к формуле преобразования. Функция умножается на сдвинутую оконную, а потом берётся преобразование Фурье. От выбора оконной функции зависит пригодность того, что получится, вашим целям.

Ещё есть такая вещь как мгновенная частота. Возможно, вам пригодится и она.

 
 
 
 Re: Short Time Fourier Transform как сделать в Mathematica ?
Сообщение11.11.2014, 12:09 
Код:
{x} = {data[[;; , 8]]}
{y} = Fourier[{x}, FourierParameters -> {0, 1}]
Mg := Abs[y]
ListLinePlot[Mg]


Изображение

Почему-то график получается симметричный, а как сделать что-бы график был убывающией и справа после минимума опять не поднимался вверх ? И почему-то, на симметричном графике в начале и в конце максимумы похоже не помещаются на график - как исправить ?

Как на этом изображении:
http://habrastorage.org/storage3/39d/a6e/71b/39da6e71bcb260da8146236b02d5a384.png

Я хочу найти частоты с максимальной амплитудой, что-бы сделать для этих частот фильтры.

 
 
 
 Re: Short Time Fourier Transform как сделать в Mathematica ?
Сообщение11.11.2014, 12:23 
qweras в сообщении #929637 писал(а):
Почему-то график получается симметричный
:shock: Вы про частоту Найквиста знаете?

А вкратце, возьмите первую половину массива.

 
 
 
 Re: Short Time Fourier Transform как сделать в Mathematica ?
Сообщение11.11.2014, 12:49 
arseniiv в сообщении #929640 писал(а):
А вкратце, возьмите первую половину массива.


Если "не вкратце" - как правильно сделать, что-бы убывало до нуля или спектр уходил ниже ноля ? (Как на втором изображении из прошлого поста).

 
 
 
 Re: Short Time Fourier Transform как сделать в Mathematica ?
Сообщение11.11.2014, 12:57 
Ах это… Тогда вопрос будет про децибелы. Логарифмируйте! (Только правильно логарифмируйте.)

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


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