SDR DVB-T2 ընդունիչ C++-ով

Software Defined Radio-ն մետաղական աշխատանքը (որն իրականում օգտակար է ձեր առողջության համար) ծրագրավորման գլխացավով փոխարինելու մեթոդ է: SDR-ները մեծ ապագա են կանխատեսում, և հիմնական առավելությունը համարվում է ռադիոարձանագրությունների իրականացման սահմանափակումների վերացումը։ Օրինակ է OFDM (Orthogonal frequency-division multiplexing) մոդուլյացիայի մեթոդը, որը հնարավոր է դառնում միայն SDR մեթոդով։ Բայց SDR-ն ունի ևս մեկ, զուտ ինժեներական հնարավորություն՝ ցանկացած կամայական կետում ազդանշանը նվազագույն ջանքերով վերահսկելու և պատկերացնելու հնարավորություն:

Հետաքրքիր կապի ստանդարտներից է ցամաքային ցամաքային հեռուստատեսությունը DVB-T2:
Ինչի համար? Իհարկե, կարելի է պարզապես միացնել հեռուստացույցը՝ առանց վեր կենալու, բայց այնտեղ դիտելու բացարձակապես ոչինչ չկա, և սա արդեն իմ կարծիքը չէ, այլ բժշկական փաստ։

Լրջորեն, DVB-T2-ը նախագծված է շատ լայն հնարավորություններով, ներառյալ.

  • ներսի կիրառություն
  • մոդուլյացիա QPSK-ից մինչև 256QAM
  • թողունակությունը 1,7 ՄՀց-ից մինչև 8 ՄՀց

Ես թվային հեռուստատեսություն ստանալու փորձ ունեմ SDR սկզբունքով: DVB-T ստանդարտը հայտնի GNURadio նախագծում է: Կա gr-dvbs2rx բլոկ DVB-T2 ստանդարտի համար (բոլորը նույն GNURadio-ի համար), բայց այն պահանջում է ազդանշանի նախնական համաժամացում և ոգեշնչող է (հատուկ շնորհիվ Ռոն Էկոնոմոսի):

Այն, ինչ մենք ունենք։

Կա ETSI EN 302 755 ստանդարտ, որը մանրամասնում է փոխանցումը, բայց ոչ ընդունումը:

Ազդանշանը եթերում է 9,14285714285714285714 ՄՀց նմուշառման հաճախականությամբ, մոդուլացված COFDM-ի կողմից 32768 կրիչներով, 8 ՄՀց տիրույթում:

Խորհուրդ է տրվում նման ազդանշաններ ստանալ կրկնակի նմուշառման հաճախականությամբ (որպեսզի ոչինչ չկորցնեք) և միջանկյալ հաճախականությամբ ավելի մեծ թողունակությամբ (գերհետերոդինային ընդունում), ձերբազատվեք ուղղակի հոսանքի (DC) օֆսեթից և տեղական օսլիլատորի «արտահոսքից»։ (LO) ստացողի մուտքին: Այս պայմանները բավարարող սարքերը չափազանց թանկ են զուտ հետաքրքրասիրության համար:

SdrPlay-ը 10Msps 10bit կամ AirSpy-ը նմանատիպ բնութագրերով շատ ավելի էժան է: Այստեղ նմուշառման կրկնակի հաճախականության մասին խոսք չկա, և ընդունումը կարող է կատարվել միայն ուղղակի փոխակերպմամբ (Zero IF): Հետևաբար (ֆինանսական պատճառներով) մենք անցնում ենք «մաքուր» SDR-ի կողմնակիցների կողմը՝ ապարատային նվազագույն փոխակերպմամբ:

Անհրաժեշտ էր լուծել երկու խնդիր.

  1. Համաժամացում. Պարզեք ճշգրիտ փուլային ճշգրիտ ՌԴ շեղումը և նմուշառման հաճախականության շեղումը:
  2. Վերաշարադրեք DVB-T2 ստանդարտը դեպի հետ:

Երկրորդ խնդիրը պահանջում է շատ ավելի շատ կոդ, բայց կարող է լուծվել հաստատակամությամբ և հեշտությամբ ստուգվել՝ օգտագործելով թեստային ազդանշաններ:

Փորձարկման ազդանշանները հասանելի են BBC սերվերում ftp://ftp.kw.bbc.co.uk/t2refs/ մանրամասն հրահանգներով:

Առաջին խնդրի լուծումը մեծապես կախված է SDR սարքի բնութագրերից և դրա կառավարման հնարավորություններից: Առաջարկվող հաճախականության կառավարման գործառույթների օգտագործումը, ինչպես ասում են, հաջող չէր, բայց դրանք կարդալու մեծ փորձ տվեց: փաստաթղթավորում, ծրագրավորում, սերիալներ դիտում, փիլիսոփայական հարցեր լուծում..., մի խոսքով, հնարավոր չէր հրաժարվել նախագծից։

«Մաքուր SDR»-ի նկատմամբ հավատը միայն ավելի է ուժեղացել:

Ազդանշանը վերցնում ենք այնպես, ինչպես որ կա, ներդիրում ենք գրեթե անալոգային և հանում դիսկրետ, բայց իրականին նման:

Համաժամացման բլոկային դիագրամ.

SDR DVB-T2 ընդունիչ C++-ով

Այստեղ ամեն ինչ դասագրքի համաձայն է։ Հաջորդը մի փոքր ավելի բարդ է: Պետք է հաշվարկել շեղումները: Կան բազմաթիվ գրականություն և հետազոտական ​​հոդվածներ, որոնք համեմատում են տարբեր մեթոդների առավելություններն ու թերությունները: Դասականներից՝ սա «Մայքլ Սփեթ, Ստեֆան Ֆեխտել, Գունար Ֆոք, Հենրիխ Մեյր, ՕՖԴՄ-ի վրա հիմնված լայնաշերտ փոխանցման օպտիմալ ընդունիչի ձևավորում – Մաս I և II»: Բայց ես չեմ հանդիպել մի ինժեների, որը կարողանա և ցանկանա հաշվել, ուստի ինժեներական մոտեցում է կիրառվել։ Օգտագործելով նույն համաժամացման մեթոդը, ապամոնտաժումը ներդրվեց փորձարկման ազդանշանի մեջ: Համեմատելով տարբեր չափորոշիչներ հայտնի շեղումների հետ (նա ինքն է ներկայացրել դրանք), ընտրվել են լավագույնները կատարման և իրականացման հեշտության համար: Ընդունման հաճախականության շեղումը հաշվարկվում է պահակային միջակայքի և դրա կրկնվող մասի համեմատությամբ: Ստացող հաճախականության փուլը և նմուշառման հաճախականությունը գնահատվում են փորձնական ազդանշանների փուլային շեղումից և այն օգտագործվում է նաև OFDM ազդանշանի պարզ, գծային հավասարեցման մեջ:

Հավասարիչի բնութագրիչ.

SDR DVB-T2 ընդունիչ C++-ով

Եվ այս ամենը լավ է աշխատում, եթե գիտեք, թե երբ է սկսվում DVB-T2 շրջանակը: Դա անելու համար ազդանշանի մեջ փոխանցվում է P1 նախաբանը: P1 նշանի հայտնաբերման և վերծանման մեթոդը նկարագրված է Տեխնիկական բնութագրում ETSI TS 102 831 (կան նաև շատ օգտակար առաջարկություններ ընդունման համար):

P1 ազդանշանի ավտոկոռելացիա (շրջանակի սկզբում ամենաբարձր կետը).

SDR DVB-T2 ընդունիչ C++-ով

Առաջին նկարը (շարժվող նկարին մնացել է ընդամենը վեց ամիս...):

SDR DVB-T2 ընդունիչ C++-ով

Եվ այստեղ մենք սովորում ենք, թե ինչ է IQ անհավասարակշռությունը, DC օֆսեթը և LO արտահոսքը: Որպես կանոն, ուղղակի փոխակերպման համար հատուկ այս աղավաղումների փոխհատուցումն իրականացվում է SDR սարքի դրայվերում: Հետևաբար, երկար ժամանակ պահանջվեց հասկանալու համար. ընկերական QAM64 համաստեղությունից աստղերի նոկաուտը փոխհատուցման գործառույթների աշխատանքն է: Ես ստիպված էի ամեն ինչ անջատել և գրել իմ հեծանիվը:

Եվ հետո նկարը շարժվեց.

SDR DVB-T2 ընդունիչ C++-ով

QAM64 մոդուլյացիան հատուկ համաստեղությունների պտույտով DVB-T2 ստանդարտով.

SDR DVB-T2 ընդունիչ C++-ով

Մի խոսքով, սա աղացած միսը մսաղացով հետ անցնելու արդյունք է։ Ստանդարտը նախատեսում է չորս տեսակի խառնուրդ.

  • քիչ ընդհատվող
  • բջիջների միահյուսում (բջիջների խառնում կոդավորման բլոկում)
  • ժամանակի միաձուլում (այն նաև կոդավորման բլոկների խմբում է)
  • հաճախականության միաձուլում (հաճախականության խառնուրդ OFDM խորհրդանիշում)

Արդյունքում մուտքում ունենք հետևյալ ազդանշանը.

SDR DVB-T2 ընդունիչ C++-ով

Այս ամենը պայքար է կոդավորված ազդանշանի աղմուկի անձեռնմխելիության համար:

Լրիվ

Այժմ մենք կարող ենք տեսնել ոչ միայն ինքնին ազդանշանը և դրա ձևը, այլև սպասարկման տեղեկատվությունը:
Եթերում կա երկու մուլտիպլեքս։ Յուրաքանչյուրն ունի երկու ֆիզիկական ալիք (PLP):

Առաջին մուլտիպլեքսում նկատվել է մեկ տարօրինակություն՝ առաջին PLP-ն մակագրված է «բազմակի», ինչը տրամաբանական է, քանի որ մուլտիպլեքսում մեկից ավելի կա, իսկ երկրորդ PLP-ն՝ «մեկ» և սա հարց է։
Նույնիսկ ավելի հետաքրքիր է երկրորդ տարօրինակությունը երկրորդ մուլտիպլեքսում. բոլոր ծրագրերը գտնվում են առաջին PLP-ում, բայց երկրորդ PLP-ում ցածր արագությամբ անհայտ բնույթի ազդանշան կա: Գոնե VLC նվագարկիչը, որը հասկանում է մոտ հիսուն վիդեո ֆորմատ և նույնքան ձայն, չի ճանաչում այն։

Նախագիծն ինքնին կարող եք գտնել այստեղ.

Նախագիծը ստեղծվել է նպատակ ունենալով որոշել DVB-T2-ի վերծանման հնարավորությունը՝ օգտագործելով SdrPlay (և այժմ AirSpy.), այնպես որ սա նույնիսկ ալֆա տարբերակ չէ:

Հ.Գ. Մինչ ես դժվարությամբ էի գրում հոդվածը, ինձ հաջողվեց PlutoSDR-ն ինտեգրել նախագծին:

Ինչ-որ մեկը անմիջապես կասի, որ USB6 ելքի մոտ IQ ազդանշանի համար կա ընդամենը 2.0Msps, բայց ձեզ պետք է առնվազն 9,2Msps, բայց սա առանձին թեմա է։

Source: www.habr.com

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