Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: fft в матлабе дает отрицательные значения для реальной части
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
RoadRunner
Задаю обычный синус, делаю от него fft, смотрю спектр - в реальной части на месте пиков имеются скачки как в область положительных значений, так и в область отрицательных. Т.е. удивляет наличие отрицательных значений в реальной части спектра. Как сделать нормальный спектр, т.е. чтобы в реальная часть была симметричной и только с положительными значениями, мнимая - антисимметрична, один пик отрицательный, другой - положительный?
petrov
Цитата(RoadRunner @ Dec 15 2011, 14:35) *
т.е. чтобы в реальная часть была симметричной и только с положительными значениями


Откуда следует что реальная часть должна быть положительной? Синус может иметь любую фазу, нарисуйте произвольный вектор на комплексной плоскости, он в том числе может иметь и отрицательную действительную часть.
RoadRunner
Цитата(petrov @ Dec 15 2011, 13:47) *
Откуда следует что реальная часть должна быть положительной? Синус может иметь любую фазу, нарисуйте произвольный вектор на комплексной плоскости, он в том числе может иметь и отрицательную действительную часть.

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

В прикрепленном файле картинки для реальной и мнимой части, которые у меня получаются
petrov
Цитата(RoadRunner @ Dec 15 2011, 15:08) *
Вообще да, согласен. Только тогда остается главная проблема: почему на графике реальной части на месте частоты синуса кривая уходит то в минус, то в плюс, по сути получаются два пика вплотную друг к другу, отрицательный и положительный, один побольше, другой поменьше. У меня основная проблема эту хрень убрать


Вы же фактически смотрите спектр синуса умноженного во времени на прямоугольное окно, вот и получаете спектр типа sinx/x.
Wasja
Цитата(RoadRunner @ Dec 15 2011, 14:08) *
Вообще да, согласен. Только тогда остается главная проблема: почему на графике реальной части на месте частоты синуса кривая уходит то в минус, то в плюс, по сути получаются два пика вплотную друг к другу, отрицательный и положительный, один побольше, другой поменьше. У меня основная проблема эту хрень убрать

Для того, чтобы не наблюдалось таких "соседних" пиков (большой мощности) необходимо, чтобы все частоты были кратны сетке FFT. Попробуйте подавать синус, чтобы поместилось 5, 10 или 20 полных периодов на длине FFT.
RoadRunner
Цитата(Wasja @ Dec 15 2011, 14:18) *
Для того, чтобы не наблюдалось таких "соседних" пиков (большой мощности) необходимо, чтобы все частоты были кратны сетке FFT. Попробуйте подавать синус, чтобы поместилось 5, 10 или 20 полных периодов на длине FFT.

Этого и боялся.. biggrin.gif Мне потом надо будет сигнал с АЦП туда загонять, неужто сидеть периоды выпиливать. Плохо пока представляю себе как это делать буду...
Wasja
Цитата(RoadRunner @ Dec 15 2011, 14:23) *
Этого и боялся.. biggrin.gif Мне потом надо будет сигнал с АЦП туда загонять, неужто сидеть периоды выпиливать. Плохо пока представляю себе как это делать буду...

Зачем выпиливать (да и не получится это)? Все некратные частоты будут "размазыватся" между соседними спектральными линиями. А их обработка зависит от поставленной задачи...
ivan219
RoadRunner Могу ошибиться но по моему на картинке вы представили отдельно вещественную и мнимую часть спектра.
Посчитайте модуль Sqrt(Sqr(Re) + Sqr(Im)) / N будет реальный спектр.
RoadRunner
Цитата(ivan219 @ Dec 15 2011, 15:12) *
RoadRunner Могу ошибиться но по моему на картинке вы представили отдельно вещественную и мнимую часть спектра.
Посчитайте модуль Sqrt(Sqr(Re) + Sqr(Im)) / N будет реальный спектр.

угу, так и есть, вещественную я реальной называю от англ. "real" - буржуйский влияет biggrin.gif

думается окно надобно накладывать, наверное уменьшит проблему

Ханнинг помог)) В общем то и подбор целого числа периодов закономерно помог, спектр перестал сильно расплываться. Но когда окно наложишь, уже по барабану сколько периодов - и так хорошо получается.

Большое спасибо за советы!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.