Голубой график представляет собой спектр 50 Гц, а пурпурный - синусоидальный сигнал 50,1 Гц (имеющий амплитуду 0,7). Оба образца отбираются со скоростью 1024 образца / с. Я выполнил БПФ с 1024 точками, чтобы получить этот спектр.
Почему только спектр 50 Гц является единственным значением? Почему синус 50,1 Гц состоит из других частот, кроме 50,1 Гц; откуда взялись эти новые частоты?
Я не делал никакой нелинейной обработки сигнала 50,1 Гц! Кроме того, 50,1 Гц, кажется, имеют меньшую максимальную амплитуду, то есть не 0,7, тогда как фактически синусоидальная волна, которую я генерировал, имеет амплитуду 0,7.
Почему это?
Получено командой MATALB fft ();
Ответы:
В действительности ответ Мэтта уже дает один взгляд на проблему: ДПФ неявно периодичен как во временной, так и в частотной области (см. Этот вопрос ). По вашим параметрам мы можем рассчитать, что ваш период наблюдения составляет 1 с. Это означает, что вы наблюдаете 50 периодов тона 50 Гц. Периодическое увеличение этого интервала наблюдения всегда будет приводить к синусоиде. Если вы берете тон 50,1 Гц, вы преобразуете 50,1 периодов колебаний. Периодическое расширение этого сигнала приведет к скачкам фазы, которые вызывают дополнительные спектральные притоки.
Оба описанных выше эффекта способствуют спектру, который вы наблюдаете.
источник
Это эффект усечения или оконного синусоидального сигнала. Вы должны усечь таким образом, чтобы, если вы добавили сдвинутый сигнал к усеченному, он все равно будет исходной синусоидой.
источник
Вы получите только одну результирующую точку FFT для частоты чистой немодулированной синусоиды, которая является точно целочисленной периодичностью в апертуре или ширине FFT. Любая другая частота синусоиды будет выглядеть как свернутая с преобразованием (периодическая Sinc) окна по умолчанию (прямоугольник).
50,1 Гц не является точно периодическим в 1-секундном окне вашего БПФ.
Эти другие бины или частоты результирующего БПФ "утечки" необходимы для представления разрыва, создаваемого между границами окна любым сигналом, который не является точно целочисленным периодическим в ширине БПФ. Это связано с тем, что все базисные векторы ДПФ являются точно целочисленными в пределах ширины ДПФ и, таким образом, не имеют резкого разрыва между концом и началом базисного вектора. Таким образом, любой сигнал, который не имеет этих характеристик, не может быть представлен только одним базисным вектором ДПФ (и его комплексным сопряжением), поэтому информация об остальной части сигнала должна куда-то идти.
Поскольку полная энергия сохраняется с помощью преобразования БПФ (теорема Парсеваля), энергия в ячейках «утечки» отнимается от ячейки пика. Таким образом, величина пика должна быть ниже.
источник
Бьюсь об заклад, ваша синусоида равна нулю на первом и последнем образце? Так не должно быть. Он должен быть выстроен так, чтобы следующий сэмпл после последнего сэмпла был равен нулю, чтобы можно было копировать и вставлять копии сигнала один за другим, и они будут выглядеть непрерывными, без дублированных сэмплов. Возможно, подумайте об этом, как обоях с мозаичными обоями для рабочего стола, где один край должен плавно переходить к противоположному краю, когда выложен плиткой. :)
См. Https://gist.github.com/endolith/236567 для примера Python:
Посмотрите, как две копии сигнала соединяются друг с другом, создавая непрерывную волну:
Когда это происходит, энергия БПФ полностью содержится в одном элементе:
источник
Это происходит из-за Спектральной Утечки и Оконной обработки. Идеальный отклик, то есть импульсная функция, предназначен для непрерывной синусоиды времени. Когда вы берете DFT дискретной синусоидальной волны в цифровом компьютере, вы в основном берете Фурье-преобразование синусоидального и дискретизированного синуса, а затем дискретизируете его в частотной области. Это вызывает спектральную утечку. См. Http://w.astro.berkeley.edu/~jrg/ngst/fft/leakage.html.
источник