Как стать автором
Обновить

Комментарии 80

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

Прошу прощения но таблицы кодирования и декодирования одинаковы, хотя написано «Для декодирования используется другая таблица:», так и должно быть?
Да, таблицы по сути одинаковые, заголовки таблиц разные. Для кодирования берется новый входной и предыдущий выходной биты.
Так яснее, спасибо
пусть передаваемое сообщение — 0010100. Кодируем его по данной таблице, получаем 0011000.

Поясните, пожалуйста, как вы это получили. По вашему алгоритму должно быть 011110.
0, 0+0=0, 1+0 =1,0+1=1,1+1=0… Нужно ксорить входной бит с последним ВЫХОДНЫ битом, а не входные биты между собой
Дилетантский вопрос: почему, когда радиоприемник в состоянии «RDS Search», то пропадает радио сигнал?
Очевидно, приемник ищет во всем FM диапазоне станции, соответствующие заданному жанру/критерию. Многие приемники имеют такую функцию.
В различных регионах радиостанции могут вести вещание на разных частотах, видимо приёмник запоминает название станции полученное из RDS и если теряет сигнал (или по команде пользователя, или название вдруг меняется), то он начинает сканировать весь диапазон станций и искать частоту на которой в RDS попадётся такое же название станции, которое и было до этого. Из-за того что приёмник только один, то он не в состоянии одновременно сканировать и продолжать вещание на выбранной частоте.
Скажем так, это не стандартная функция RDS приёмников.
Мало того, крайне редко в соседних регионах станции вещают на одной и той же частоте, это сделано по многим причинам, программы в разных регионах могут отличаться (врезка местных новостей, погоды пробок, рекламы и т.п.), как поведёт себя приёмник получив 2 «разных» сигнала на одной частоте предсказать невозможно. Чтобы избежать этих эффектов для RDS придумали такую штуку как AF (Alternative Frequencies list — список альтернативных частот) по RDS также передаются частоты, на которых работает радиостанция в соседних регионах, если сигнал на этих частотах становится сильнее сигнала, принимаемого в данный момент, приемник автоматически переключится на эту частоту. К сожалению очень не многие из вещателей заполняют AF, как пример можно привести Дорожное Радио, им разрешили вешать маломощные 20-50 Вт ( в Мск мощность FM передатчиков 5-15 кВт) передатчики вдоль некоторых федеральных трасс, вот там именно через AF сделан «бесшовный роуминг».
Автор, исправьте в статье под картинкой с спектром сигнала:
На основной несущей передается сумма левого и правого каналов, на дополнительной поднесущей — разность.
Из этих двух сигналов выделяется левый и правый. В готовом виде в эфире левого и правого — нет.
Спасибо, поправил.
А зачем под L+R выделена полоса 15КГц (0-15), а для L-R — в 2 раза больше, 30КГц (23-53)?
Чего этим добиваются или какую проблему решают?
И как их потом суммировать для выделения отдельного левого и правого канала, если ширина полос разная?
Не специалист, но предположу, что полоса одинакова. Для основного канала -15...+15, для дополнительного 23...53.
Для упрощения на рисунке показана только одна боковая полоса.
Собственно идея совместимого стереовещания такова: 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 и давили ее частично (что позволяло её восстановить узкополосным фильтром), пилот-тона не было.

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

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

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

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

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

image

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

Как уже подсказали, на картинке сигнал после ЧМ-декодера, а оригинальная частота, на которую надо настраиваться, в данном примере 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.

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

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


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

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

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

RADIO STAFF 99.4 FM, Купчино, Санкт-Петербург, Россия?
А что за подозрительно мощный и узкий всплеск на 99.993 МГц?
Хз, просто какая-то помеха. Сейчас производители устройств практически забили на EMI и побочные излучения, а к примеру, дорожка на материнской плате, по которой проходит прямоугольный сигнал с частотой 100МГц, вполне будет излучать этот сигнал в эфир. Или ШИМ-подсветка монитора, да что угодно может быть.
По крайней мере на RTL-SDR на частоте настройки (посередине) всегда такой всплеск, какую бы частоту не выбрал.
Не всегда. Если не ошибаюсь, такие всплески встречаются на определенных частотах и с определенным интервалом, а источником их происхождения является локальный осциллятор.
Всплеск от осциллятора можно найти каждые 28.8МГц. Таких сигналов можно много найти — импульсный преобразователь на самой плате донгла, импульсные помехи, передающиеся по линии питания от хоста, другие блоки питания находящиеся просто поблизости.

Кстати, самым шумным устройством, на которое поначалу и не подумаешь, оказался автомобильный видеорегистратор, который будучи выключенным шумел так, что у портативной станции в радиусе пары метров полностью забивался приёмник.
Дело тут в качестве исполнения. Тоже мучаюсь со своим региком в машине, шумит сильно в радио. В городе не заметно, а на трассе на пределе радиовещания очень сильный шум.
В SDR# есть галочка «Correct IQ» которая данный всплеск глушит. Без этой галочки данный всплеск будет видно ровно посередине спектра вне зависимости от частоты настройки.
Я в машине слушаю музыку обычно по Bluetooth. Иногда магнитола сама переключается на радио, где говорят от трафике. Как это реализовано? и как отлючить? :) в настройкха магнитолы на первый взгляд такой настройки не увидел.
Это «Traffic announcement», передается через RDS. Для отключения поищите в настройках по аббревиатуре TA, или бывает отдельная кнопка с той-же надписью.
этот сигнал вполне может иметь вид вроде 011000000000011. Электромагнитная волна такой «формы» будет плохо как передаваться, так и декодироваться. Надо получить сигнал как можно ближе к «классической» синусоиде нужной частоты.
Полагаю, это потому, что спектр такого сигнала будет иметь весьма приличную постоянную составляющую, которая не будет пропущена через НЧ-каскады приёмника. В результате форма сигнала искривится настолько, что его невозможно будет декодировать.

PS: ещё маленькую ошибочку заметил:
его частота составляет соответственно 18*3 = 57КГц
не 18, а 19 кГц.
Спасибо, исправил.
«Полагаю, это потому, что спектр такого сигнала будет иметь весьма приличную постоянную составляющую, которая не будет пропущена через НЧ-каскады приёмника.»

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

На самом деле, я не назвал бы себя большим специалистом и мне самому интересно почему в данном случае это не хорошо. Думаю преимущества манчестерского кодирования в том, что при его использовании вероятность получить ошибку ниже вследствие большего числа передаваемых импульсов (при условии, что вероятность правильного считывания каждого из импульсов выше 0.5), а доказывается это какой-нибудь страшной длинной формулой. Но это, опять же, всего лишь мои предположения.
Я несколько не то имел в виду. Говоря про НЧ-каскады я имел в виду не НЧ, а ВЧ-фильтр, который представляют из себя обычные разделительные конденсаторы. Они то и отрубят постоянку в уже демодулированном сигнале. Поэтому чем меньше её будет исходно, тем лучше сохранится форма сигнала, подаваемого на вход декодера. Соответственно и количество ошибок декодирования такого сигнала будет меньше, несмотря на большее количество выполняемых операций.
В схеме, там сигнал уже демодулирован, разделительные кондеры не ставят, поскольку там уровень единицы это просто постоянное напряжение.
НЛО прилетело и опубликовало эту надпись здесь
Большое Вам спасибо за столь детальное и развёрнутое объяснение!
Спасибо, понятно!
в 2000-е паял FM передатчик (на тот момент на фм вещала одна радиостанция). Вещал на свой маленький городок. И захотелось мне вещать в стерео формате. Схема на тот момент была адски сложная (12 или 14 микросхем). В итоге я обманул приемник тупо подав 19 килогерц. Лампочка «Стерео» на потребительских приемниках загоралась. Хотя звук был в моно режиме))
Интересно — что означает «тупо подав»? По идее, если к аудиосигналу просто добавить тон 19 КГц, то в этом случае звук в приёмнике должен был пропасть — ведь Ваш передатчик вещал только моно сигнал — ниже 15 КГц, а в полосе от 23 до 53 КГц (там, где находятся левый и правый стерео-каналы) была тишина.
Наверное на приемной стороне был такой же китайский «псевдостерео» магнитофон, который реально ловил моно :))) В итоге получилась полная совместимость.

А вообще да, интересно, звук в итоге был с одной колонки или с 2х.
Кажется я понял. Думаю, что для воспроизведения стереосигнала приёмник формирует стерео-каналы как разность между 0-15 КГц и одной из двух полос 23-38 КГц или 38-53 КГц. В этом случае звук будет всегда. Надо будет глянуть в какой-нибудь справочник по FM-вещанию — уточнить.
Звук был из 2х колонок монофонический. Индикатор стерео горел. А вот переключив этот приемник на стереорадиостанцию — слышится стерео звук. В рекламе он глубже. Так что приемник не псевдо стерео. Просто я его так обманул. Это практика — как так в теории — не знаю. Но на опыте было именно так.
Если амплитуду моно сигнала прибавлять на вход передатчика — то индикатор ни пиках моргал. Поэтому добивался такого уровня моно сигнала, при котором индикатор стерео не уходил из своего режима.
Это и значит — подаем моно сигнал на вход передатчика и туда же миксуем 19 килогерц. Приемник переходил в стерео. В колонках же обоих было моно.
Как раз в обоих каналах будет моносигнал, но противофазный.
На основной несущей в стереорежиме ожидается, что будет сумма левого и правого, а на дополнительной поднесущей — разность. Стереоприемник вычитает оба выделенных сигнала друг из друга поочередно, получая две разности. Так как дополнительной поднесущей нет, и сигнала там нет, то сигнал продублируется в левый и правый канал в противофазе
Изобретательно придумал
В небольших городах действительно FM-вещания не было. Я первый FM-радиоприемник купил в ларьке наверное в 95м году в Питере. Помнится, приехал с ним в Новгород к родителям, и станций было 0, но были слышны чьи-то разговоры по радиотелефонам.

До сих пор не пойму откуда они могли взяться на 88-108, вроде же не было трубок на такие частоты.
Это гармоники. Они пролазиют от плохих радио телефонов — у которых ради мощности отсутствуют п-образные фильтры в усилителе.
Однажды я настраивал телевизионную антенну, домашнюю, и успешно прослушал разговор (односторонний почему-то) соседа через пару этажей (:
вторая гармоника от хренового радиотелефона стандарта CT0, например — http://qrv.su/index.php?action=issues&issue=177
Можно было собрать схему попроще, была тогда ещё популярна схема на коммутаторе 561КТ1 — простая до безобразия — на вход коммутируются два канала с частотой 38кГц, и отдельным каналом добавляется пилот-тон через фазосдвигающую цепочку, сдвигом фазы добиваются максимального разделения каналов.
Собрал — работает, только разделение каналов не такое идеальное как хотелось бы.
Досихпор этот передатчик валяется в корпусе от 5-дюймового дисковода.
Хотелось бы добавить, что на более высоком уровне 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 используют эту функцию.
И, да, RDS-TMC был в свое время взломан хакерами.
В своё время, в теперь уже далёком 2006 году, писал дипломный проект по разработке бытового радиоприёмника с системой RDS. Тогда эта система в России только начала зарождаться и тема для меня была интересной, и я сам предложил на кафедру писать дипломный проект на эту тему. Возможности RDS очень широкие, жаль что наши радиостанции не используют эту систему на всю катушку, в частности ради наживы они не вещают наименование композиции и имя исполнителя, т.к. имеют у себя услугу «Хочешь узнать кто поёт — отправь СМС с кодом на такой-то номер»… Спекулянты, млин. Когда-то на «Радио 7» в моём городе вещали наименование композиции и исполнителя, причём это были включения в эфир местной студии, и была у них викторина — нужно угадать исполнителя и название песни, которая будет звучать после объявления викторины ведущим и надо было отправить СМС с именем и названием в студию на их номер. Так вот, во время того как включали эту «секретную» композицию бегущей строкой по RDS транслировались эти секретные имя исполнителя и название композиции ))) Я тогда в этой викторине несколько раз выигрывал билеты в кино, и один раз даже выиграл билеты на концерт В. Кипелова.
В одном случае я смог отгадать исполнителя и название композиции только благодаря бегущей строке RDS )) в остальных случаях отгадывал сам, т.к. на Радио 7 зачастую репертуар весьма известный. Потом наименования исполнителя и композиции бегущей строкой отключили, т.е. перестали вещать. Сейчас почти на всех радиостанциях в RDS видно только номер телефона для размещения рекламы, транслируется время, наименование радиостанции и в лучшем случае город — откуда идёт эфир. Плохо, что такую интересную функцию как RDS не развили.
А какой тип модуляции используется после манчестерского кодирования? Амплитудная, фазовая?
Разобрался. Фазовая. Модуляция амплитуды нужна для подавления несущей, но даже если она постоянная, приемник принимает данные нормально.

The subcarrier is amplitude-modulated by the shaped and biphase coded data signal. The subcarrier is suppressed. This method of modulation may alternatively be thought of as a form of two-phase phase shift keying (PSK) with a phase deviation of ±90°.
Очень интересная статья. Особенно впечатлил GNU Radio. Похожие несложные операции с записанными сигналами я когда-то давно проделывал в Adobe Audition 1.5 (сложение, умножение, фильтрация и т.д.), догадавшись самостоятельно. В том числе и с i/q (комплексными) сигналами, записанные с SDR, выделяя нужные мне участки. ЦОС вещь вообще очень увлекательная интересная.

Как часто приходят данные по RDS? Сколько байт в секунду?

Возможности RDS - 1,1875 кбит/с, но учитывая минимальное количество транслируемой информации, то там ресурс ещë огромный.

В России вообще передают RDS поток?

Некоторые радиостанции вещают с RDS. Но как я уже писал, в основном это наименование станции, номер телефона для размещения рекламы, время, где-то частоту вещания и город.

В самом деле есть RDS трафик.
Но не на всех станциях. И данные RDS приходят по крупицам.

Иногда в RDS мелькает название песни

А вот время выхватить из RDS было бы очень полезно для автоматической настройки часов реального времени (RTC).
Часто ли приходит время по RDS?

не встречал ни разу. И даже если бы оно приходило, то не факт, что оно правильное.


В спецификации RDS протокола

есть описание структуры пакета с временем.


ты сам то в это веришь? большая часть машин часики сверяет по рдс'у, и назнвания станций от туда же

Что верить @vitecd ? Возьми сам да проверь. Нет времени по RDS в MSK. Это факт.

В Москве 51 радиостанция, передающая RDS, из них время в RDS (параметр CT) передают 34.
Из них правильное время у 26 станций, у остальных дрифт от +1 минуты до -46 минут

Разумеется это FM-радио, в данном случае контрольный приёмник Deva DB44 .

Если CT в энкодере включено, оно передаётся в группе 4A автоматически, отдельно от создаваемой пользователем секвенции групп, в которую вставляют PI, PS, RT и т.п. (Group 4A, 14B and 15B are not allowed in Group Sequence, they are generated automatically) - и гораздо реже основной секвенции. Думаю, вы не находили CT потому что нужно было подождать минуты 2-3.

А Вы можете проверить, что и какие радиостанции посылаю по DTMF?

Головные радиостанции вставляют в свою программу четырёхзначные DTMF-коды, которые используются региональными радиостанциями как команды перехода с ретрансляции на собственный эфир (фр. decrochage) и обратно на ретрансляцию (recrochage): эфирный софт региональных станций их определяет и включает местную рекламу, новости и т.п. Чтобы софт не путался, коды на вход и выход из собственного вещания как правило делают разные.

В Москве DTMF-коды не используются и просто звучат в эфире, потому что эта же самая* программа и отдаётся для ретрансляции.

Он стерео сигнал распознаёт? без стерео не будет и RDS. RDS работает синхронно с стереодекодером, и если нет синхронизации стереонесущей, нет и приема цифры. Допуск там +-2..3Гц если частота кварца поплыла, он может не захватывать несущую и следовательно всё остальное работать не будет. Точности частоты может хватить на настройку на станцию, а выделить стереосигнал - нет.

Принимать Si4737 RDS умеет. Видно как распознаются названия песенок, телефоны радиостанций. Просто никакие радиостанции не присылают точное время.

Про тестирование RDS в Москве у меня есть отдельный текст
https://habr.com/ru/articles/687898/

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории