2014 dxdy logo

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

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




 
 Дискретное преобразование Фурье обработка данных.
Сообщение03.09.2013, 12:11 
Подскажите, после БПФ (Быстрое преобразование Фурье) на выходе получаются данные в формате комплексных чисел. На входе в БПФ амплитудные значения. Меня интересует следующее... Каким образом происходит обработка комплексных значений. К примеру получения частоты и амплитуды у этой частоты. И тут уже под-вопрос. Если мы получим какую либо частоту из окна, в каком формате у нас будет информация об этой волне? Если у нас в окне будет 10 разных синусов, мы будем получать информацию в которой будет информация о каждой из 10 волн? (10 массивов амплитудных значений?) Может быть я не правильно размышляю?

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение03.09.2013, 18:17 
Аватара пользователя
Советую почитать учебник - "А.Б.Сергиенко Цифровая обработка сигналов".
borodadada в сообщении #760078 писал(а):
К примеру получения частоты и амплитуды у этой частоты.

Амплитуда гармоники - есть модуль комплексного числа.

Индекс коэффициента ДПФ связан с частотой формулой.
$F=Fd*(i/N)$
Где:
$F$- частота;
$Fd$- частота дискретизации сигнала;
$i$- индекс в выходном массиве, смотри примечание;
$N$ - число элементов во входном массиве.

Примечание. В зависимости от реализации на выходе бывают вначале отрицательные частоты потом положительные в порядке возрастания. Бывают вначале положительные до середины затем отрицательные. Если на входе реальный сигнала, то на выходе могут быть отбрасывают отрицательные частоты, так как они совпадают по модулю с положительными.

borodadada в сообщении #760078 писал(а):
(10 массивов амплитудных значений?)

На выходи из ДПФ у нас один массив.
borodadada в сообщении #760078 писал(а):
мы будем получать информацию в которой будет информация о каждой из 10 волн?

Если они различимы, то будет информация о 10 волнах.

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение03.09.2013, 20:05 
Спасибо за книжку, обязательно прочту.

Если они различимы, то будет информация о 10 волнах.

Хотел бы у вас уточнить, то есть после обработки по формуле частоты, будет получаться массив комплексных значений для этой частоты? (То есть первоначальный массив комплексных чисел многократно обрабатывается...) Не понятно то, что изначально мы не знаем какая там будет частота.

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение03.09.2013, 21:32 
Аватара пользователя
borodadada в сообщении #760233 писал(а):
Хотел бы у вас уточнить, то есть после обработки по формуле частоты, будет получаться массив комплексных значений для этой частоты? (То есть первоначальный массив комплексных чисел многократно обрабатывается...) Не понятно то, что изначально мы не знаем какая там будет частота.

10 раз прочёл, ничего не понял.

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение09.09.2013, 15:06 
Извиняюсь за формулировку. Вообщем у меня есть массив который получился после БПФ. Волну на вход установил сложную, пила (множество гармоник(синусов)). Приведу пример, что мне надо. Могу ли я взять только чётные гармоники из этого файла (сделав таким образом фильтр)? У меня окно 2048 сэмплов, значит 1024 гармоники (или точнее спектра). Вот было бы просто замечательно, если бы вы помогли разобраться, как отфильтровать сигнал так чтоб, из 1024 гармоник, остались к примеру только 10, 50, 500 гармоника. Формула как я понимаю которую вы написали, это частота у конкретной гармоники. К примеру при 44100 и окне 2048 , частота первой гармоники будет 43,06640625, с этим проблем нету. Мне не понятен процесс обработки комплексных чисел, пока я понял не много, один массив после БПФ содержит в себе всю информацию о всех гармониках, с помощью формул можно "вынуть" всю информацию об амплитуде, фазе конкретной гармоники (в каком формате будет полученная информация?), можно её изменять(если можно?) , и с помощью обратного БПФ получать результат в амплитуде.
Допустим по формуле я выяснил, что у меня первая гармоника 43,06640625, как мне получить фазу с которой она начинается в этом окне? Так же как получить все амплитудные значения для неё, ведь на протяжении всего окна, амплитуда может постоянно меняться. В каком формате будут полученные данные?

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение09.09.2013, 16:45 
borodadada в сообщении #761951 писал(а):
Так же как получить все амплитудные значения для неё, ведь на протяжении всего окна, амплитуда может постоянно меняться.
Никак. Оно будет только одно. (Если нужно несколько значений, сдвигайте окно.) И амплитуда, и фаза гармоники остаются теми же самыми. Если вы сложите все гармоники, информацию о которых предоставило ДПФ, вы получите в целочисленных точках как раз тот сигнал, что давали ему на вход.

Фазу и амплитуду вы получите как аргумент и модуль соответствующей комплексной амплитуды.

borodadada в сообщении #761951 писал(а):
можно её изменять(если можно?) , и с помощью обратного БПФ получать результат в амплитуде
Конечно, можно. Только не забывайте вместе со значением в первой половине массива соответствующим образом менять значение во второй.

-- Пн сен 09, 2013 19:47:11 --

borodadada в сообщении #761951 писал(а):
Мне не понятен процесс обработки комплексных чисел
Кстати, если бы вы были конкретнее, могли бы получить и более конкретный ответ.

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение10.09.2013, 10:54 
Так уже много что прояснил, становиться интереснее. То есть гармоники в окне статичны (амплитуда и фаза), для их изменений нужно двигать окно, там получать новые данные и накладывать с каким то сдвигом, вот не понятен шаг сдвига окна, чем он меньше тем точнее будет результат, но количество расчётов будет на много выше?

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение10.09.2013, 12:17 
Вот насчёт шага сдвига окна не знаю. Может быть, стоит сдвигать на размер окна и, если нужно большее разрешение, интерполировать. Скорее всего, отношение размера окна к сдвигу, как и размер окна, зависят от задачи. Но уж точно не стоит сдвигать на один семпл.

Надеюсь, кто-нибудь скажет на этот счёт что-то поумнее.

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение10.09.2013, 12:57 
arseniiv спасибо за помощь. Шаг скорее всего меньше окна, так как в противном случае окна не наложить друг на друга.

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение10.09.2013, 13:43 
А зачем их друг на друга накладывать?

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение13.09.2013, 09:28 
Нашел информацию об окнах, но не совсем понятно. Вот ссылка на ресурс
http://www.physik.uni-wuerzburg.de/~pra ... /ANO14.pdf
Там есть пример соединения окон, какой то он странный, то есть передняя часть окна меньше чем задняя (при наложении), это нормально? Примеры окно для языка программирования найти можно, но там процесс создания окна, а не процесс наложения, как я понял. Окно создается перед БПФ?, то есть обычный кусок в 2048 семплов, обрабатывается огибающей, получается старт и конец амплитуда 0, середина окна амплитуда максимальная. Затем происходит какой то отступ, но не как не 2048, а меньше и выполняется тоже самое, далее суммирование?

 
 
 
 Re: Дискретное преобразование Фурье обработка данных.
Сообщение13.09.2013, 13:53 
Аватара пользователя
borodadada в сообщении #763418 писал(а):
Вот ссылка на ресурс http://www.physik.uni-wuerzburg.de/~pra ... /ANO14.pdf

В этой статье весь материал какой-то странный.
borodadada в сообщении #763418 писал(а):
Там есть пример соединения окон,

Нет там такого. Там есть пример окон с перекрытием.

borodadada в сообщении #763418 писал(а):
Там есть пример соединения окон, какой то он странный, то есть передняя часть окна меньше чем задняя (при наложении), это нормально?

??? Окно это область обработки. Есть оконная функция которая накладывается поверх, путем покомпонентного умножения. Но в статье они все симметричные.

borodadada в сообщении #763418 писал(а):
то есть обычный кусок в 2048 семплов, обрабатывается огибающей, получается старт и конец амплитуда 0,

Огибающая к окнам и оконным функциям не имеет отношения.

borodadada в сообщении #763418 писал(а):
Затем происходит какой то отступ, но не как не 2048, а меньше и выполняется тоже самое, далее суммирование?

В статье написано что берут среднее.

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


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