ProHoster > blog > newyddion rhyngrwyd > “Maniffesto ar gyfer rhaglenwyr dechreuol o arbenigeddau cysylltiedig” neu sut y cyrhaeddais y pwynt hwn mewn bywyd
“Maniffesto ar gyfer rhaglenwyr dechreuol o arbenigeddau cysylltiedig” neu sut y cyrhaeddais y pwynt hwn mewn bywyd
Mae fy erthygl heddiw yn feddyliau yn uchel gan berson a gymerodd y llwybr o raglennu bron ar ddamwain (er yn naturiol).
Ydw, rwy'n deall mai fy mhrofiad yn unig yw fy mhrofiad, ond mae'n ymddangos i mi ei fod yn cyd-fynd yn dda â'r duedd gyffredinol. Ar ben hynny, mae'r profiad a ddisgrifir isod yn ymwneud yn fwy â maes gweithgaredd gwyddonol, ond yr hyn nad yw'r uffern yn ei dwyllo - gall fod yn ddefnyddiol y tu allan.
Yn gyffredinol, ymroddedig i holl fyfyrwyr presennol o gyn-fyfyriwr!
disgwyliadau
Pan gwblheais fy ngradd baglor mewn Technolegau Gwybodaeth a Systemau Cyfathrebu yn 2014, nid oeddwn yn gwybod bron dim am fyd rhaglennu. Do, fel llawer un arall, cymerais y pwnc “Cyfrifiadureg” yn fy mlwyddyn gyntaf – ond, Arglwydd, roedd yn fy mlwyddyn gyntaf! Mae wedi bod yn dragwyddoldeb!
Yn gyffredinol, nid oeddwn yn disgwyl unrhyw beth arbennig o wahanol i radd baglor, a phan ddechreuais ar y rhaglen meistr "Cyfathrebu a Phrosesu Signalau" Sefydliad Technolegau Newydd Almaeneg-Rwsia.
Ond yn ofer...
Dim ond yr ail gymeriad oeddem ni, ac roedd y bechgyn o'r cyntaf yn dal i bacio eu bagiau ar gyfer yr Almaen bell (mae'r interniaeth yn cymryd chwe mis yn ail flwyddyn gradd meistr). Mewn geiriau eraill, nid oedd neb o'r cylch agos eto wedi dod ar draws dulliau addysg Ewrop o ddifrif, ac nid oedd neb i ofyn am y manylion.
Yn ein blwyddyn gyntaf, wrth gwrs, roedd gennym wahanol fathau o arferion, lle'r oeddem fel arfer yn cael cynnig dewis yn ddemocrataidd rhwng ysgrifennu sgriptiau (yn yr iaith MATLAB yn bennaf) a defnyddio GUIs tra arbenigol amrywiol (yn yr ystyr bod heb ysgrifennu sgriptiau - efelychiad amgylcheddau modelu).
Afraid dweud, fe wnaethom ni, y Meistri Gwyddoniaeth yn y dyfodol, allan o'n hurtrwydd ieuenctid, osgoi ysgrifennu cod fel tân. Yma, er enghraifft, mae Simulink o MathWorks: dyma'r blociau, dyma'r cysylltiadau, dyma bob math o osodiadau a switshis.
Golygfa sy'n frodorol ac yn ddealladwy i berson sydd wedi gweithio o'r blaen ym maes dylunio cylchedau a pheirianneg systemau!
Un o weithiau ymarferol y semester cyntaf oedd datblygu trosglwyddydd signal OFDM fel rhan o'r pwnc “Dulliau ar gyfer Modelu ac Optimeiddio”. Mae'r syniad yn llwyddiannus iawn: mae'r dechnoleg yn dal yn berthnasol ac yn eithaf poblogaidd oherwydd ei ddefnydd, er enghraifft, mewn rhwydweithiau Wi-Fi a LTE / LTE-A (ar ffurf OFDMA). Dyma'r peth gorau i feistri ymarfer eu sgiliau mewn modelu systemau telathrebu.
Ac yn awr rydym yn cael sawl opsiwn o fanylebau technegol gyda pharamedrau ffrâm anymarferol amlwg (er mwyn peidio â chwilio am ateb ar y Rhyngrwyd), ac rydym yn neidio ar y Simulink a grybwyllwyd eisoes ... Ac rydym yn cael ein taro ar ein pen gyda thebot o realiti:
Mae pob bloc yn llawn llawer o baramedrau anhysbys, sy'n frawychus i'w newid wrth ddisgyn het.
Mae angen gwneud y manipulations gyda rhifau, mae'n ymddangos, yn syml, ond mae'n rhaid i chi ffwdanu o hyd, na ato Duw.
Mae peiriannau cadeirlan yn amlwg yn arafu o'r defnydd gwyllt o'r GUI, hyd yn oed ar y cam o syrffio trwy lyfrgelloedd y blociau sydd ar gael.
I orffen rhywbeth gartref, mae angen i chi gael yr un Simulink. Ac, mewn gwirionedd, dim dewisiadau eraill.
Do, yn y diwedd fe wnaethom ni, wrth gwrs, gwblhau'r prosiect, ond fe wnaethon ni ei gwblhau gydag allanadliad uchel o ryddhad.
Aeth peth amser heibio, a daethom i ddiwedd blwyddyn gyntaf y radd meistr. Dechreuodd maint y gwaith cartref a oedd yn defnyddio GUIs ostwng yn gymesur gyda'r cynnydd yng nghyfran y pynciau Almaeneg, er nad oedd eto wedi cyrraedd pwynt shifft patrwm. Mae llawer ohonom, gan gynnwys fi, yn goresgyn ein hosgled sylweddol i gronni, yn defnyddio Matlab fwyfwy yn ein prosiectau gwyddonol (er ar ffurf Pecynnau Offer), ac nid y Simulink sy'n ymddangos yn gyfarwydd.
Y pwynt yn ein hamheuon oedd ymadrodd un o fyfyrwyr yr ail flwyddyn (roedden nhw newydd ddychwelyd i Rwsia erbyn hynny):
Anghofiwch, o leiaf am gyfnod yr interniaeth, am Similink, MathCad a LabView eraill - dros y bryn mae popeth wedi'i ysgrifennu yn MATLAB, gan ddefnyddio MatLab ei hun neu ei “fersiwn” Octave am ddim.
Trodd y datganiad yn rhannol wir: yn Ilmenau, ni chafodd yr anghydfod ynghylch y dewis o offer ei ddatrys yn llwyr ychwaith. Yn wir, roedd y dewis yn bennaf rhwng MATLAB, Python a C.
Ar yr un diwrnod, cefais fy nghymryd gan gyffro naturiol: oni ddylwn drosglwyddo fy rhan o fodel trosglwyddydd OFDM i ffurf wedi'i sgriptio? Dim ond am hwyl.
Ac fe ges i weithio.
Cam wrth gam
Yn lle cyfrifiadau damcaniaethol, byddaf yn syml yn rhoi dolen i hyn erthygl ardderchog 2011 o tgx ac ar y sleidiau Haen gorfforol LTE athrawon Michel-Tila (TU Ilmenau). Rwy'n meddwl y bydd hyn yn ddigon.
“Felly,” meddyliais, “gadewch i ni ailadrodd, beth ydyn ni'n mynd i fodelu?”
Byddwn yn modelu Generadur ffrâm OFDM (generadur ffrâm OFDM).
Yr hyn y bydd yn ei gynnwys:
symbolau gwybodaeth
signalau peilot
sero (DC)
O beth (er mwyn symlrwydd) rydym yn tynnu:
o fodelu rhagddodiad cylchol (os ydych chi'n gwybod y pethau sylfaenol, ni fydd yn anodd ei ychwanegu)
Diagram bloc o'r model dan ystyriaeth. Byddwn yn stopio wrth y bloc FFT gwrthdro (IFFT). I gwblhau'r llun, gall pawb barhau â'r gweddill eu hunain - addewais i'r athrawon o'r adran adael rhywbeth i'r myfyrwyr.
Gadewch i ni ddiffinio'r rheini i ni ein hunain. ymarfer corff:
nifer sefydlog o is-gludwyr;
hyd ffrâm sefydlog;
rhaid ychwanegu un sero yn y canol a phâr o sero ar ddechrau a diwedd y ffrâm (cyfanswm, 5 darn);
mae symbolau gwybodaeth yn cael eu modiwleiddio gan ddefnyddio M-PSK neu M-QAM, lle mai M yw'r gorchymyn modiwleiddio.
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
Nawr rydym yn pennu mynegeion symbolau gwybodaeth, gan dderbyn y rhagosodiad bod yn rhaid i signalau peilot fynd cyn a/neu ar ôl sero o reidrwydd:
Gadewch i ni ychwanegu mynegeion o sero at hyn a didoli:
%concatenation and ascending sorting
inf_and_nulls_idx = union(inf_ind, nulls_idx);
Yn unol â hynny, mae'r mynegeion signal peilot yn bopeth arall:
%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);
Nawr gadewch i ni ddeall signalau peilot.
Mae gennym ni dempled (amrywiol cynlluniau peilot), a gadewch i ni ddweud ein bod am i beilotiaid o'r templed hwn gael eu mewnosod yn ein ffrâm yn olynol. Wrth gwrs, gellir gwneud hyn mewn dolen. Neu gallwch chi chwarae ychydig yn anodd gyda matricsau - yn ffodus mae MATLAB yn caniatáu ichi wneud hyn gyda digon o gysur.
Yn gyntaf, gadewch i ni benderfynu faint o'r templedi hyn sy'n ffitio'n gyfan gwbl i'r ffrâm:
pilots_len_psudo = floor(N_pil/length(pilots));
Nesaf, rydym yn ffurfio fector sy'n cynnwys ein templedi:
Ac rydyn ni'n diffinio fector bach sy'n cynnwys darn o'r templed yn unig - y "gynffon", nad yw'n ffitio'n llwyr i'r ffrâm:
tail_len = fr_len - N_inf - length(nulls_idx) ...
- length(pilots)*pilots_len_psudo;
tail = pilots(1:tail_len); % "tail" of pilots vector
Rydyn ni'n cael cymeriadau peilot:
vec_pilots = [resh; tail]; % completed pilots vector that frame consists
Symudwn ymlaen at symbolau gwybodaeth, sef, byddwn yn ffurfio neges ac yn ei modiwleiddio:
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
"Bliss!" - Meddyliais yn fodlon a chau'r gliniadur. Cymerodd ychydig oriau i mi wneud popeth: gan gynnwys ysgrifennu cod, dysgu rhai swyddogaethau Matlab a meddwl trwy driciau mathemategol.
Pa gasgliadau y deuthum iddynt bryd hynny?
Goddrychol:
Mae ysgrifennu cod yn ddymunol ac yn debyg i farddoniaeth!
Sgriptio yw'r dull ymchwil mwyaf cyfleus ar gyfer y maes Cyfathrebu a Phrosesu Arwyddion.
Amcan:
Nid oes angen saethu adar y to o ganon (oni bai bod nod addysgol o'r fath, wrth gwrs, yn werth chweil): gan ddefnyddio Simulink, fe wnaethom ddechrau datrys problem syml gydag offeryn soffistigedig.
Mae GUI yn dda, ond mae deall yr hyn sydd wedi'i gynnwys “o dan y cwfl” yn well.
Ac yn awr, a minnau ymhell o fod yn fyfyriwr, rwyf am ddweud y canlynol wrth frawdoliaeth y myfyrwyr:
Ewch amdani!
Ceisiwch ysgrifennu cod, hyd yn oed os yw'n ddrwg ar y dechrau. Gyda rhaglennu, fel gydag unrhyw weithgaredd arall, y rhan anoddaf yw'r dechrau. Ac mae'n well dechrau'n gynharach: os ydych chi'n wyddonydd neu hyd yn oed yn techie, yn hwyr neu'n hwyrach bydd angen y sgil hon arnoch chi.
Galw!
Mynnu dulliau ac offer blaengar gan athrawon a goruchwylwyr. Os yw hyn yn bosibl, wrth gwrs...
Creu!
Ble arall y mae'n well goresgyn holl ddoluriau dechreuwr, os nad o fewn fframwaith rhaglen addysgol? Creu a mireinio'ch sgiliau - eto, gorau po gyntaf y byddwch chi'n dechrau.
Rhaglenwyr uchelgeisiol o bob gwlad, unwch!
PS
Er mwyn cofnodi fy mherthynas uniongyrchol â'r myfyrwyr, rwy'n atodi llun cofiadwy o 2017 gyda dau reithor: Peter Scharff (dde) ac Albert Kharisovich Gilmutdinov (chwith).
Roedd yn werth gorffen y rhaglen o leiaf ar gyfer y gwisgoedd hyn! (kiding)