C++ இல் SDR DVB-T2 ரிசீவர்

மென்பொருள் வரையறுக்கப்பட்ட ரேடியோ என்பது உலோக வேலைகளை (உண்மையில் உங்கள் ஆரோக்கியத்திற்கு நல்லது) நிரலாக்கத்தின் தலைவலியுடன் மாற்றுவதற்கான ஒரு முறையாகும். SDR கள் ஒரு சிறந்த எதிர்காலத்தை கணிக்கின்றன மற்றும் ரேடியோ நெறிமுறைகளை செயல்படுத்துவதில் உள்ள கட்டுப்பாடுகளை அகற்றுவதே முக்கிய நன்மையாக கருதப்படுகிறது. ஒரு உதாரணம் OFDM (ஆர்த்தோகனல் ஃப்ரீக்வென்சி-டிவிஷன் மல்டிபிளெக்சிங்) பண்பேற்றம் முறை, இது SDR முறையில் மட்டுமே சாத்தியமானது. ஆனால் SDRக்கு இன்னும் ஒரு, முற்றிலும் பொறியியல் வாய்ப்பு உள்ளது - குறைந்த முயற்சியுடன் எந்த ஒரு தன்னிச்சையான புள்ளியிலும் ஒரு சிக்னலைக் கட்டுப்படுத்தும் மற்றும் காட்சிப்படுத்தும் திறன்.

சுவாரஸ்யமான தகவல்தொடர்பு தரநிலைகளில் ஒன்று டெரஸ்ட்ரியல் டெரஸ்ட்ரியல் தொலைக்காட்சி DVB-T2 ஆகும்.
எதற்காக? நிச்சயமாக, நீங்கள் எழுந்திருக்காமல் டிவியை இயக்கலாம், ஆனால் அங்கு பார்க்க எதுவும் இல்லை, இது இனி எனது கருத்து அல்ல, ஆனால் ஒரு மருத்துவ உண்மை.

தீவிரமாக, DVB-T2 மிகவும் பரந்த திறன்களுடன் வடிவமைக்கப்பட்டுள்ளது, இதில் அடங்கும்:

  • உட்புற பயன்பாடு
  • QPSK இலிருந்து 256QAM க்கு பண்பேற்றம்
  • அலைவரிசை 1,7MHz முதல் 8MHz வரை

SDR கொள்கையைப் பயன்படுத்தி டிஜிட்டல் தொலைக்காட்சியைப் பெறுவதில் எனக்கு அனுபவம் உள்ளது. DVB-T தரநிலை நன்கு அறியப்பட்ட GNURadio திட்டத்தில் உள்ளது. DVB-T2 தரநிலைக்கு gr-dvbs2rx பிளாக் உள்ளது (அனைத்தும் ஒரே GNURadio க்கு), ஆனால் இதற்கு ஆரம்ப சமிக்ஞை ஒத்திசைவு தேவைப்படுகிறது மற்றும் இது ஊக்கமளிக்கிறது (ரான் எகனாமோஸுக்கு சிறப்பு நன்றி).

நம்மிடம் என்ன இருக்கிறது.

பரிமாற்றத்தை விவரிக்கும் ETSI EN 302 755 தரநிலை உள்ளது, ஆனால் வரவேற்பு இல்லை.

சிக்னல் 9,14285714285714285714 மெகா ஹெர்ட்ஸ் மாதிரி அதிர்வெண்ணுடன், 32768 மெகா ஹெர்ட்ஸ் பேண்டில் 8 கேரியர்களுடன் COFDM ஆல் மாற்றியமைக்கப்பட்டது.

நேரடி மின்னோட்டம் (டிசி) ஆஃப்செட் மற்றும் லோக்கல் ஆஸிலேட்டரின் "கசிவு" ஆகியவற்றிலிருந்து விடுபட, மாதிரி அதிர்வெண்ணின் இரட்டிப்பு (எதையும் இழக்காதபடி) மற்றும் இடைநிலை அதிர்வெண்ணில் அதிக அலைவரிசை (சூப்பர்ஹீட்டோரோடைன் வரவேற்பு) போன்ற சமிக்ஞைகளைப் பெற பரிந்துரைக்கப்படுகிறது. (LO) பெறுநரின் உள்ளீட்டிற்கு. இந்த நிபந்தனைகளை பூர்த்தி செய்யும் சாதனங்கள் வெறும் ஆர்வத்திற்காக மிகவும் விலை உயர்ந்தவை.

10Msps 10bit உடன் SdrPlay அல்லது இதே போன்ற குணாதிசயங்களைக் கொண்ட AirSpy மிகவும் மலிவானது. இங்கே மாதிரி அதிர்வெண்ணை இரட்டிப்பாக்குவது பற்றி எந்த கேள்வியும் இல்லை மற்றும் வரவேற்பு நேரடி மாற்றத்துடன் மட்டுமே செய்ய முடியும் (Zero IF). எனவே (நிதி காரணங்களுக்காக) குறைந்தபட்ச வன்பொருள் மாற்றத்துடன் "தூய" SDR ஐ பின்பற்றுபவர்களின் பக்கத்திற்கு மாறுகிறோம்.

இரண்டு சிக்கல்களைத் தீர்க்க வேண்டியது அவசியம்:

  1. ஒத்திசைவு. துல்லியமான கட்ட-துல்லியமான RF விலகல் மற்றும் மாதிரி அதிர்வெண் விலகல் ஆகியவற்றைக் கண்டறியவும்.
  2. DVB-T2 தரநிலையை பின்னோக்கி மீண்டும் எழுதவும்.

இரண்டாவது பணிக்கு நிறைய குறியீடு தேவைப்படுகிறது, ஆனால் விடாமுயற்சியுடன் தீர்க்க முடியும் மற்றும் சோதனை சமிக்ஞைகளைப் பயன்படுத்தி எளிதாக சரிபார்க்க முடியும்.

சோதனை சமிக்ஞைகள் பிபிசி சர்வரில் ftp://ftp.kw.bbc.co.uk/t2refs/ விரிவான வழிமுறைகளுடன் கிடைக்கின்றன.

முதல் சிக்கலுக்கான தீர்வு SDR சாதனத்தின் பண்புகள் மற்றும் அதன் கட்டுப்பாட்டு திறன்களைப் பொறுத்தது. பரிந்துரைக்கப்பட்ட அதிர்வெண் கட்டுப்பாட்டு செயல்பாடுகளைப் பயன்படுத்துவது, அவர்கள் சொல்வது போல், வெற்றிபெறவில்லை, ஆனால் அவற்றைப் படித்ததில் நிறைய அனுபவத்தை அளித்தது. ஆவணப்படுத்தல், நிரலாக்கம், தொலைக்காட்சித் தொடர்களைப் பார்ப்பது, தத்துவக் கேள்விகளைத் தீர்ப்பது... சுருக்கமாகச் சொன்னால், திட்டத்தைக் கைவிடுவது சாத்தியமில்லை.

"தூய SDR" மீதான நம்பிக்கை மேலும் வலுப்பெற்றுள்ளது.

நாம் சிக்னலை அப்படியே எடுத்துக்கொள்கிறோம், அதை கிட்டத்தட்ட ஒரு அனலாக் என்று இடைக்கணித்து, தனித்துவமான ஒன்றை வெளியே எடுக்கிறோம், ஆனால் உண்மையானதைப் போன்றது.

ஒத்திசைவு தொகுதி வரைபடம்:

C++ இல் SDR DVB-T2 ரிசீவர்

இங்கே எல்லாம் பாடப்புத்தகத்தின் படி. அடுத்தது இன்னும் கொஞ்சம் சிக்கலானது. விலகல்கள் கணக்கிடப்பட வேண்டும். பல்வேறு முறைகளின் நன்மைகள் மற்றும் தீமைகளை ஒப்பிடும் இலக்கியங்கள் மற்றும் ஆய்வுக் கட்டுரைகள் நிறைய உள்ளன. கிளாசிக்ஸிலிருந்து - இது "மைக்கேல் ஸ்பெத், ஸ்டீபன் ஃபெக்டெல், குன்னர் ஃபோக், ஹென்ரிச் மேயர், ஓஎஃப்டிஎம் அடிப்படையிலான பிராட்பேண்ட் டிரான்ஸ்மிஷனுக்கான உகந்த ரிசீவர் வடிவமைப்பு - பகுதி I மற்றும் II." ஆனால் எண்ணி எண்ணக்கூடிய ஒரு பொறியாளரையும் நான் சந்திக்கவில்லை, எனவே ஒரு பொறியியல் அணுகுமுறை பயன்படுத்தப்பட்டது. அதே ஒத்திசைவு முறையைப் பயன்படுத்தி, சோதனை சமிக்ஞையில் டியூனிங் அறிமுகப்படுத்தப்பட்டது. அறியப்பட்ட விலகல்களுடன் வெவ்வேறு அளவீடுகளை ஒப்பிடுவதன் மூலம் (அவரே அவற்றை அறிமுகப்படுத்தினார்), செயல்திறன் மற்றும் செயல்படுத்தலின் எளிமைக்காக சிறந்தவை தேர்ந்தெடுக்கப்பட்டன. வரவேற்பு அதிர்வெண் விலகல் காவலர் இடைவெளி மற்றும் அதன் தொடர்ச்சியான பகுதியை ஒப்பிடுவதன் மூலம் கணக்கிடப்படுகிறது. பெறும் அதிர்வெண்ணின் கட்டம் மற்றும் மாதிரி அதிர்வெண் ஆகியவை பைலட் சிக்னல்களின் கட்ட விலகலில் இருந்து மதிப்பிடப்படுகின்றன, மேலும் இது OFDM சமிக்ஞையின் எளிய, நேரியல் சமநிலையிலும் பயன்படுத்தப்படுகிறது.

சமநிலைப்படுத்தும் பண்பு:

C++ இல் SDR DVB-T2 ரிசீவர்

DVB-T2 சட்டகம் எப்போது தொடங்கும் என்பது உங்களுக்குத் தெரிந்தால் இவை அனைத்தும் நன்றாக வேலை செய்யும். இதைச் செய்ய, முன்னுரை சின்னம் P1 சமிக்ஞையில் அனுப்பப்படுகிறது. P1 குறியீட்டைக் கண்டறிந்து டிகோடிங் செய்வதற்கான முறை தொழில்நுட்ப விவரக்குறிப்பு ETSI TS 102 831 இல் விவரிக்கப்பட்டுள்ளது (வரவேற்புக்கு பல பயனுள்ள பரிந்துரைகளும் உள்ளன).

P1 சிக்னலின் தன்னியக்க தொடர்பு (சட்டத்தின் தொடக்கத்தில் மிக உயர்ந்த புள்ளி):

C++ இல் SDR DVB-T2 ரிசீவர்

முதல் படம் (நகரும் படத்திற்கு இன்னும் ஆறு மாதங்கள் மட்டுமே உள்ளது...):

C++ இல் SDR DVB-T2 ரிசீவர்

இங்குதான் IQ ஏற்றத்தாழ்வு, DC ஆஃப்செட் மற்றும் LO கசிவு என்ன என்பதை அறிந்து கொள்கிறோம். ஒரு விதியாக, நேரடி மாற்றத்திற்கு குறிப்பிட்ட இந்த சிதைவுகளுக்கான இழப்பீடு SDR சாதன இயக்கியில் செயல்படுத்தப்படுகிறது. எனவே, புரிந்து கொள்ள நீண்ட நேரம் எடுத்தது: நட்பு QAM64 விண்மீன் தொகுப்பிலிருந்து நட்சத்திரங்களை நாக் அவுட் செய்வது இழப்பீட்டு செயல்பாடுகளின் வேலை. நான் எல்லாவற்றையும் அணைத்துவிட்டு என் பைக்கை எழுத வேண்டியிருந்தது.

பின்னர் படம் நகர்ந்தது:

C++ இல் SDR DVB-T2 ரிசீவர்

DVB-T64 தரநிலையில் குறிப்பிட்ட விண்மீன் சுழற்சியுடன் QAM2 மாடுலேஷன்:

C++ இல் SDR DVB-T2 ரிசீவர்

சுருக்கமாக, இது துண்டு துண்தாக வெட்டப்பட்ட இறைச்சியை இறைச்சி சாணை மூலம் மீண்டும் அனுப்புவதன் விளைவாகும். தரநிலை நான்கு வகையான கலவையை வழங்குகிறது:

  • பிட் இடைச்செருகல்
  • செல் இன்டர்லீவிங் (ஒரு குறியீட்டு தொகுதியில் கலங்களை கலப்பது)
  • நேர இடைவெளி (இது குறியாக்க தொகுதிகளின் குழுவிலும் உள்ளது)
  • அதிர்வெண் இடைவெளி (OFDM குறியீட்டில் அதிர்வெண் கலவை)

இதன் விளைவாக, உள்ளீட்டில் பின்வரும் சமிக்ஞை உள்ளது:

C++ இல் SDR DVB-T2 ரிசீவர்

இவை அனைத்தும் குறியிடப்பட்ட சமிக்ஞையின் இரைச்சல் நோய் எதிர்ப்பு சக்திக்கான போராட்டம்.

இதன் விளைவாக

இப்போது நாம் சிக்னலையும் அதன் வடிவத்தையும் மட்டுமல்ல, சேவைத் தகவலையும் பார்க்கலாம்.
இரண்டு மல்டிபிளக்ஸ்கள் ஒளிபரப்பப்படுகின்றன. ஒவ்வொன்றிலும் இரண்டு இயற்பியல் சேனல்கள் (PLP) உள்ளன.

முதல் மல்டிபிளெக்ஸில் ஒரு வித்தியாசம் கவனிக்கப்பட்டது - முதல் PLP ஆனது "பல" என்று பெயரிடப்பட்டது, இது தர்க்கரீதியானது, மல்டிபிளெக்ஸில் ஒன்றுக்கு மேற்பட்டவை இருப்பதால், இரண்டாவது PLP "ஒற்றை" என்று பெயரிடப்பட்டுள்ளது, இது ஒரு கேள்வி.
இரண்டாவது மல்டிபிளெக்ஸில் இரண்டாவது வினோதம் இன்னும் சுவாரஸ்யமானது - அனைத்து நிரல்களும் முதல் PLP இல் உள்ளன, ஆனால் இரண்டாவது PLP இல் குறைந்த வேகத்தில் அறியப்படாத இயல்புக்கான சமிக்ஞை உள்ளது. குறைந்த பட்சம் ஐம்பது வீடியோ வடிவங்கள் மற்றும் அதே அளவு ஆடியோவைப் பற்றி புரிந்து கொள்ளும் VLC பிளேயர் அதை அடையாளம் காணவில்லை.

திட்டத்தை இங்கே காணலாம்.

SdrPlay (இப்போது AirSpy.) ஐப் பயன்படுத்தி DVB-T2 ஐ டிகோடிங் செய்வதற்கான சாத்தியக்கூறுகளை தீர்மானிக்கும் நோக்கத்துடன் இந்த திட்டம் உருவாக்கப்பட்டது (இப்போது AirSpy.), எனவே இது ஆல்பா பதிப்பு கூட இல்லை.

பி.எஸ். நான் சிரமத்துடன் கட்டுரையை எழுதிக்கொண்டிருந்தபோது, ​​புளூட்டோஎஸ்டிஆரை திட்டத்தில் ஒருங்கிணைக்க முடிந்தது.

USB6 வெளியீட்டில் IQ சிக்னலுக்கு 2.0Msps மட்டுமே உள்ளது என்று யாராவது உடனடியாக கூறுவார்கள், ஆனால் உங்களுக்கு குறைந்தபட்சம் 9,2Msps தேவை, ஆனால் இது ஒரு தனி தலைப்பு.

ஆதாரம்: www.habr.com