Серийное преобразование Фурье восстанавливает оригинальные сигналы - PullRequest
1 голос
/ 21 ноября 2010

Предположим, у меня есть три сложных сигнала (состоящих из множества синусоид): A, B и C. Каждый из них имеет следующую частоту: 550, 600 и 700 Гц соответственно.

Теперь я добавляю три сигнала, т.е. создаю суперпозицию, чтобы получить сигнал D.

Моя цель - вернуть три исходных сигнала A, B и C. отдельно.

Я нанес на график спектр Фурье, где я получил основные пики при 550, 660 и 700 Гц.Есть и другие меньшие пики.Как я узнаю, какие пики связаны с какими сигналами, чтобы я мог воссоздать исходные сигналы A, B и C?Спасибо.

Ответы [ 4 ]

5 голосов
/ 21 ноября 2010

Если A, B и C не являются чистыми синусоидальными волнами, то, что вы хотите сделать, невозможно без дополнительной информации. Предположим, что A представляет собой сумму синусоидальных волн с частотами 100 и 200 Гц, B с частотой 300 и 400 Гц и C с частотой 500 и 600 Гц. Теперь рассмотрим сигнал D с частотами 100 и 300 Гц, E с частотами 200 и 500 Гц и F с частотами 400 и 600 Гц, каждый компонент с той же фазой и амплитудой, что и компоненты A, B и C. (A + B + C) будет иметь то же БПФ, что и (D + E + F), поэтому вы не можете отличить их друг от друга.

2 голосов
/ 21 ноября 2010

Важно понимать, что вам нужно применить оконную функцию до БПФ, иначе вы получите артефакты в частотной области от эффекта неявного прямоугольного окна, которое вы применяете к своему времени данные домена. Хорошей универсальной оконной функцией является окно Hann (иначе Hanning) .

1 голос
/ 21 ноября 2010

Не зная, какую технологию вы используете (чип DSP, fftw и т. Д.), Невозможно дать вам подробности реализации. Но да, примените быстрое преобразование Фурье, а затем, если вы хотите восстановить три чистых синусоидальных сигнала при 550, 600 и 700, БПФ даст вам амплитуду и фазу для каждого. Тогда простое синусоидальное выражение вида y=a*sin(wt+p) восстановит сигнал. «a» и «p» - это амплитуда и фаза от БПФ, а w = 2 * pi * f, где f - 550 Гц, 600 Гц или 700 Гц.

0 голосов
/ 22 ноября 2010

Вам нужно добавить какие-либо сложные сигналы?У них есть образец?Если вы хотите получить любую форму сигнала, это будет невозможно.Но в некоторых случаях, когда у вас есть ограниченный материал, вы можете работать над этим.В мелодине, например, они могут отделять некоторый материал инструментов с определенной высотой звука:

...