"Manifesto yoyambira opanga mapulogalamu kuchokera kuzinthu zina zofananira" kapena momwe ndidafikira pano m'moyo

Nkhani yanga lero ndi malingaliro mokweza kuchokera kwa munthu yemwe adatenga njira yamapulogalamu pafupifupi mwangozi (ngakhale mwachilengedwe).

Inde, ndikumvetsa kuti zomwe ndakumana nazo ndizochitika zanga, koma zikuwoneka kwa ine kuti zikugwirizana bwino ndi zomwe zikuchitika. Komanso, zomwe zafotokozedwa pansipa zikugwirizana kwambiri ndi ntchito ya sayansi, koma zomwe gehena sizichita - zingakhale zothandiza kunja.

"Manifesto yoyambira opanga mapulogalamu kuchokera kuzinthu zina zofananira" kapena momwe ndidafikira pano m'moyo
Source: https://xkcd.com/664/

Kawirikawiri, odzipereka kwa ophunzira onse omwe alipo kuchokera kwa wophunzira wakale!

Ziyembekezero

Nditamaliza digiri yanga ya bachelor mu Infocommunication Technologies and Communication Systems mu 2014, sindinkadziwa chilichonse chokhudza dziko la mapulogalamu. Inde, monga ena ambiri, ndinatenga phunziro la “Computer Science” m’chaka changa choyamba – koma, Ambuye, chinali m’chaka changa choyamba! Zakhala muyaya!

Nthawi zambiri, sindimayembekezera chilichonse chosiyana ndi digiri ya bachelor, komanso nditalowa pulogalamu ya masters. "Kulankhulana ndi Kusintha kwa Signal" German-Russian Institute of New Technologies.

Koma pachabe...

Tinali kudya kwachiwiri, ndipo anyamata oyambirira anali akunyamula matumba awo ku Germany yakutali (kuphunzitsidwa kumatenga miyezi isanu ndi umodzi m'chaka chachiwiri cha digiri ya master). Mwa kuyankhula kwina, palibe amene adakumanapo ndi njira za maphunziro a ku Ulaya, ndipo palibe amene angafunse za tsatanetsatane.

M'chaka chathu choyamba, tinali ndi machitidwe osiyanasiyana, momwe nthawi zambiri tinkapatsidwa mwayi wosankha pakati pa kulemba (makamaka m'chinenero cha MATLAB) ndi kugwiritsa ntchito ma GUI apadera (popanda kulemba zolemba - kuyerekezera. ma modelling environments).

"Manifesto yoyambira opanga mapulogalamu kuchokera kuzinthu zina zofananira" kapena momwe ndidafikira pano m'moyo

Mosakayikira, ife, a Masters a Sayansi amtsogolo, kuchokera ku kupusa kwathu kwaunyamata, tinapewa kulemba zolemba ngati moto. Pano, mwachitsanzo, ndi Simulink kuchokera ku MathWorks: nayi midadada, apa pali zolumikizira, apa pali mitundu yonse ya zoikamo ndi masiwichi.

Malingaliro omwe ali mbadwa komanso omveka kwa munthu yemwe adagwirapo kale ntchito yopanga dera ndi uinjiniya wamakina!

"Manifesto yoyambira opanga mapulogalamu kuchokera kuzinthu zina zofananira" kapena momwe ndidafikira pano m'moyo
Source: https://ch.mathworks.com/help/comm/examples/parallel-concatenated-convolutional-coding-turbo-codes.html

Kotero izo zinkawoneka kwa ife ...

Zoona

Imodzi mwa ntchito zothandiza za semester yoyamba inali kupanga transceiver ya chizindikiro cha OFDM monga gawo la mutu wakuti "Njira Zowonetsera ndi Kukonzekera". Lingaliroli ndi lopambana kwambiri: ukadaulo udakali wofunikira komanso wodziwika bwino chifukwa cha kugwiritsidwa ntchito kwake, mwachitsanzo, pamanetiweki a Wi-Fi ndi LTE/LTE-A (mu mawonekedwe a OFDMA). Ichi ndiye chinthu chabwino kwambiri kuti ambuye ayese luso lawo popanga ma telecom system.

"Manifesto yoyambira opanga mapulogalamu kuchokera kuzinthu zina zofananira" kapena momwe ndidafikira pano m'moyo

Ndipo tsopano tapatsidwa zosankha zingapo zaukadaulo zomwe zili ndi mawonekedwe osatheka (kuti tisayang'ane yankho pa intaneti), ndipo timadumphira pa Simulink yomwe yatchulidwa kale ... Ndipo timagunda pamutu ndi tiyi zenizeni:

  • Chida chilichonse chimakhala ndi magawo ambiri osadziwika, omwe amawopsyeza kusintha pa dontho la chipewa.
  • Zosintha zomwe zili ndi manambala ziyenera kuchitika, zikuwoneka, zosavuta, koma muyenera kukangana, Mulungu asalole.
  • Makina a Cathedral amachepetsa pang'onopang'ono kugwiritsa ntchito GUI movutikira, ngakhale pa siteji ya kusefa m'ma library a midadada yomwe ilipo.
  • Kuti mumalize chinachake kunyumba, muyenera kukhala ndi Simulink yomweyo. Ndipo, kwenikweni, palibe njira zina.

Inde, pamapeto pake tinamaliza ntchitoyi, koma tidamaliza ndi mpumulo waukulu.

Patapita nthawi, tinafika kumapeto kwa chaka choyamba cha digiri ya master. Kuchuluka kwa ntchito zapakhomo pogwiritsa ntchito ma GUI kunayamba kugwa mofanana ndi kuwonjezeka kwa chiwerengero cha maphunziro a Chijeremani, ngakhale kuti chinali chisanafike pa kusintha kwa paradigm. Ambiri aife, kuphatikiza ine, tikugonjetsa matalikidwe athu ochulukirapo, timagwiritsa ntchito Matlab mochulukira pamapulojekiti athu asayansi (ngakhale mu mawonekedwe a Toolboxes), osati Simulink yomwe imawoneka yodziwika bwino.

Mfundo m’kukaikira kwathu inali mawu a mmodzi wa ophunzira a chaka chachiwiri (amene anali atangobwerera kumene ku Russia panthaŵiyo):

  • Iwalani, osachepera nthawi yonse yophunzirira, za Similink, MathCad ndi LabView ina - pamwamba pa phiri zonse zalembedwa mu MATLAB, pogwiritsa ntchito MatLab yokha kapena "mtundu" wake waulere Octave.

Mawuwo adakhala oona: ku Ilmenau, mkangano wosankha zida sunatheretu kwathunthu. Zowona, kusankha kunali pakati pa MATLAB, Python ndi C.

Tsiku lomwelo, ndidatengeka ndi chisangalalo chachilengedwe: kodi sindiyenera kusamutsa gawo langa lachitsanzo cha OFDM kukhala cholembedwa? Zongosangalatsa.

Ndipo ine ndinayamba ntchito.

Pang'onopang'ono

M'malo mowerengera zamalingaliro, ndingopereka ulalo ku izi nkhani yabwino kwambiri 2011 kuchokera tgx ndi ndi pa masiladi LTE gawo lakuthupi aphunzitsi Michel-Tila (TU Ilmenau). Ndikuganiza kuti izi zikhala zokwanira.

"Ndiye," ndinaganiza, "tiyeni tibwereze, titsanzire chiyani?"
Tidzachita chitsanzo OFDM chimango jenereta (OFDM chimango jenereta).

Zomwe zidzaphatikizepo:

  • zizindikiro za chidziwitso
  • zizindikiro zoyendetsa ndege
  • ziro (DC)

Zomwe (chifukwa cha kuphweka) timachokera ku:

  • kuchokera pakupanga cyclic prefix (ngati mukudziwa zoyambira, kuwonjezera sikudzakhala kovuta)

"Manifesto yoyambira opanga mapulogalamu kuchokera kuzinthu zina zofananira" kapena momwe ndidafikira pano m'moyo

Chojambula cha block chachitsanzo chomwe chikuganiziridwa. Tiyima pa block ya FFT (IFFT). Kuti amalize chithunzichi, aliyense akhoza kupitiriza enawo - ndinalonjeza aphunzitsi a dipatimenti kuti asiye chinachake kwa ophunzira.

Tiyeni tifotokoze tokha. masewera olimbitsa thupi:

  • chiwerengero chokhazikika cha zonyamulira zazing'ono;
  • kutalika kwa chimango chokhazikika;
  • tiyenera kuwonjezera ziro pakati ndi awiri ziro pa chiyambi ndi mapeto a chimango (okwana, 5 zidutswa);
  • zizindikilo zazidziwitso zimasinthidwa pogwiritsa ntchito M-PSK kapena M-QAM, pomwe M ndi dongosolo losinthira.

Tiyeni tiyambe ndi code.

Zolemba zonse zitha kutsitsidwa kuchokera kugwirizana.

Tiyeni tifotokoze magawo olowera:

clear all; close all; clc

M = 4; % e.g. QPSK 
N_inf = 16; % number of subcarriers (information symbols, actually) in the frame
fr_len = 32; % the length of our OFDM frame
N_pil = fr_len - N_inf - 5; % number of pilots in the frame
pilots = [1; j; -1; -j]; % pilots (QPSK, in fact)

nulls_idx = [1, 2, fr_len/2, fr_len-1, fr_len]; % indexes of nulls

Tsopano tazindikira zizindikiro zazizindikiro, kuvomereza mfundo yakuti ma siginecha oyendetsa amayenera kupita patsogolo ndi/kapena pambuyo pa ziro:

idx_1_start = 4;
idx_1_end = fr_len/2 - 2;

idx_2_start = fr_len/2 + 2;
idx_2_end =  fr_len - 3;

Ndiye maudindo angadziwike pogwiritsa ntchito ntchitoyi linspace, kuchepetsa zikhalidwe kukhala zazing'ono kwambiri mwa manambala apafupi:

inf_idx_1 = (floor(linspace(idx_1_start, idx_1_end, N_inf/2))).'; 
inf_idx_2 = (floor(linspace(idx_2_start, idx_2_end, N_inf/2))).';

inf_ind = [inf_idx_1; inf_idx_2]; % simple concatenation

Tiyeni tiwonjezere ma index a zero ku izi ndikusintha:

%concatenation and ascending sorting
inf_and_nulls_idx = union(inf_ind, nulls_idx); 

Chifukwa chake, zizindikiro za oyendetsa ndege ndi zina zonse:

%numbers in range from 1 to frame length 
% that don't overlape with inf_and_nulls_idx vector
pilot_idx = setdiff(1:fr_len, inf_and_nulls_idx); 

Tsopano tiyeni timvetse zizindikiro zoyendetsa ndege.

Tili ndi template (zosintha oyendetsa ndege), ndipo tinene kuti tikufuna oyendetsa ndege kuchokera pa template iyi kuti alowetsedwe mu chimango chathu motsatizana. Inde, izi zikhoza kuchitika mwa kuzungulira. Kapena mutha kusewera movutikira pang'ono ndi matrices - mwamwayi, MATLAB imakupatsani mwayi wochita izi ndi chitonthozo chokwanira.

Choyamba, tiyeni tiwone kuti ndi angati mwa ma tempuletiwa omwe akukwanira mu chimango:

pilots_len_psudo = floor(N_pil/length(pilots));

Kenako, timapanga vekitala yomwe ili ndi ma tempuleti athu:

% linear algebra tricks:
mat_1 = pilots*ones(1, pilots_len_psudo); % rank-one matrix
resh = reshape(mat_1, pilots_len_psudo*length(pilots),1); % vectorization

Ndipo timatanthauzira vekitala yaying'ono yomwe ili ndi chidutswa chokha cha template - "mchira", chomwe sichikwanira mu chimango:

tail_len = fr_len  - N_inf - length(nulls_idx) ...
                - length(pilots)*pilots_len_psudo; 
tail = pilots(1:tail_len); % "tail" of pilots vector

Timapeza anthu oyendetsa ndege:

vec_pilots = [resh; tail]; % completed pilots vector that frame consists

Tiyeni tipitirire kuzizindikiro zazidziwitso, zomwe tipanga uthenga ndikuwusintha:

message = randi([0 M-1], N_inf, 1); % decimal information symbols

if M >= 16
    info_symbols = qammod(message, M, pi/4);
else
    info_symbols = pskmod(message, M, pi/4);
end 

Zonse zakonzeka! Kupanga khungu:

%% Frame construction
frame = zeros(fr_len,1);
frame(pilot_idx) = vec_pilots;
frame(inf_ind) = info_symbols

Muyenera kupeza chinthu chonga ichi:

frame =

   0.00000 + 0.00000i
   0.00000 + 0.00000i
   1.00000 + 0.00000i
  -0.70711 - 0.70711i
  -0.70711 - 0.70711i
   0.70711 + 0.70711i
   0.00000 + 1.00000i
  -0.70711 + 0.70711i
  -0.70711 + 0.70711i
  -1.00000 + 0.00000i
  -0.70711 + 0.70711i
  -0.70711 - 0.70711i
   0.00000 - 1.00000i
   0.70711 + 0.70711i
   1.00000 + 0.00000i
   0.00000 + 0.00000i
   0.00000 + 1.00000i
   0.70711 - 0.70711i
  -0.70711 + 0.70711i
  -1.00000 + 0.00000i
  -0.70711 + 0.70711i
   0.70711 + 0.70711i
   0.00000 - 1.00000i
  -0.70711 - 0.70711i
   0.70711 + 0.70711i
   1.00000 + 0.00000i
   0.70711 - 0.70711i
   0.00000 + 1.00000i
   0.70711 - 0.70711i
  -1.00000 + 0.00000i
   0.00000 + 0.00000i
   0.00000 + 0.00000i

"Chisangalalo!" - Ndinaganiza okhutira ndi anatseka laputopu. Zinanditengera maola angapo kuti ndichite chilichonse: kuphatikiza manambala, kuphunzira ntchito za Matlab komanso kuganiza pogwiritsa ntchito masamu.

Ndikuganiza zotani pamenepo?

Kugonjera:

  • Kulemba ndikosangalatsa komanso kofanana ndi ndakatulo!
  • Scripting ndiye njira yabwino kwambiri yofufuzira pagawo la Communication and Signal Processing.

Cholinga:

  • Palibe chifukwa chowombera mpheta kuchokera ku cannon (pokhapokha ngati cholinga cha maphunziro choterocho chiri choyenera): pogwiritsa ntchito Simulink, tinayamba kuthetsa vuto losavuta ndi chida chamakono.
  • GUI ndiyabwino, koma kumvetsetsa zomwe zili "pansi pa hood" ndibwino.

Ndipo tsopano, pokhala kutali ndi kukhala wophunzira, ndikufuna kunena zotsatirazi kwa gulu la ophunzira:

  • Pitani!

Yesani kulemba khodi, ngakhale ili yoyipa poyamba. Ndi mapulogalamu, monga ndi ntchito ina iliyonse, gawo lovuta kwambiri ndilo chiyambi. Ndipo ndi bwino kuyamba kale: ngati ndinu wasayansi kapena ngakhale techie, posakhalitsa mudzafunika luso limeneli.

  • Kufuna!

Funsani njira zopititsira patsogolo ndi zida kuchokera kwa aphunzitsi ndi oyang'anira. Ngati izi zingatheke, ndithudi ...

  • Pangani!

Ndi pati pamene kuli bwino kuti muthe zilonda zonse za oyamba kumene, ngati osati mkati mwa dongosolo la maphunziro? Pangani ndikuwongolera luso lanu - kachiwiri, mutangoyamba kumene, ndibwino.

Ofuna kupanga mapulogalamu ochokera kumayiko onse, gwirizanani!

PS

Kuti ndilembe ubale wanga wachindunji ndi ophunzira, ndikulumikiza chithunzi chosaiwalika cha 2017 ndi ma rector awiri: Peter Scharff (kumanja) ndi Albert Kharisovich Gilmutdinov (kumanzere).

"Manifesto yoyambira opanga mapulogalamu kuchokera kuzinthu zina zofananira" kapena momwe ndidafikira pano m'moyo

Zinali zoyenera kumaliza pulogalamuyo osachepera pazovala izi! (chibwana)

Source: www.habr.com

Kuwonjezera ndemanga