С системой RDS (Radio Data System) сталкивался хоть раз каждый, кто видел в автомагнитоле название станции вроде «Дорожное радио». Помимо названия, могут отображаться дополнительные данные — название воспроизводимой песни, температура, частота вещания и т.д.


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

Продолжение под катом (осторожно много картинок).

Введение


Радиостанции FM-диапазона существуют и пользуются популярностью довольно-таки давно. Но со временем стало ясно, что помимо звука, не хватает текстовой информации — названия станции, трека, исполнителя песни. Добавить такую возможность можно было только одним способом — помимо звука передавать дополнительный цифровой канал. Причем передавать так, чтобы с одной стороны, данные было несложно декодировать (вычислительные возможности микросхемы в радиоприемнике довольно ограничены), с другой стороны, чтобы не нарушить совместимости с уже имеющимися в продаже приемниками. Задача была решена, так появился стандарт RDS, принятый в 1990м году.

Спектр современной FM-станции выглядит так:


На картинке можно видеть (слева-направо) 4 основных компонента.
— Звук в формате «моно» (L+R). Вероятно был оставлен для совместимости со старыми приемниками (интересно наблюдать как в подобных стандартах разные технологии «накладываются» друг на друга для обеспечения обратной совместимости).
— Пилот-тон 19КГц. Используется для декодирования стерео-сигнала, для чего частота пилот-тона умножается на 2, и относительно полученной частоты 38КГц разделяются стерео-каналы.
— Стерео звук, второй канал (L-R), находящийся на картинке симметрично относительно 38КГц.
— Канал RDS, который передается на 3й гармонике пилот-тона, его частота составляет соответственно 19*3 = 57КГц. Им-то мы и займемся.

Модуляция RDS


Для того, чтобы декодировать сигнал, сначала надо понять как он формируется, и здесь довольно-таки много «подводных камней». Основным документом, описывающим RDS, является «EUROPEAN STANDARD EN 50067», eго-то мы и будем изучать.

RDS-кодер, согласно стандарту, выглядит так:
"

Как можно видеть, сигнал в кодере проходит 5 стадий:

1) Исходный битовый поток. Для его получения RDS-сообщения сначала кодируются в 16-битные пакеты, потом к ним дописывается 10-битный блок контрольной суммы с коррекцией ошибок, в итоге получаются 26-битные блоки, которые и посылаются в кодер. Казалось бы, берем и посылаем? Все сложнее.

2) Битовый поток преобразуется с помощью дифференциального кодирования по следующей таблице:

Единицей кодируется изменение бита, отсутствие изменения кодируется нулем. Это нужно для простой цели — полученный код является независимым к инверсии. Мы можем не знать, что считать «0», а что считать «1», данное кодирование устраняет этот пробел.

Рассмотрим простой пример, пусть передаваемое сообщение — 0010100. Кодируем его по данной таблице, получаем 0011000.
Для декодирования используется другая таблица:

Воспользовавшись ей, получаем исходное сообщение 010100. Смысл действия в том, что если исходное сообщение инвертировано (т.е. 1100111), то декодируя его, все равно получаем тот же результат.

Теперь берем сигнал и посылаем? Еще нет, все сложнее.

3) На предыдущем шаге мы получили битовый сигнал, но проблема состоит в том, что этот сигнал вполне может иметь вид вроде 011000000000011. Электромагнитная волна такой «формы» будет плохо как передаваться, так и декодироваться. Надо получить сигнал как можно ближе к «классической» синусоиде нужной частоты. Для этого используется так называемое «бифазное кодирование» (в русскоязычной литературе часто встречается название «манчестерское кодирование»).
Алгоритмически, оно записывается довольно-таки просто:
0 -> 01
1 -> 10
С его помощью, приведенный выше сигнал 011000000000011 будет представлен как 0110100101010101010101011010, как можно видеть, от длинных одинаковых последовательностей мы избавились.

Сигнал, показанный под номером «5» на схеме кодера — это фактически и есть наши биты после манчестерского кодирования, только кодер в стандарте рассматривался аппаратный. Он работает следующим образом:
— Битовый поток превращается в последовательность коротких импульсов (цифра «3» на картинке)
— Манчестерское кодирование выполняется с помощью задержки сигнала на пол периода и сложения его с противоположным знаком (цифра «4»).
— Полученный сигнал в виде «всплесков» положительных и отрицательных импульсов, подается на ФНЧ (фильтр низких частот), который выделяет огибающую, показанную под цифрой «5».

Вот теперь-то сигнал можно передавать? Да можно. Но не сразу. Исходная частота цифрового сигнала RDS составляет 1187.5Гц, что слишком мало. Полученный сигнал умножается на другой сигнал с частотой 57КГц, что переносит его на заданную частоту, вспоминаем школьную формулу умножения косинусов:

Полученный сигнал имеет как раз необходимую нам частоту 57КГц, он суммируется с «основным» (звуковым) сигналом, который и транслируется в эфир. Как можно видеть из верхней картинки, добавление частоты 57КГц не затрагивает каналов звука, соответственно не добавляет никаких искажений даже в не имеющие поддержки RDS-приемники.

Демодуляция


Теперь, поняв как получается сигнал, мы можем приступить к демодуляции сигнала с реальной FM-станции. Для этого нужен SDR-приемник, я использовал HackRF, но подойдет и гораздо более дешевый RTL-SDR, купить который можно за 10$ с бесплатной доставкой на eBay.

Шаг 1. WFM-декодер

Т.к. исходный сигнал частотно-модулирован, сначала мы должны получить его в демодулированном виде. Чтобы не писать еще и ЧМ-декодер, воспользуемся пакетом GNU Radio. Запустим GNU Radio Companion и соберем схему, как показано на рисунке.


Мы собираемся принимать FM-станцию на частоте 100.4МГц, для этого мы настраиваем приемник на частоту 99МГц, и программно «сдвигаем» сигнал вверх по частоте на 1.4МГц, домножая его на сигнал с такой частотой. Это сделано потому, что SDR-приемник имеет пик на нулевой частоте относительно центра, и настроиться сразу на станцию мы не можем.

Запускаем «схему», и видим картинку как в учебнике в начале статьи.

Хорошо видны пилот-тон на 19КГц, стерео-сигнал на 38КГц и 2 пика RDS-сигнала вокруг 57КГц.

Шаг 2. Выделение пилот-тона и RDS-сигнала.

Следующим шагом является выделение пилот-тона и сигнала RDS. Для этого используем полосовой фильтр на соответствующие частоты.


Запускаем полученную схему, и видим результат, как в любом «учебнике» по описанию RDS.


Хорошо видны пилот-тон с частотой 19КГц, и 57КГц-сигнал, модулирующий более низкочастотный сигнал с частотой 1187.5Гц.

Шаг 3. Выделение низкочастотного сигнала.

Для получения НЧ-сигнала необходимы 2 шага:
3.1) Получение сигнала 57КГц (3й гармоники пилот-тона).
Мы имеем выделенный фильтром сигнал 19КГц, а как получить из него 57КГц? Для этого вспоминаем школьную математику, формулу куба синуса:

Как нетрудно видеть, куб синуса содержит 2 компоненты: sin(a) и sin(3*a). Т.к. мы работаем с «аналоговыми» блоками, берем в GNU Radio 2 блока — умножитель, и фильтр высоких частот. Убрав sin(a) фильтром на 38КГц, получаем искомые 57КГц.
Готовый результат можно видеть на осцилограмме:

3.2) Обратный перенос частоты
При кодировании сигнал переносился с частоты 1187.5Гц вверх, умножением на 57КГц. Теперь выполняем обратную операцию, переносим сигнал «вниз». Для этого еще раз умножаем его на 57КГц-сигнал. По формуле произведения синусов (школьная программа вещь полезная) получаем 2 компоненты — суммы и разности частоты. Нам нужна именно разность, сумму мы отбрасываем с помощью фильтра низких частот.
Все это делается добавлением блоков в GNU Radio, готовый результат показан на картинке:

Зеленым цветом показан «образцовый» сигнал с частотой 1187.5Гц, чтобы видеть что преобразование выполнено правильно.

Шаг 4. Демодуляция низкочастотного сигнала

Принцип этой части проще всего проиллюстрировать картинкой из стандарта (блок «biphase symbol decoder»).


Демодуляция бифазного сигнала состоит из 2х частей.
— «Переворачивание» сигнала инвертором. Это нужно для возврата от бифазного кодирования, которое рассматривалось выше, к исходному сигналу. Фактически нужно «перевернуть» каждый второй бит, поэтому процесс синхронизирован с тактовым сигналом.
— Суммирование сигналов за период. Положительная сумма соответствует биту «1», отрицательная «0».
Кстати, период 1187.5Гц тоже выбран не случайно — это частота пилот-тона 19КГц, деленная на 16. Все сделано для того, чтобы аппаратная реализация декодера в приемнике была как можно проще и соответственно, дешевле.

После демодуляции сигнал поступает на дифференциальный декодер, который рассматривался выше. Дальше сигнал поступает на модуль коррекции ошибок, но это уже как говорится, другая история, соответствующая второму уровню модели OSI.

Если кому интересно, теоретическую часть можно будет продолжить, и рассмотреть формирование пакетов. Если же кто захочет поэкспериментировать самостоятельно, один из вариантов работающего декодера для RTL-SDR можно найти на github. При желании использовать аппаратный тюнер в своих проектах, можно купить на eBay плату Si4703 FM RDS Tuner, ее цена около 6$.
Поделиться с друзьями
-->

Комментарии (59)


  1. mbait
    11.06.2016 05:40
    +4

    Если вдруг кому интересен формат кодирования символов — ISO 646, обратно-совместим с ASCII, как минимум, для латиницы.


  1. gsur
    11.06.2016 07:30

    Прошу прощения но таблицы кодирования и декодирования одинаковы, хотя написано «Для декодирования используется другая таблица:», так и должно быть?


    1. DmitrySpb79
      11.06.2016 11:24
      +3

      Да, таблицы по сути одинаковые, заголовки таблиц разные. Для кодирования берется новый входной и предыдущий выходной биты.


      1. gsur
        11.06.2016 15:29

        Так яснее, спасибо


  1. icoz
    11.06.2016 09:28
    +1

    пусть передаваемое сообщение — 0010100. Кодируем его по данной таблице, получаем 0011000.

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


    1. hrumbumbes
      11.06.2016 11:23
      +2

      0, 0+0=0, 1+0 =1,0+1=1,1+1=0… Нужно ксорить входной бит с последним ВЫХОДНЫ битом, а не входные биты между собой


  1. servekon
    11.06.2016 09:36

    Дилетантский вопрос: почему, когда радиоприемник в состоянии «RDS Search», то пропадает радио сигнал?


    1. Sergey_datex
      11.06.2016 10:01

      Очевидно, приемник ищет во всем FM диапазоне станции, соответствующие заданному жанру/критерию. Многие приемники имеют такую функцию.


    1. DarkByte
      11.06.2016 10:25
      +1

      В различных регионах радиостанции могут вести вещание на разных частотах, видимо приёмник запоминает название станции полученное из RDS и если теряет сигнал (или по команде пользователя, или название вдруг меняется), то он начинает сканировать весь диапазон станций и искать частоту на которой в RDS попадётся такое же название станции, которое и было до этого. Из-за того что приёмник только один, то он не в состоянии одновременно сканировать и продолжать вещание на выбранной частоте.


      1. Grustnui
        11.06.2016 12:54
        +2

        Скажем так, это не стандартная функция RDS приёмников.
        Мало того, крайне редко в соседних регионах станции вещают на одной и той же частоте, это сделано по многим причинам, программы в разных регионах могут отличаться (врезка местных новостей, погоды пробок, рекламы и т.п.), как поведёт себя приёмник получив 2 «разных» сигнала на одной частоте предсказать невозможно. Чтобы избежать этих эффектов для RDS придумали такую штуку как AF (Alternative Frequencies list — список альтернативных частот) по RDS также передаются частоты, на которых работает радиостанция в соседних регионах, если сигнал на этих частотах становится сильнее сигнала, принимаемого в данный момент, приемник автоматически переключится на эту частоту. К сожалению очень не многие из вещателей заполняют AF, как пример можно привести Дорожное Радио, им разрешили вешать маломощные 20-50 Вт ( в Мск мощность FM передатчиков 5-15 кВт) передатчики вдоль некоторых федеральных трасс, вот там именно через AF сделан «бесшовный роуминг».


  1. Sergey_datex
    11.06.2016 09:53
    +2

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


    1. DmitrySpb79
      11.06.2016 11:23
      +1

      Спасибо, поправил.


      1. amakhrov
        12.06.2016 10:58

        А зачем под L+R выделена полоса 15КГц (0-15), а для L-R — в 2 раза больше, 30КГц (23-53)?
        Чего этим добиваются или какую проблему решают?
        И как их потом суммировать для выделения отдельного левого и правого канала, если ширина полос разная?


        1. Sergey_datex
          13.06.2016 00:01

          Не специалист, но предположу, что полоса одинакова. Для основного канала -15...+15, для дополнительного 23...53.
          Для упрощения на рисунке показана только одна боковая полоса.


        1. interrupt
          13.06.2016 03:50
          +1

          Собственно идея совместимого стереовещания такова: L+R передаем как обычно, L-R передаем за пределами слышимого диапазона. Тут возникает вопрос, как перенести спектр L-R вверх (причем не забываем, что все это разрабатывалось во времена когда даже кварцевый резонатор был редкой деталью). Самое простое — амплитудная модуляция дополнительной поднесущей. Но есть проблема, если просто промодулировать так как это делают в AM радиовещании, то присутствующая всегда поднесущая будет сильно мешать — ведь эта поднесущая будет потом модулировать по частоте уже нашу основную несущую и расширять спектр (очень грубо, глубина AM модуляции, если правильно помню, порядка 30% дальше сильные искажения при простейшем способе демодуляции диодом). Таким образом хорошо бы поднесущую подавить но при этом сохранить легкость демодуляции. Один из способов подавить поднесущую а вместо неё передать сигнал меньшего уровня с частотой поднесущей деленной на 2, и совпадающей фазойи — тот самый пилот-тон.

          Итого, как может происходить стереовещание (не уверен что сейчас делают именно так, но для общего понятия ок). Имеем входной сигнал, срезаем ему все что выше 15KHz. Формируем суммарную и разностную часть. Берем суммарный сигнал подаем на вход FM модулятора как есть. Берем разностный сигнал, подаем на AM модулятор и модулируем поднесущую (38 KHz) получаем тот самый сигнал шириной 30KHz, только с несущей в центре. Давим поднесущую (тут есть разные способы, фильтры, специальные конструкции модулятора, можно поискать по словам формирование ssb сигнала). Получаем две боковые полосы. Подаем их так же на FM модулятор. Берем поднесущую делим частоту на 2, подаем так же на FM модулятор. Все получили спектр аналоговой части как на картинке.

          Такой подход позволяет очень сильно упростить приемник. Можно конечно подавить еще одну боковую полосу, но вот качественно принять такой сигнал будет еще той задачей. А так из пилот-тона можно легко сформировать сигнал для детектирования AM поднесущей, и восстановить разностный сигнал. Посмотрите код стереодетектора в gqrx. Или схему стереодетектора на дискретных компонентах.

          Существует так же старый стандарт стереовещания OIRT — использовался в СССР в нашем УКВ диапазоне. Там поднесущая была 32,1KHz и давили ее частично (что позволяло её восстановить узкополосным фильтром), пилот-тона не было.


          1. amakhrov
            13.06.2016 06:35

            О как! Сначала AM (получили 2 симметричные боковые полосы), а результат потом на FM.
            Спасибо, более-менее ясно.


  1. k12th
    11.06.2016 12:03

    А подскажите, на вашей картинке со спектром, данная радиостанция на какой частоте вещает, т.е. сколько мне покажет магнитола, когда я на нее настроюсь? И что такое Audos sub-carrier и DirectBand?


    1. INSTE
      11.06.2016 12:31
      +1

      Покажет частоту несущей моносигнала, которая является опорным «0».
      То есть 100,4 МГц.


      1. k12th
        11.06.2016 12:33

        А как вы это определили? На картинке я не вижу таких цифр.


        1. axilirator
          11.06.2016 12:42

          На картинке отступ от центральной частоты в KHz.

          image


          1. k12th
            11.06.2016 12:49

            А, вот это я тупанул. Спасибо.


    1. DmitrySpb79
      11.06.2016 13:00
      +4

      Как уже подсказали, на картинке сигнал после ЧМ-декодера, а оригинальная частота, на которую надо настраиваться, в данном примере 100.4МГц.

      DirectBand, я сам не знаю что такое :)
      Как подсказывает википедия, это какой-то дополнительный цифровой сервис передачи данных, причем от Microsoft. Используется в США.
      https://en.wikipedia.org/wiki/DirectBand

      DirectBand used the 67.65 kHz subcarrier leased by Microsoft from commercial radio broadcasters. This subcarrier delivers about 12 kbit/s (net after ECC) of data per tower, for over 100 MB per day per city. Data included traffic, sports, weather, stocks, news, movie times, calendar appointments, and local time.


      1. k12th
        11.06.2016 13:03

        Ничего себе. Спасибо!


      1. DmitrySpb79
        11.06.2016 13:14
        +6

        Кстати, если интересно, в «оригинале» до декодера, спектр FM-станций выглядит на SDR-приемнике так:


        Видна станция на 100.4МГц, которая была «использована» в статье.

        И второй забавный момент на скриншоте (сам только что заметил) — на частоте 99.4МГц видна слабая по мощности станция, вещающая в «старом» моно-формате.


        1. k12th
          11.06.2016 13:58

          Интересно, кто это.


          1. Crunch-f
            11.06.2016 15:45
            +1

            RADIO STAFF 99.4 FM, Купчино, Санкт-Петербург, Россия?


        1. AlexanderG
          11.06.2016 16:11

          А что за подозрительно мощный и узкий всплеск на 99.993 МГц?


          1. DmitrySpb79
            11.06.2016 16:18
            +4

            Хз, просто какая-то помеха. Сейчас производители устройств практически забили на EMI и побочные излучения, а к примеру, дорожка на материнской плате, по которой проходит прямоугольный сигнал с частотой 100МГц, вполне будет излучать этот сигнал в эфир. Или ШИМ-подсветка монитора, да что угодно может быть.


          1. KorDen32
            12.06.2016 17:54

            По крайней мере на RTL-SDR на частоте настройки (посередине) всегда такой всплеск, какую бы частоту не выбрал.


            1. axilirator
              12.06.2016 18:14

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


              1. DarkByte
                14.06.2016 10:28

                Всплеск от осциллятора можно найти каждые 28.8МГц. Таких сигналов можно много найти — импульсный преобразователь на самой плате донгла, импульсные помехи, передающиеся по линии питания от хоста, другие блоки питания находящиеся просто поблизости.

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


                1. MasMaX
                  14.06.2016 15:26

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


          1. DarkByte
            13.06.2016 18:13

            В SDR# есть галочка «Correct IQ» которая данный всплеск глушит. Без этой галочки данный всплеск будет видно ровно посередине спектра вне зависимости от частоты настройки.


  1. BigD
    11.06.2016 12:26

    Я в машине слушаю музыку обычно по Bluetooth. Иногда магнитола сама переключается на радио, где говорят от трафике. Как это реализовано? и как отлючить? :) в настройкха магнитолы на первый взгляд такой настройки не увидел.


    1. Gremlin2
      11.06.2016 12:52
      +3

      Это «Traffic announcement», передается через RDS. Для отключения поищите в настройках по аббревиатуре TA, или бывает отдельная кнопка с той-же надписью.


  1. jok40
    11.06.2016 14:45

    этот сигнал вполне может иметь вид вроде 011000000000011. Электромагнитная волна такой «формы» будет плохо как передаваться, так и декодироваться. Надо получить сигнал как можно ближе к «классической» синусоиде нужной частоты.
    Полагаю, это потому, что спектр такого сигнала будет иметь весьма приличную постоянную составляющую, которая не будет пропущена через НЧ-каскады приёмника. В результате форма сигнала искривится настолько, что его невозможно будет декодировать.

    PS: ещё маленькую ошибочку заметил:
    его частота составляет соответственно 18*3 = 57КГц
    не 18, а 19 кГц.


    1. DmitrySpb79
      11.06.2016 15:31
      +1

      Спасибо, исправил.


    1. Psychosynthesis
      12.06.2016 01:49

      «Полагаю, это потому, что спектр такого сигнала будет иметь весьма приличную постоянную составляющую, которая не будет пропущена через НЧ-каскады приёмника.»

      Интересное предположение, я думаю это скорее к вопросу о том как в системе передачи реализовано кодирование нуля. Так как НЧ-фильтр с узкой полосой в приёмнике используется, как я себе представляю, ещё до того места где появляется декодированный цифровой сигнал. А ноль должен модулироваться какой-то несущей с небольшим отклонением от центральной частоты, т.е. проходить все фильтры без проблем (если только это не OOK какой-нибудь).

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


      1. jok40
        12.06.2016 10:52

        Я несколько не то имел в виду. Говоря про НЧ-каскады я имел в виду не НЧ, а ВЧ-фильтр, который представляют из себя обычные разделительные конденсаторы. Они то и отрубят постоянку в уже демодулированном сигнале. Поэтому чем меньше её будет исходно, тем лучше сохранится форма сигнала, подаваемого на вход декодера. Соответственно и количество ошибок декодирования такого сигнала будет меньше, несмотря на большее количество выполняемых операций.


        1. Psychosynthesis
          12.06.2016 14:06

          В схеме, там сигнал уже демодулирован, разделительные кондеры не ставят, поскольку там уровень единицы это просто постоянное напряжение.


      1. AleXP3
        12.06.2016 19:53
        +3

        Манчестерское кодирование необходимо когда на приёмном конце синхронизация идёт от сигнала и недопустимы долгие паузы при передаче например нуля так как приёмник может рассинхронизироваться. При манчестерском кодировании несущая частота сигнала может плавать в диапазоне ± 25%, но сбоя не будет. В общем это код с максимально возможной плотностью и самосинхронизацией.

        Кроме того: в этой системе кодирования нет постоянной составляющей, что тоже иногда важно.

        В своё время, когда в стране ещё не было беспроводной материковой телефонной связи, манчестерское кодирование было «наше всё». Оно применялось для прогона телефонного сигнала через всю страну: от Калининграда до, например, Владивостока. В Яндексе смотрим по словосочетанию «НРП (необслуживаемый регенерационный пункт)». По каждой паре проводов в магистральном кабеле и сигнал, в манчестерском кодировании, передавался и постоянным током усилители и конвертеры НРП запитывалась. Конечно временная задержка на перекодирование на таких расстояниях ощущалась, но говорить вполне сносно можно было так как полезный сигнал почти не терялся. Да и потери, если всё же и происходят, то несут линейный, а не пакетный характер. Ну подумаешь щёлкнуло что-то раз в минуту в трубке.

        Можно даже глянуть: vgil.ru/2015/08/27/nup-neobsluzhivaemye-regeneracionnye-usilitelnye-punkty И картинки в Яндексе по теме НРП/НУП тоже интересные есть.


        1. jok40
          13.06.2016 04:10

          Большое Вам спасибо за столь детальное и развёрнутое объяснение!


        1. Psychosynthesis
          13.06.2016 20:03

          Спасибо, понятно!


  1. OtshelnikFm
    11.06.2016 15:59
    +1

    в 2000-е паял FM передатчик (на тот момент на фм вещала одна радиостанция). Вещал на свой маленький городок. И захотелось мне вещать в стерео формате. Схема на тот момент была адски сложная (12 или 14 микросхем). В итоге я обманул приемник тупо подав 19 килогерц. Лампочка «Стерео» на потребительских приемниках загоралась. Хотя звук был в моно режиме))


    1. jok40
      11.06.2016 16:51

      Интересно — что означает «тупо подав»? По идее, если к аудиосигналу просто добавить тон 19 КГц, то в этом случае звук в приёмнике должен был пропасть — ведь Ваш передатчик вещал только моно сигнал — ниже 15 КГц, а в полосе от 23 до 53 КГц (там, где находятся левый и правый стерео-каналы) была тишина.


      1. DmitrySpb79
        11.06.2016 17:05
        +1

        Наверное на приемной стороне был такой же китайский «псевдостерео» магнитофон, который реально ловил моно :))) В итоге получилась полная совместимость.

        А вообще да, интересно, звук в итоге был с одной колонки или с 2х.


        1. jok40
          11.06.2016 17:19

          Кажется я понял. Думаю, что для воспроизведения стереосигнала приёмник формирует стерео-каналы как разность между 0-15 КГц и одной из двух полос 23-38 КГц или 38-53 КГц. В этом случае звук будет всегда. Надо будет глянуть в какой-нибудь справочник по FM-вещанию — уточнить.


        1. OtshelnikFm
          11.06.2016 17:22

          Звук был из 2х колонок монофонический. Индикатор стерео горел. А вот переключив этот приемник на стереорадиостанцию — слышится стерео звук. В рекламе он глубже. Так что приемник не псевдо стерео. Просто я его так обманул. Это практика — как так в теории — не знаю. Но на опыте было именно так.
          Если амплитуду моно сигнала прибавлять на вход передатчика — то индикатор ни пиках моргал. Поэтому добивался такого уровня моно сигнала, при котором индикатор стерео не уходил из своего режима.


      1. OtshelnikFm
        11.06.2016 17:24

        Это и значит — подаем моно сигнал на вход передатчика и туда же миксуем 19 килогерц. Приемник переходил в стерео. В колонках же обоих было моно.


      1. Sergey_datex
        11.06.2016 19:01
        +2

        Как раз в обоих каналах будет моносигнал, но противофазный.
        На основной несущей в стереорежиме ожидается, что будет сумма левого и правого, а на дополнительной поднесущей — разность. Стереоприемник вычитает оба выделенных сигнала друг из друга поочередно, получая две разности. Так как дополнительной поднесущей нет, и сигнала там нет, то сигнал продублируется в левый и правый канал в противофазе


    1. Denis_Minin
      11.06.2016 16:59

      Изобретательно придумал


    1. DmitrySpb79
      11.06.2016 17:29
      +1

      В небольших городах действительно FM-вещания не было. Я первый FM-радиоприемник купил в ларьке наверное в 95м году в Питере. Помнится, приехал с ним в Новгород к родителям, и станций было 0, но были слышны чьи-то разговоры по радиотелефонам.

      До сих пор не пойму откуда они могли взяться на 88-108, вроде же не было трубок на такие частоты.


      1. OtshelnikFm
        11.06.2016 17:31
        +2

        Это гармоники. Они пролазиют от плохих радио телефонов — у которых ради мощности отсутствуют п-образные фильтры в усилителе.


      1. daggert
        11.06.2016 23:32

        Однажды я настраивал телевизионную антенну, домашнюю, и успешно прослушал разговор (односторонний почему-то) соседа через пару этажей (:


      1. vorphalack
        13.06.2016 07:46

        вторая гармоника от хренового радиотелефона стандарта CT0, например — http://qrv.su/index.php?action=issues&issue=177


    1. Alexeyslav
      13.06.2016 09:50
      +1

      Можно было собрать схему попроще, была тогда ещё популярна схема на коммутаторе 561КТ1 — простая до безобразия — на вход коммутируются два канала с частотой 38кГц, и отдельным каналом добавляется пилот-тон через фазосдвигающую цепочку, сдвигом фазы добиваются максимального разделения каналов.
      Собрал — работает, только разделение каналов не такое идеальное как хотелось бы.
      Досихпор этот передатчик валяется в корпусе от 5-дюймового дисковода.


  1. SandmanBrest
    13.06.2016 20:36
    +1

    Хотелось бы добавить, что на более высоком уровне RDS имеет несколько функций.

    5 настроечных (Tuning functions):

    PI: Programme identification
    PS: Programme service name
    AF: List of alternative frequencies
    TP: Traffic programme identification
    PTY: Programme type
    EON: Enhanced other networks information

    и 11 дополнительных:

    TA: Traffic announcement identification flag
    DI: Decoder identification
    M/S: Music/speech switch
    PIN: Programme item number
    RT/RT+/eRT: Radiotext/radiotext plus/enhanced radiotext
    TDC: Transparent data channel
    IH: In-house applications
    CT: Date and time
    RP: Radio paging
    ODA: Open data application
    TMC: Traffic message channel

    Последний очень активно и весьма успешно используется в автомобильных навигаторах в западной Европе.

    В частности навигаторы Becker работающие на Windows CE используют эту функцию.


  1. SandmanBrest
    13.06.2016 21:02

    И, да, RDS-TMC был в свое время взломан хакерами.


  1. Vanderas
    14.06.2016 11:18
    +1

    В своё время, в теперь уже далёком 2006 году, писал дипломный проект по разработке бытового радиоприёмника с системой RDS. Тогда эта система в России только начала зарождаться и тема для меня была интересной, и я сам предложил на кафедру писать дипломный проект на эту тему. Возможности RDS очень широкие, жаль что наши радиостанции не используют эту систему на всю катушку, в частности ради наживы они не вещают наименование композиции и имя исполнителя, т.к. имеют у себя услугу «Хочешь узнать кто поёт — отправь СМС с кодом на такой-то номер»… Спекулянты, млин. Когда-то на «Радио 7» в моём городе вещали наименование композиции и исполнителя, причём это были включения в эфир местной студии, и была у них викторина — нужно угадать исполнителя и название песни, которая будет звучать после объявления викторины ведущим и надо было отправить СМС с именем и названием в студию на их номер. Так вот, во время того как включали эту «секретную» композицию бегущей строкой по RDS транслировались эти секретные имя исполнителя и название композиции ))) Я тогда в этой викторине несколько раз выигрывал билеты в кино, и один раз даже выиграл билеты на концерт В. Кипелова.
    В одном случае я смог отгадать исполнителя и название композиции только благодаря бегущей строке RDS )) в остальных случаях отгадывал сам, т.к. на Радио 7 зачастую репертуар весьма известный. Потом наименования исполнителя и композиции бегущей строкой отключили, т.е. перестали вещать. Сейчас почти на всех радиостанциях в RDS видно только номер телефона для размещения рекламы, транслируется время, наименование радиостанции и в лучшем случае город — откуда идёт эфир. Плохо, что такую интересную функцию как RDS не развили.