СДР ДВБ-Т2 пријемник у Ц++

Софтверски дефинисани радио је метод замене металних радова (који су заправо добри за ваше здравље) главобољом програмирања. СДР-ови предвиђају велику будућност и главном предношћу се сматра уклањање ограничења у имплементацији радио протокола. Пример је ОФДМ (Ортхогонал Фрекуенци-дивисион мултиплекинг) метод модулације, који је омогућен само СДР методом. Али СДР такође има још једну, чисто инжењерску прилику - могућност контроле и визуелизације сигнала у било којој произвољној тачки уз најмање напора.

Један од занимљивих комуникационих стандарда је земаљска земаљска телевизија ДВБ-Т2.
За шта? Наравно, можете једноставно да укључите ТВ без устајања, али ту нема апсолутно шта да се гледа и ово више није моје мишљење, већ медицинска чињеница.

Озбиљно, ДВБ-Т2 је дизајниран са веома широким могућностима, укључујући:

  • унутрашња примена
  • модулација од КПСК до 256КАМ
  • пропусни опсег од 1,7МХз до 8МХз

Имам искуство у пријему дигиталне телевизије по принципу СДР. ДВБ-Т стандард је у познатом пројекту ГНУРадио. Постоји гр-двбс2рк блок за ДВБ-Т2 стандард (све за исти ГНУРадио), али захтева прелиминарну синхронизацију сигнала и то је инспиративно (посебно хвала Рону Ецономосу).

Оно што имамо.

Постоји стандард ЕТСИ ЕН 302 755 који детаљно описује пренос, али не и пријем.

Сигнал је у ваздуху са фреквенцијом узорковања од 9,14285714285714285714 МХз, модулисан ЦОФДМ са 32768 носилаца, у опсегу од 8 МХЗ.

Препоручљиво је примати такве сигнале са дупло већом фреквенцијом узорковања (да ништа не би изгубили) и на средњој фреквенцији са већим пропусним опсегом (суперхетеродински пријем), да бисте се ослободили офсета једносмерне струје (ДЦ) и „цурења“ локалног осцилатора (ЛО) на улаз пријемника. Уређаји који задовољавају ове услове су прескупи за пуку радозналост.

СдрПлаи са 10Мспс 10бит или АирСпи са сличним карактеристикама је много јефтинији. Овде нема говора о двострукој фреквенцији узорковања и пријем се може обавити само директном конверзијом (нула ИФ). Стога (из финансијских разлога) прелазимо на страну присталица „чистог“ СДР-а уз минималну хардверску конверзију.

Било је потребно решити два проблема:

  1. Синхронизација. Сазнајте тачно фазно тачну РФ девијацију и девијацију фреквенције узорковања.
  2. Препишите ДВБ-Т2 стандард уназад.

Други задатак захтева много више кода, али се може решити истрајношћу и лако се може проверити коришћењем тест сигнала.

Тест сигнали су доступни на ББЦ серверу фтп://фтп.кв.ббц.цо.ук/т2рефс/ са детаљним упутствима.

Решење првог проблема у великој мери зависи од карактеристика СДР уређаја и његових могућности управљања. Коришћење препоручених функција контроле фреквенције, како кажу, није било успешно, али је дало много искуства читајући их. документација, програмирање, гледање ТВ серија, решавање филозофских питања..., укратко, није било могуће одустати од пројекта.

Вера у „чисто СДР“ је само јачала.

Узимамо сигнал какав јесте, интерполирамо га скоро до аналогног и вадимо дискретни, али сличан стварном.

Блок дијаграм синхронизације:

СДР ДВБ-Т2 пријемник у Ц++

Овде је све по уџбенику. Следеће је мало компликованије. Одступања треба израчунати. Постоји много литературе и истраживачких чланака који упоређују предности и недостатке различитих метода. Од класика - ово је „Мицхаел Спетх, Стефан Фецхтел, Гуннар Фоцк, Хеинрицх Меир, Оптимални дизајн пријемника за ОФДМ-базирани широкопојасни пренос – И и ИИ део.” Али нисам срео ниједног инжењера који може и жели да рачуна, па је коришћен инжењерски приступ. Користећи исти метод синхронизације, у тестни сигнал је уведено деподешавање. Упоређивањем различитих метрика са познатим одступањима (он их је сам увео), изабрани су најбољи за перформансе и лакоћу имплементације. Девијација пријемне фреквенције се израчунава упоређивањем заштитног интервала и његовог понављајућег дела. Фаза пријемне фреквенције и фреквенција узорковања се процењују из фазне девијације пилот сигнала и ово се такође користи у једноставном, линеарном еквилајзеру ОФДМ сигнала.

Карактеристике еквилајзера:

СДР ДВБ-Т2 пријемник у Ц++

И све ово добро функционише ако знате када почиње ДВБ-Т2 оквир. Да би се то урадило, симбол преамбуле П1 се преноси у сигналу. Метода за откривање и декодирање симбола П1 је описана у Техничкој спецификацији ЕТСИ ТС 102 831 (постоји и много корисних препорука за пријем).

Аутокорелација сигнала П1 (највиша тачка на почетку кадра):

СДР ДВБ-Т2 пријемник у Ц++

Прва слика (још само шест месеци до покретне слике...):

СДР ДВБ-Т2 пријемник у Ц++

И овде сазнајемо шта су ИК неравнотежа, ДЦ оффсет и ЛО цурење. По правилу, компензација ових изобличења специфичних за директну конверзију се имплементира у управљачком програму СДР уређаја. Стога је требало много времена да се схвати: избацивање звезда из пријатељског сазвежђа КАМ64 је дело компензационих функција. Морао сам све да искључим и напишем свој бицикл.

А онда се слика померила:

СДР ДВБ-Т2 пријемник у Ц++

КАМ64 модулација са специфичном ротацијом констелације у ДВБ-Т2 стандарду:

СДР ДВБ-Т2 пријемник у Ц++

Укратко, ово је резултат пропуштања млевеног меса назад кроз машину за млевење меса. Стандард предвиђа четири врсте мешања:

  • бит интерлеавинг
  • преплитање ћелија (мешање ћелија у блок кодирања)
  • временско преплитање (такође је у групи блокова кодирања)
  • фреквентно преплитање (мешање фреквенције у ОФДМ симболу)

Као резултат, имамо следећи сигнал на улазу:

СДР ДВБ-Т2 пријемник у Ц++

Све ово је борба за отпорност на буку кодираног сигнала.

Укупан

Сада можемо видети не само сам сигнал и његов облик, већ и сервисне информације.
Постоје два мултиплекса у ваздуху. Сваки има два физичка канала (ПЛП).

У првом мултиплексу је примећена једна необичност – први ПЛП је означен као „вишеструки“, што је логично, пошто их има више од једног у мултиплексу, а други ПЛП је означен као „сингле“ и ово је питање.
Још интересантнија је друга необичност у другом мултиплексу - сви програми су у првом ПЛП-у, али у другом ПЛП-у постоји сигнал непознате природе при малој брзини. Бар ВЛЦ плејер, који разуме педесетак видео формата и исто толико звука, то не препознаје.

Сам пројекат можете пронаћи овде.

Пројекат је креиран са циљем да се утврди сама могућност декодирања ДВБ-Т2 помоћу СдрПлаи-а (а сада и АирСпи.), тако да ово није ни алфа верзија.

ПС Док сам с муком писао чланак, успео сам да интегришем ПлутоСДР у пројекат.

Неко ће одмах рећи да постоји само 6Мспс за ИК сигнал на УСБ2.0 излазу, али вам треба најмање 9,2Мспс, али ово је посебна тема.

Извор: ввв.хабр.цом

Додај коментар