|
|
  |
Расчет и построение фазовых спектров., требуется помощь |
|
|
|
Nov 22 2005, 23:33
|
Группа: Новичок
Сообщений: 6
Регистрация: 22-11-05
Пользователь №: 11 245

|
Впервые на таком форуме. Надеюсь, правильно выбран раздел. Я начинаю заниматься (уже пару лет) различными алгоритмами спектрального анализа на основе преобразования Фурье. Сейчас возникла проблема построения фазового спектра. При расчете, проще всего находить мнимую и вещественную часть спектра. С амплитудами все понятно: корень из суммы квадратов мнимой и вещественной части. А вот при нахождении фазы приходится применять функцию арктангенса. Отсюда как минимум два момента: 1) Из-за вычислительной погрешности для некоторых типовых сигналов, вместо нулевых значений мнимой и вещественной части, могут быть получены 0,000000001 или -0,0000001. При вычислении фазы, определяется квадрант, в котором находится угол и затем арктангенс отношения мнимой части к вещественной. В таком случае знак может сыграть роль ошибки на 360 градусов. 2) Фазовый сдвиг может превышать 360 градусов. Причем, фаза, доходя до 360 может начать расти или уменьшаться.
И еще, при анализе простейших сигналов по стандартному ДПФ при построении фазовых спектров наблюдаются странные эффекты, вроде всплесков там, где их быть не должно и т.п.
Может быть, кто-то сталкивался с этим. Литература, советы, алгоритмы, опыт… Все что угодно.
|
|
|
|
|
Nov 23 2005, 07:29
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(spirit @ Nov 23 2005, 02:33)  Впервые на таком форуме. Надеюсь, правильно выбран раздел. Я начинаю заниматься (уже пару лет) различными алгоритмами спектрального анализа на основе преобразования Фурье. Сейчас возникла проблема построения фазового спектра. При расчете, проще всего находить мнимую и вещественную часть спектра. С амплитудами все понятно: корень из суммы квадратов мнимой и вещественной части. А вот при нахождении фазы приходится применять функцию арктангенса. Отсюда как минимум два момента: 1) Из-за вычислительной погрешности для некоторых типовых сигналов, вместо нулевых значений мнимой и вещественной части, могут быть получены 0,000000001 или -0,0000001. При вычислении фазы, определяется квадрант, в котором находится угол и затем арктангенс отношения мнимой части к вещественной. В таком случае знак может сыграть роль ошибки на 360 градусов. 2) Фазовый сдвиг может превышать 360 градусов. Причем, фаза, доходя до 360 может начать расти или уменьшаться.
И еще, при анализе простейших сигналов по стандартному ДПФ при построении фазовых спектров наблюдаются странные эффекты, вроде всплесков там, где их быть не должно и т.п.
Может быть, кто-то сталкивался с этим. Литература, советы, алгоритмы, опыт… Все что угодно. 1. Что бы не получать таких малых значений (0,000000001 или -0,0000001) делайте нормировку (масштабирование) значений сигнала перед вычислением Фурье. 2. Для устранения всплесков пользуйтесь окнами. Но изначально знайте, что полосу сигнала необходимо ограничивать аналогово перед оцифровкой, тогда всегда можно отстроиться от шумов квантования. 3. Из литературы в первую очередь - Рабинер/Голд "Цифровая обработка сигналов", а потом все остальное.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Nov 23 2005, 08:14
|
Группа: Новичок
Сообщений: 6
Регистрация: 22-11-05
Пользователь №: 11 245

|
На счет нормировки – спасибо.
Про ограничение. Пока речь идет о тестовых сигналах. Т.е. дискретный сигнал задается чисто математический. И все остальное расчетное. Следовательно, нет никаких шумов. С амплитудами все очень здорово получается. Ну и Рабинер и Гоулд, Сергеенко и прочие естественно читались, только вот с построение фазовых спектров там очень мало рассматривается, как и в Марпле пл..
|
|
|
|
|
Nov 23 2005, 09:16
|
Группа: Новичок
Сообщений: 6
Регистрация: 22-11-05
Пользователь №: 11 245

|
А если рассматривать звено чистого запаздывания, то вроде бы отличается. Годографы КЧХ те же. Идентификация... В матлабе есть функция устранения скачков на 360 градусов, вроде unwrap. Но хочется знать алгоритм.
И еще, может кто-то на практике строил ФЧС (ФЧХ), как получалось? (может у меня в ДНК ошибки...). Сразу скажу, я не совсем радист, скорее математик. Но по опыту в спектральном анализе радиотехники куда лучше разбираются...
|
|
|
|
|
Nov 23 2005, 14:05
|
Местный
  
Группа: Свой
Сообщений: 228
Регистрация: 22-10-05
Из: Саратов
Пользователь №: 9 960

|
Вроде бы вот так можно исключить двойной проход и внутренний цикл, состоящий всегда из одного шага:
arg[0] = (S[0]).arg(); for(i=1; i<len; i++) { arg[i] = (S[i]).arg(); if (fabs(arg[i]-arg[i-1]) > M_PI) {// phase jump if (fabs(arg[i]-arg[i-1]-2*M_PI) <= M_PI) { arg[i] += 2*M_PI; } else { arg[i] -= 2*M_PI; } } }
Кроме этого, здесь подразумевается, что на одном шаге фаза не может меняться больше, чем на M_PI, то есть исключается случай, когда точка на комплексной плоскости с координатами (дествительная часть, мнимая часть) амплитуды Фурье-компоненты, при изменении частоты проходит вблизи нуля, пересекая действительную ось слева от него. С другой стороны, в большигстве случаев отслеживать и этот вариант нет смысла.
|
|
|
|
|
Nov 23 2005, 22:36
|
Группа: Новичок
Сообщений: 6
Регистрация: 22-11-05
Пользователь №: 11 245

|
Спасибо за идею с непрерывностью!
А что касается вопросов дискретности. Кажется, есть теорема Котельникова (она же Уиттекера, Шеннона, Найквиста), которая достаточно ясно формулирует требования к частоте дискретизации сигнала. С шумами все понятно. Еще раз спрошу, на практике, когда строили фазовые спектры, как получались картинки и что по ним было видно. Просто, если спектр "прыгает" от минуса к плюсу там, где быть этого не должно, то что вообще может это говорить о самом сигнале... ?
|
|
|
|
|
Nov 24 2005, 22:25
|
Группа: Новичок
Сообщений: 6
Регистрация: 22-11-05
Пользователь №: 11 245

|
Цитата(fontp @ Nov 24 2005, 11:09)  Теорема Котельникова не катит. Она относится к сигналу, но не к фазе сигнала. У фазы спектр может оказаться более широким, возможно даже бесконечным. Никогда не думал над таким ребусом. Но нутро говорит, что можно подобрать такой финитный сигнал, спектр фазы которого - нефинитный. Грамотно чуете! Спектры финитных сигналов обычно непрерывны. Но, теорема говорит о том, что если сигнал дискретизировать с определенной частотой – он полностью определим в частотной области и полностью восстановим. Но вопрос таки открыт. Какую рассчитанную фазу считать верной и как определять погрешность ее вычисления. На тестовом сигнале без шума сразу видно где то, чего быть не должно, а вот при реальном анализе? И еще, про нормировку, как ее вводить? Есть идеи? И еще маленький момент, у меня тут получилось, что чем меньший шаг брать по расчетной частоте, тем больше вылезает ненормальных точек, в которых происходят какие-то перепады и резкие скачки. Т.е. ошибка вычислительная, видимо, накапливается.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|