ProHoster > Blog > Interneteko albisteak > “Hasitako programatzaileentzako manifestua erlazionatutako espezialitateetatik” edo nola iritsi naizen bizitzako puntu honetara
“Hasitako programatzaileentzako manifestua erlazionatutako espezialitateetatik” edo nola iritsi naizen bizitzako puntu honetara
Nire gaurko artikulua ia ustekabean (naturalki bada ere) programazioaren bidea hartu zuen pertsona baten gogoetak dira.
Bai, ulertzen dut nire esperientzia nire esperientzia besterik ez dela, baina joera orokorrean ondo sartzen dela iruditzen zait. Gainera, behean deskribatzen den esperientzia jarduera zientifikoaren eremuarekin erlazionatzen da gehiago, baina zer demontre ez den txantxetan ari: kanpoan erabilgarria izan daiteke.
Oro har, ikasle ohi baten egungo ikasle guztiei eskainia!
itxaropenak
2014an Infokomunikazio Teknologietan eta Komunikazio Sistemetan lizentziatura amaitu nuenean, ez nekien ia ezer programazioaren munduari buruz. Bai, beste askok bezala, “Informatika” irakasgaia egin nuen nire lehenengo urtean - baina, Jauna, nire lehenengo urtean izan zen! Eternitate bat izan da!
Orokorrean, ez nuen ezer berezirik espero lizentziaturatik, eta masterrean sartu nintzenean "Komunikazioa eta seinaleen tratamendua" Teknologia Berrien Alemania-Errusiar Institutua.
Baina alferrik...
Bigarren sarrera baino ez ginen, eta lehenengoko mutilak oraindik ere maletak prestatzen ari ziren Alemania urrunerako (praktikak sei hilabete behar ditu masterreko bigarren urtean). Beste era batera esanda, zirkulu hurbileko inork ez zituen oraindik seriotasunez topatu Europako hezkuntzaren metodoekin, eta ez zegoen inor xehetasunez galdetzeko.
Gure lehen urtean, jakina, hainbat praktika mota izan genituen, eta horietan normalean demokratikoki gidoiak idaztea (batez ere MATLAB lengoaian) eta hainbat GUI oso espezializatuak erabiltzea (gidoiak idatzi gabe - simulazioa) aukera ematen ziguten. modelaketa inguruneak).
Esan beharrik ez dugu, etorkizuneko Zientzien Maisuok, gure gaztetako ergelkeriagatik, sua bezalako kodea idaztea saihestu genuen. Hona hemen, adibidez, MathWorks-eko Simulink: hona hemen blokeak, hona hemen konexioak, hemen mota guztietako ezarpenak eta etengailuak.
Aurretik zirkuituen diseinuan eta sistemen ingeniaritzan lan egin duen pertsona batentzat jatorrizkoa eta ulergarria den ikuspegia!
Lehenengo seihilekoko lan praktikoetako bat OFDM seinale-transceptor bat garatzea izan zen, “Modelizazio eta Optimizaziorako Metodoak” irakasgaiaren barruan. Ideia oso arrakastatsua da: teknologia oraindik garrantzitsua eta nahiko ezaguna da erabileragatik, adibidez, Wi-Fi eta LTE/LTE-A sareetan (OFDMA moduan). Hau da maisuek telekomunikazio sistemen modelizazioan trebetasunak lantzeko gauzarik onena.
Eta orain zehaztapen teknikoen hainbat aukera ematen dizkigute, jakina denez praktikoa ez den marko-parametroekin (Interneten konponbiderik ez bilatzeko), eta dagoeneko aipaturiko Simulink-era jo dugu... Eta buruan kolpatzen dugu teontzi batekin. errealitatea:
Bloke bakoitzak parametro ezezagun asko ditu, eta horiek beldurgarriak dira txanoaren tantatik aldatzea.
Zenbakiekin manipulazioak egin behar dira, dirudienez, sinpleak, baina oraindik zalaparta egin behar duzu, Jainkoak ez dezala.
Katedraleko makinak nabarmen moteltzen dira GUIaren erabilera frenetika, baita eskuragarri dauden blokeen liburutegietan nabigatzeko fasean ere.
Etxean zerbait amaitzeko, Simulink bera izan behar duzu. Eta, egia esan, alternatibarik ez.
Bai, azkenean, noski, proiektua burutu genuen, baina erliebe arnasa ozen batekin osatu genuen.
Denbora pixka bat pasa zen, eta masterreko lehen kurtsoa amaitzera iritsi ginen. GUI erabiliz etxeko lanen kopurua proportzionalki murrizten hasi zen alemaniar irakasgaien kuota handitzean, nahiz eta oraindik paradigma-aldaketara iritsi ez. Gutako askok, ni barne, eraikitzeko dugun anplitude nabarmena gaindituz, gero eta gehiago erabiltzen genuen Matlab gure proiektu zientifikoetan (tresna-kutxetan bada ere), eta ez itxuraz ezaguna den Simulink.
Gure zalantzen puntua bigarren mailako ikasle baten esaldia zen (orduan Errusiara itzuli berriak ziren):
Ahaztu, praktikak irauten duen bitartean behintzat, Similink, MathCad eta beste LabView-ri buruz - muino gainean dena MATLABen idatzita dago, MatLab bera edo bere doako "bertsioa" Octave erabiliz.
Adierazpena neurri batean egia izan zen: Ilmenaun, tresnak aukeratzeko auzia ere ez zen guztiz konpondu. Egia da, gehienbat MATLAB, Python eta C artean izan zen aukera.
Egun berean, zirrara natural batek hartu ninduen: ez al dut OFDM transmisore-ereduaren nire zatia gidoi forma batera transferitu behar? Dibertitzeko besterik ez.
Eta lanari ekin nion.
Urratsez urrats
Kalkulu teorikoen ordez, esteka bat emango dut artikulu bikaina 2011tik aurrera tgx eta diapositibetan LTE geruza fisikoa irakasleak Michel-Tila (TU Ilmenau). Hau nahikoa izango dela uste dut.
"Beraz", pentsatu nuen, "errepikatu dezagun, zer modelatuko dugu?"
Modelatu egingo dugu OFDM fotograma-sorgailua (OFDM fotograma-sorgailua).
Zer barne hartuko du:
informazio-ikurrak
pilotu-seinaleak
zeroak (DC)
Zertatik (erraztasunaren mesedetan) abstrakzioa egiten dugu:
aurrizki zikliko bat modelatzetik (oinarriak ezagutzen badituzu, gehitzea ez da zaila izango)
Aztertutako ereduaren bloke-diagrama. Alderantzizko FFT (IFFT) blokean geldituko gara. Irudia osatzeko, bakoitzak bere kabuz jarraitu ahal izango ditu gainontzekoekin -Departamenduko irakasleei ikasleei zerbait utziko ziela agindu nien.
Defini ditzagun horiek geuk. ariketa:
azpieramaile kopuru finkoa;
markoaren luzera finkoa;
erdian zero bat eta markoaren hasieran eta amaieran zero pare bat gehitu behar ditugu (guztira, 5 pieza);
informazio-ikurrak M-PSK edo M-QAM erabiliz modulatzen dira, non M modulazio-ordena den.
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
Orain informazio-sinboloen indizeak zehazten ditugu, seinale pilotuek nahitaez zeroen aurretik eta/edo ondoren joan behar dutelako premisa onartuz:
%concatenation and ascending sorting
inf_and_nulls_idx = union(inf_ind, nulls_idx);
Horren arabera, seinale pilotuaren indizeak beste guztia dira:
%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);
Orain uler ditzagun seinale pilotuak.
Txantiloi bat dugu (aldagaia pilotuak), eta demagun txantiloi honetako pilotuak gure fotograman sekuentzialki txertatzea nahi dugula. Jakina, hau begizta batean egin daiteke. Edo delikatua egin dezakezu matrizeekin; zorionez, MATLABek erosotasun nahikoarekin egiteko aukera ematen dizu.
Lehenik eta behin, zehaztu dezagun txantiloi horietako zenbat sartzen diren guztiz markoan:
pilots_len_psudo = floor(N_pil/length(pilots));
Ondoren, gure txantiloiez osatutako bektore bat osatuko dugu:
Eta txantiloiaren zati bat baino ez duen bektore txiki bat definitzen dugu - "buztana", markoan guztiz sartzen ez dena:
tail_len = fr_len - N_inf - length(nulls_idx) ...
- length(pilots)*pilots_len_psudo;
tail = pilots(1:tail_len); % "tail" of pilots vector
Pertsonaia pilotuak lortzen ditugu:
vec_pilots = [resh; tail]; % completed pilots vector that frame consists
Goazen informazio-sinboloetara, hots, mezu bat osatu eta modulatu egingo dugu:
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
"Zoriona!" — Pentsatu nuen pozik eta ordenagailu eramangarria itxi nuen. Ordu pare bat behar izan nituen dena egiteko: kodea idaztea, Matlab-en funtzio batzuk ikastea eta trikimailu matematikoen bidez pentsatzea barne.
Zein ondorio atera nituen orduan?
Subjektiboa:
Kodea idaztea atsegina da eta poesiaren antzekoa da!
Scripting-a komunikazioaren eta seinaleen prozesamenduaren alorreko ikerketa-metodorik egokiena da.
Helburu:
Ez dago txolarreak kanoi batetik jaurtitzeko beharrik (horrelako helburu didaktiko batek, noski, merezi ez badu): Simulink erabiliz, arazo soil bat tresna sofistikatu batekin konpontzeari ekin genion.
GUI ona da, baina "kanpaiaren azpian" dagoena ulertzea hobea da.
Eta orain, ikasle izatetik urrun egonik, honako hau esan nahi diot ikasle kofradiari:
Joan!
Saiatu kodea idazten, hasieran txarra izan arren. Programazioarekin, beste edozein jarduerarekin bezala, zailena hasiera da. Eta hobe da lehenago hastea: zientzialaria bazara edo nahiz eta teknikaria besterik ez bazara, lehenago edo geroago trebetasun hori beharko duzu.
Eskaria!
Irakasleei eta arduradunei planteamendu eta tresna progresiboak eskatzea. Hau posible bada, noski...
Sortu!
Non da hobe hasiberri baten min guztiak gainditzea, hezkuntza-programa baten barruan ez bada? Sortu eta hobetu zure gaitasunak - berriro ere, zenbat eta lehenago hasi, orduan eta hobeto.
Herrialde guztietako programatzaile aspiratzaileak, batu!
PS
Ikasleekin dudan harreman zuzena jasotzeko, 2017ko argazki gogoangarri bat eransten dizuet bi errektorerekin: Peter Scharff (eskuinean) eta Albert Kharisovich Gilmutdinov (ezkerrean).