Главная > DSP > Что такое комплексный сигнал, зачем он нужен и чем хорош

Что такое комплексный сигнал, зачем он нужен и чем хорош

Комплексный сигнал — важная штука; он являет собой один из краеугольных камней радиотехники. Почти все современные приемники (GSM, Wi-Fi, Bluetooth…) работают, выделяя квадратурные составляющие, которые потом подвергаются цифровой обработке. Увы, обычно в ВУЗах эту тему объясняют с привлечением полулетальных доз матанализа. Понятное дело, после этого у любого нормального человека надолго отпадает желание возвращаться к такому материалу, и формируется стойкое непонимание того, чем же такой ужас может быть удобен. В этой статье я постараюсь объяснить по-человечески, что такое комплексный сигнал и почему он действительно чудно хорош.

Одно «но»: я предполагаю, что читатель уже знаком с таким устройством как перемножитель (смеситель) и в курсе явления переноса частоты; то есть картинка, приведенная ниже, сердечно ему знакома, как обычно бывает уже курсе этак на третьем-четвертом, ближе к сессии. Также предполагается, что понятия скалярного произведения векторов и функций не вызывают удивления у читающего.

mix_reg

Итак, выше мы видим смеситель, на который подается опорный сигнал (сигнал гетеродина) REF, а также полезный сигнал S. Как известно, на выходе получается смесь разных гармоник, в числе которых присутствует и интересующий нас сигнал p (копия сигнала S, перенесенная на промежуточную частоту IF), который мы выделяем с помощью фильтра низкой частоты. Это стандартная схема гетеродинирования, совершенно чудесного метода, который позволяет перенести сигнал с каких-нибудь диких гигагерц, для коих частот удобно делать компактные антенны, на низкую промежуточную частоту, где сигнал удобно анализировать в силу того, что на низкой частоте мы можем без проблем оцифровать его и далее применить любые алгоритмы.

Однако любой человек, делавший лабы на эту тему, знает, что гетеродинированию свойственны некоторые недостатки, а именно наличие так называемых побочных каналов приема, в частности, зеркального канала и канала на промежуточной частоте. То есть, в выходной сигнал p попадет не только то, что находится на IF Герц ниже частоты настройки гетеродина REF, но также и то, что находится симметрично, на IF Герц выше по частоте, и, кроме того, то, что приходит на вход непосредствено на частоте IF; при этом, если прохождение сигнала на промежуточной частоте может быть ослаблено совершенствованием схемотехники смесителя, наличие зеркального канала является фундаментальной проблемой и не может быть устранено никаким образом кроме применения внешнего фильтра, ослабляющего нежелательную полосу частот.

Откуда берется зеркальный канал? Его наличие можно показать аналитически, но я предлагаю посмотреть на проблему немного под другим углом. Давайте вглядимся в примерное уравнение работы нарисованного выше смесителя (строго говоря, оно не совсем корректно в смысле, например, пределов интегрирования, но идею демонстрирует):

mix_eq

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

Когда видишь скалярное произведение чего-то (в нашем случае — сигналов), это что-то всегда начинает напоминать вектор. Итак, у нас есть векторы сигналов и их скалярное произведение. Давайте нарисуем его на плоскости!

mix1

В свете этого получается, что выходной сигнал p — ничто иное, как проекция вектора S на вектор REF (мы ведь помним, что скалярное произведение — это проекция). Но смотрите, есть ведь и еще один вектор, I, проекция которого на REF точно такая же, причем расположен он зеркально вектору S. Вот он, наш зеркальный канал. Очевидно, что он будет всегда, потому что любой вектор S можно отразить относительно вектора REF (нет, я не буду это доказывать; слава богу, в физике объяснение «это очевидно» вполне работает для подобных случаев).

Как отличить проекцию вектора I от проекции вектора S? В случае одного опорного вектора REF, понятное дело, никак. Остается только подавлять зеркальный канал до смесителя. Однако проблема исчезнет сама собой, если добавить второй опорный вектор, повернутый на 90°.

mix_quadr

Ортогональные вектора REF1 и REF2 образуют на плоскости декартову систему координат, в которой однозначно представим любой вектор, хоть S, хоть I — при отражении одна из координат просто меняется на противоположную.

Так вот, комплексным сигналом и называется разложение входного сигнала на две компоненты, которые являются, по сути, скалярными произведениями входного сигнала на две ортогональные опорные функции (в отличие от одной в случае простого гетеродинирования). Функции эти обычно гармонические, а конкретно — синус и косинус. Сигнал называется комплексным потому, что для удобства расчетов полученные две компоненты представляют в виде комплексного числа. Это удобно потому, что для комплексных чисел разработан хороший математический аппарат (в частности, преобразование Фурье). То есть комплексности, по факту, никакой нет — есть просто две составляющие, которые удобно спрессовать в одно комплексное число для последующего применения матаппарата.

Ранее мы сделали шаг от классической блок-схемы смесителя к картинке с векторами. Теперь давайте сделаем обратный шаг — от картинки выше, уже с двумя опорными векторами, к эквивалетной блок-схеме. Как мы уже выяснили, один смеситель соответствует одному скалярному произведению. Теперь у нас скалярных произведения два, так что смесителя тоже будет два. А еще на схеме появится фазовращатель — второй опорный вектор-сигнал, повернутый на 90°, на практике получают из одного основного (во временной области поворот соответствует сдвигу по фазе).

mix_quad_mixer

И вот у нас получилась классическая схема того, что называется квадратурным демодулятором, на выходе которого мы имеем комплексный сигнал. Канал, полученный умножением входного сигнала на исходный опорный сигнал, соответствует вещественной части комплексного сигнала (Re) и часто называется каналом I (in-phase, без сдвига). Соответственно, канал, полученный умножением входного сигнала на второй опорный сигнал, являющийся сдвинутой версией исходного, соответствует мнимой части (Im) и часто называется каналом Q (quadrature, со сдвигом на 90°). Дальше по пути каналов I и Q в 99% случаев стоят АЦП. Да-да, это именно то, что лежит в основе SDR.

Комплексный сигнал имеет много ценных свойств, в частности:

  • в нем содержится полная информация о спектре как ниже частоты гетеродина, так и выше — исчезает проблема зеркального канала, ВЧ-тракт получается проще и эффективнее;
  • как следствие первого, комплексный сигнал содержит информацию о фазе — можно работать с фазовой модуляцией (а когда мы откладываем на комплексной плоскости координаты I и Q, соответствующие определенным фазам, например при PSK или QAM, у нас получается сигнальное созвездие);
  • с ним прекрасно работает комплексное преобразование Фурье, что открывает безграничные возможности по анализу и синтезу любых сигналов (после оцифровки, конечно);
  • каждому из каналов (I и Q) требуется всего половина той полосы частот, которую занимает спектр исходного сигнала, который они представляют, что снижает требования к АЦП.

Поскольку смеситель может переносить частоту как вниз, так и вверх (в спектре выходного колебания присутствует и гармоника суммы частот входного сигнала и гетеродина, можно отфильтровать ее, а не промежуточную частоту), из квадратурного демодулятора легко получается квадратурный модулятор; в этом случае, формируя комплексный сигнал произвольным образом в цифровом виде и выводя на модулятор компоненты I и Q с помощью цифро-аналоговых преобразователей, мы можем легко получить самые замороченные виды модуляции (вроде OFDM), которые другим путем получить практически невозможно. Если выражаться в стиле геометрических аналогий, приведенных выше, в случае квадратурного модулятора мы имеем дело с суммой маштабированных опорных векторов REF1 и REF2 (см. соответствующую картинку).

Пара слов о преобразовании Фурье. Известно, что для вещественного сигнала результат преобразования Фурье симметричен, и его вторая часть не несет полезной информации. Если же на вход преобразования Фурье подать комплексный сигнал с квадратурного демодулятора, то область отрицательных частот (то, что дальше половины количества выборок в случае дискретного преобразования), будет соответствовать области спектра ниже частоты гетеродина, а область положительных частот — области спектра выше частоты гетеродина. Таким образом, результат преобразования Фурье для комплексного сигнала имеет смысл целиком. Результат же обратного преобразования Фурье пригоден для подачи на вход квадратурного модулятора, что позволяет сформировать совершенно любой сигнал, зная его спектр.

Напоследок небольшой пример того, как это выглядит в реальности. На картинке ниже показан сигнал с условной несущей 10 кГц, до момента 1 мс отклоняющийся от нее на -1.5 кГц (т.е., имеющий реальную частоту 8.5 кГц), а после этого момента — на +1.5 кГц (11,5 кГц, то, что в случае одного смесителя мы назвали бы зеркальным каналом). Ниже показаны сигналы I и Q, полученные при частоте опорного сигнала 10 кГц. Видно, как в момент изменения частоты входного сигнала на симметричную ей по спектру относительно частоты гетеродина синфазный канал (I) не претерпевает изменений, а квадратурный канал (Q) резко меняет свою фазу.

signal

IQ

Статья получилась достаточно длинной и, наверное, не самой простой; тем не менее надеюсь, что кому-то она поможет уложить в голове понятие комплексного сигнала.

Реклама
Рубрики:DSP
  1. VTV
    27/09/2017 в 15:48

    Пара замечаний.
    1. Теория
    «…для вещественного сигнала результат преобразования Фурье симметричен…», т.е. он отличен от нуля лишь вблизи частот +f0 и -f0. Умножим этот сигнал на комплексную экспоненту exp(-2 i pi f0 t). Спектр при этом сдвинется влево на f0, частота +f0 переползет в 0, а -f0 — в -2f0. Для получения комплексной огибающей осталось убрать часть спектра вблизи -2f0 при помощи фильтра нижних частот.
    По-моему, так проще — никаких проекций, зеркальных частот и т.п.
    2. Практика
    «Дальше по пути каналов I и Q в 99% случаев стоят АЦП», т.е. автор предполагает, что квадратурный смеситель реализуется в аналоговом виде. При этом потребуется генератор частоты f0, наводка от которого окажется посреди спектра полезного сигнала. Наверное, с этой проблемой можно справиться тщательной разводкой платы, экранированием и т.п., но оно Вам нужно?
    Во всех известных мне системах аналоговая часть содержит лишь обычные смесители для понижения несущей частоты, а квадратурный смеситель реализуется в цифре после АЦП.

    • YS
      27/09/2017 в 16:36

      По-моему, так проще …

      Э-э-э, видимо это на вкус и цвет. Мне как-то проще с векторами и проекциями, чем с комплексными экспонентами. Как минимум, я не могу без некоторого напряжения представить себе процесс умножения сигнала на комплексное число и прикинуть, что там выйдет.

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

      Собственно, статья была написана именно для того, чтобы объяснить материал без привлечения абстракций типа комплексных чисел. 🙂

      По второму — да, так тоже можно и так тоже делают. Но не всегда, справедливости ради. Например, в HackRF One именно что стоят два реальных смесителя (MAX2837) после которых стоят быстрые АЦП (MAX5864).

      • VTV
        27/09/2017 в 18:53

        По первому — непонятно, чем «абстракция типа комплексных чисел» отличается от абстракции типа вещественных чисел. И те, и другие числа можно складывать, вычитать, умножать и делить. В железе — чем комплексный сигнал (два провода) абстрактней вещественного (один провод)? Спектр определен для обоих, можно, например, спаять фильтр, выделяющий только положительные частоты. Правда, у такого фильтра будут два выхода — Re и Im.
        Неоднократно встречал утверждения типа «комплексные сигналы в природе не существуют». По-моему, ноги у подобных заблуждений растут из школьного курса математики, где комплексные числа определяются при помощи мнимой единицы (корня из -1). В корректном определении поля комплексных чисел как расширения поля вещественных чисел эта мнимая единица отсутствует. Повторюсь, чем пара вещественных чисел абстрактней одного вещественного числа?
        По второму — соглашусь. Года три назад коллеги из соседней фирмы проектировали систему с аналоговым квадратурным смесителем. Сделали или нет — не знаю, но за консультацию отблагодарили (через Гастроном).

        • YS
          27/09/2017 в 19:57

          Хехе. Я как раз из тех, кто утверждает, что комплексного сигнала как такового в природе не существует. 🙂

          Покажите мне вольтметр, который показывает комплексное значение, а? 🙂 Не векторный анализатор, а обычный, простой вольтметр. А заодно объясните мне физический смысл такого значения.

          Вы, кстати, сами же и показали, что по факту комплексного сигнала нет — чтобы передать то, что обычно описывается комплексным сигналом, нужны два провода (не учитывая возвратный), по которым идут два реальных сигнала. Фактически мы анализируем два настоящих сигнала, причем учитывается не только их амплитуда, но и фазовое соотношение — именно в этом смысл. И всю необходимую математику можно переписать в виде систем уравнений, без всяких комплексных чисел. Но это будет сложно для восприятия.

          А с комплексными числами уравнения получаются короче, вот и все. Как я и писал в статье, это лишь дает возможность упихать два уравнения в одно.

          Амплитуда и фаза — это физическая реальность, и то, и другое можно непосредственно измерить. Всякие комплексные экспоненты и еще непойми что — способ автоматически учесть оба параметра в одном уравнении, не более того.

          • VTV
            28/09/2017 в 13:41

            А я из тех, кто утверждает, что комплексного спектра как такового в природе не существует.
            Комплексный спектр существует при отрицательных частотах. Покажите мне частотомер, который показывает отрицательные значения, а? Не какой-то комплексный фильтр, а обычный, простой частотомер. А заодно объясните мне физический смысл таких значений.
            Комплексный спектр представляет сигнал как сумму комплексных экспонент, которых нет в природе. Физическая реальность — это синусы и косинусы. Всякие комплексные экспоненты и еще непойми что — способ запихать два преобразования в одно, не более того. И всю необходимую математику можно переписать, используя лишь синусные и косинусные преобразования, без всяких комплексных спектров.
            А с комплексными спектрами уравнения получаются короче, вот и все.

            P.S. Предложение риторическое.
            P.P.S. Скалярное произведение — это число, а в статье почему-то это функция.

  2. Жоро
    21/06/2017 в 03:22

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

    • YS
      21/06/2017 в 21:01

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

      Квадратурная схема позволяет различить эти две спектральные полосы. Если сделать преобразование Фурье I/Q компонент, представленных в виде комплексных выборок, то мы, как обычно, получим положительные и отрицательные частоты. Так вот, положительные частоты будут соответствовать тому, что выше частоты гетеродина, а отрицательные — тому, что ниже.

      То есть, мы ясно различаем и можем использовать то, что при обычном супергетеродинном приеме было бы зеркальным каналом.

  3. Дмитрий
    12/10/2016 в 20:30

    На мой взгляд, вы перемудрили со скалярным произведением и несколько запутали понятия. Начнем с понятий. Вы не определили, о какой плоскости идет речь, но уже рисуете на ней вектора. Во-вторых, вы почему-то пишете, что скалярное произведение — это проекция одного вектора на другой, хотя на самом деле это далеко не так. Далее путаница с зеркальным каналом. Он ведь зеркален по частоте, а у вас он зеркален в непонятной плоскости.
    Я сам тут не эксперт, но то, что вы пишете, явно противоречит основам. Т.е. вы растолковали элементарные вещи, но запутали в самом главном.

    • YS
      12/10/2016 в 21:35

      Вы знаете простой способ объяснить, о какой плоскости идет речь? : ) В сущности, это некоторая абстрактная плоскость. Любой набор данных в виде массива можно считать вектором. И в какой плоскости они откладываются? В сущности, это уже получается и не плоскость, а пространство. Многомерное. Это не то что не нарисовать, это и не представить. Тем не менее, все законы остаются теми же, что и для векторов в двумерном пространстве.

      В данном случае можно считать, что опорный вектор — это орт нашего пространства, то есть, его длина принимается за единицу. Так что скалярное произведение с ним будет проекцией.

      Я привожу геометрическую аналогию к частотному положению канала. Посмотрите на самый первый рисунок, и на последний пример. Там никаких плоскостей нет, все зеркально по частоте.

      • Дмитрий
        18/10/2016 в 16:23

        Если орт, то 2 замечание можно снять. А 1 и 3 замечание остаются в силе. Да, вы можете представлять что угодно в виде чего угодно, только чтобы оставаться в рамках науки, вы должны показать применимость мат. аппарата используемой модели (абстракции) к своим объектам. Поясню подробнее. У вас есть три вектора — S, I, REF. Они отображают три сигнала, расположенных на разной частоте. Т.к. векторы S и I зеркальны относительно REF в нарисованной плоскости и зеркальны относительно REF по частоте, мы понимаем, что речь идет о полярных координатах, где угол вектора соответствует его частоте. Длина вектора, видимо, соответствует амплитуде. Но тут же мы получаем противоречие, т.к. при увеличении частоты мы начнем получать циклические совпадения векторов, что не имеет аналогий в исходной картине гетеродинирования. Таким образом, ваша аналогия не тождественна физике исходного явления. Либо я чего-то не так понял.

        • YS
          18/10/2016 в 17:33

          Вообще, я изначально не имел в виду полярные координаты. Дело в том, что вектором принято называть вообще любой набор данных. Если в этом наборе четыре числа — это будет вектор на плоскости (две пары X/Y). Если шесть — это будет вектор в трехмерном пространстве. Если больше — это тоже будет вектор, правда, непойми где. Интересно, что скалярное произведение и прочие забавные вещи работают и в таких непойми каких пространствах. И там тоже можно выбрать ортонормированный базис. Это, в частности, позволяет говорить о таких понятиях, как ортогональные сигналы (функции). А преобразование Фурье работает именно потому, что гармонические функции дают возможность построить ортонормированный базис, по которому мы и раскладываем сигнал.

          Так вот, мои вектора символизируют именно вектора сигналов в том непойми каком пространстве. И раскладываются они в ортогональном базисе. Просто нарисовать тысячемерное, например, пространство было бы затруднительно, потому я ограничился двумя измерениями. Но в тысячемерном пространстве, как следует из математики, аналогия будет соблюдаться. Как было принято писать в советских учебниках, несложное доказательство этого очевидного факта автор оставляет любознательному читателю. 🙂

  4. Стас
    10/09/2016 в 16:21

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

    • YS
      10/09/2016 в 17:50

      Да, я сам долго шел к пониманию этого факта. 🙂

  5. Vugrel
    23/05/2016 в 21:53

    Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки

    • YS
      23/05/2016 в 22:20

      Дополнить нулями до ближайшей степени двойки.

  6. Vlad
    14/03/2016 в 22:26

    Спасибо. Достаточно доходчиво. Думаю у Вас хорошо получилась-бы статья про дискретизацию и размножение спектров, про квадратурные составляющие при дискретизации разных сигналов. В букварях по ЦОС, даже самых популярных все немнго оторвано от жизни… По ходу у Вас хорошо получается.

    • YS
      14/03/2016 в 23:04

      Рад, что понравилось. 🙂 Однако статей по оглашенным темам все же не обещаю. ЦОС не есть мое основное занятие… Может быть чуть попозже будет статья про согласованные фильтры, но пока, опять же, обещать не могу. Сейчас я очень занят на работе (веду четыре проекта), потому времени совсем нет.

  7. 25/10/2015 в 18:59

    А всё равно спасибо!

    Освежил для себя кое-какие моменты. Не думаю, что квадратурная модуляция/демодуляция затронет мои дела. Но кто его знает, жизнь на много сложнее и не предсказумее, чем мы о ней думаем. Спасибо!

    • YS
      25/10/2015 в 20:38

      Не за что, рад, что понравилось. 🙂

  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s