Страница 1 из 1

Фазовый портрет.

Добавлено: Сб май 11, 2013 1:27 am
evgesha.13.92
Доброго времени суток. Очень надеюсь на вашу помощь, ибо что-то у меня не выходит "приручить" маткад. Вкратце: пишу бакалаврскую работу на тему модуляция и демодуляция ММС-сигнала( это один из типов частотно-манипулированных сигналов). Провожу математическое моделирование в маткаде.
Суть проблеммы в следующем: мне нужно построить фазовый портрет ММС-сигнала. Для этого я использую комплексную огибающую(использую квадратурное представление). Фактически я имею дело с комплексным числом, который в разные моменты времени разный( то есть я имею вектор на комплексной плоскости, который вращается). На входе имеется числовая последовательность "0" и "1". В зависимости от этой последовательности формируется комплексная огибающая. Сдвиг фазы на один символ равен 90 градусов.
Из теории известно, что если пришел 0, то сдвиг на -90, если "1" , то на +90. В маткаде имеется функция atan2 (я так понимаю она эквивалента взятию аргумента). но arg и atan2 выдают фазу в пределах от -90, до +90. А у меня могут быть ситуации, когда фаза может достигать,например, 270,360 или 540(так же и в отрицательной области). Привожу пример в картинках ниже. Очень надеюсь на вашу помощь, сижу с этой ерундой второй день. Задача сама по себе не должна быть сложной, просто мне не хватает навыков владения маткадом.пытался использовать программирование, но что-то делал не так
Изображение
Изображение

Добавлено: Сб май 11, 2013 1:47 pm
uni
Есть такая умная фраза: "когда ничто не помогает, прочтите наконец инструкцию".

В функции arg(z) и atan2() встроены ограничения, посмотрите на то, как они определены:

Код: Выделить всё

http://en.wikipedia.org/wiki/Argument_(complex_analysis)

The principal value Arg of a complex number given as x+iy is normally available in programming languages using the function atan2( ) or some language specific variant. The value of atan2(y, x) is the principal value in the range (−π, π].
Many texts say the value is given by arctan(y/x), as y/x is slope, and arctan converts slope to angle. This is correct only when x > 0, so the quotient is defined and the angle lies between −π/2 and π/2, but extending this definition to cases where x is not positive is relatively involved. Specifically, one may define the principal value of the argument separately on the four half-planes x > 0, x < 0 (separated into two quadrants if one wishes a branch cut on the negative x-axis), y > 0, y < 0, and then patch together.

Так что получить что-то большее 180 или меньшее -180 не получится. Для варианта [0;360] там есть подсказка:

Код: Выделить всё

For the variant where Arg is defined to lie in the interval [0, 2π), the value can be found by adding 2π to the value above when it is negative.

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