"Manifès pou kòmanse pwogramasyon soti nan espesyalite ki gen rapò" oswa ki jan mwen te rive nan pwen sa a nan lavi yo

Atik mwen jodi a se panse byen fò nan men yon moun ki te pran chemen an nan pwogram prèske pa aksidan (kwake natirèlman).

Wi, mwen konprann ke eksperyans mwen se jis eksperyans mwen, men li sanble ke li anfòm byen nan tandans jeneral la. Anplis, eksperyans ki dekri anba a gen rapò plis ak domèn aktivite syantifik la, men kisa lanfè a pa p jwe - li ka itil deyò.

"Manifès pou kòmanse pwogramasyon soti nan espesyalite ki gen rapò" oswa ki jan mwen te rive nan pwen sa a nan lavi yo
Sous: https://xkcd.com/664/

An jeneral, dedye a tout elèv aktyèl soti nan yon ansyen elèv!

Atant

Lè mwen te konplete diplòm bakaloreya mwen nan teknoloji enfokominikasyon ak sistèm kominikasyon an 2014, mwen te konnen prèske anyen sou mond lan nan pwogramasyon. Wi, tankou anpil lòt moun, mwen te pran matyè "Syans enfòmatik" nan premye ane mwen - men, Seyè, se te nan premye ane mwen! Se te yon letènite!

An jeneral, mwen pa t 'atann anyen patikilyèman diferan de yon diplòm bakaloreya, ak lè mwen te antre nan pwogram mèt la. "Kominikasyon ak pwosesis siyal" Enstiti Alman-Ris nan nouvo teknoloji.

Men pou gremesi...

Nou te sèlman dezyèm admisyon an, ak mesye yo nan premye a te toujou chaje sak yo pou byen lwen Almay (estaj la pran sis mwa nan dezyèm ane a nan yon metriz). Nan lòt mo, pa gen moun ki soti nan sèk la imedya te ankò seryezman rankontre metòd yo nan edikasyon Ewopeyen an, epi pa te gen okenn moun ki mande sou detay yo.

Nan premye ane nou an, nan kou, nou te gen divès kalite pratik, kote yo te anjeneral demokratikman ofri nou yon chwa ant ekri scripts (sitou nan lang MATLAB) ak itilize divès kalite entèfas trè espesyalize (nan sans ke san yo pa ekri scripts - simulation). modèl anviwònman).

"Manifès pou kòmanse pwogramasyon soti nan espesyalite ki gen rapò" oswa ki jan mwen te rive nan pwen sa a nan lavi yo

Evidamman di, nou menm, fiti Masters Syans yo, nan sòt jèn nou an, evite ekri kòd tankou dife. Isit la, pou egzanp, se Simulink soti nan MathWorks: isit la se blòk yo, isit la se koneksyon yo, isit la se tout kalite anviwònman ak switch.

Yon vi ki natif natal ak konprann pou yon moun ki te deja travay nan konsepsyon sikwi ak jeni sistèm!

"Manifès pou kòmanse pwogramasyon soti nan espesyalite ki gen rapò" oswa ki jan mwen te rive nan pwen sa a nan lavi yo
Sous: https://ch.mathworks.com/help/comm/examples/parallel-concatenated-convolutional-coding-turbo-codes.html

Se konsa, li te sanble pou nou...

Reyalite

Youn nan travay yo pratik nan premye semès la se devlopman nan yon transceiver siyal OFDM kòm yon pati nan sijè a "Metòd pou Modèl ak Optimizasyon". Lide a gen anpil siksè: teknoloji a toujou enpòtan ak byen popilè akòz itilizasyon li yo, pou egzanp, nan Wi-Fi ak LTE / LTE-A rezo (nan fòm lan nan OFDMA). Sa a se pi bon bagay pou mèt yo pratike konpetans yo nan modèl sistèm telecom.

"Manifès pou kòmanse pwogramasyon soti nan espesyalite ki gen rapò" oswa ki jan mwen te rive nan pwen sa a nan lavi yo

Epi, koulye a yo ba nou plizyè opsyon nan espesifikasyon teknik ak paramèt ankadreman evidamman enposib (pou yo pa gade pou yon solisyon sou entènèt la), epi nou bondi sou Simulink ki deja mansyone ... Epi nou jwenn frape sou tèt la ak yon teyèr. nan reyalite:

  • Chak blòk se plen ak yon anpil nan paramèt enkoni, ki fè pè chanje nan gout nan yon chapo.
  • Manipilasyon yo ak nimewo yo bezwen fè, li sanble, senp, men ou toujou gen meli melo, Bondye padon.
  • Machin katedral yo ralanti anpil lè yo sèvi ak entèfas enpresyonan, menm nan etap navige nan bibliyotèk blòk ki disponib yo.
  • Pou fini yon bagay lakay ou, ou bezwen gen menm Simulink la. Epi, an reyalite, pa gen okenn altènativ.

Wi, nan fen a, nou, nan kou, konplete pwojè a, men nou te konplete li ak yon ekzalasyon byen fò nan soulajman.

Kèk tan pase, epi nou rive nan fen premye ane nan metriz la. Kantite devwa lè l sèvi avèk GUI yo te kòmanse tonbe pwopòsyonèlman ak ogmantasyon nan pwopòsyon de matyè Alman yo, byenke li poko rive nan pwen nan yon chanjman paradigm. Anpil nan nou, ki gen ladan m ', simonte anplitid konsiderab nou yo bati, pi plis ak plis itilize Matlab nan pwojè syantifik nou yo (kwake nan fòm lan nan bwat zouti), epi yo pa Simulink la w pèdi abitye.

Pwen nan dout nou yo se fraz youn nan etidyan dezyèm ane yo (yo te jis tounen nan Larisi nan epòk sa a):

  • Bliye, omwen pou dire estaj la, sou Similink, MathCad ak lòt LabView - sou mòn lan, tout bagay yo ekri nan MATLAB, lè l sèvi avèk MatLab tèt li oswa "vèsyon" gratis li a Octave.

Deklarasyon an te tounen an pati vre: nan Ilmenau, diskisyon an sou chwa zouti yo pa te konplètman rezoud. Se vre, chwa a te sitou ant MATLAB, Python ak C.

Nan menm jou a, mwen te pran pa yon eksitasyon natirèl: mwen pa ta dwe transfere pati mwen an nan modèl la transmetè OFDM nan yon fòm scripted? Jis pou plezi.

Apre sa, mwen te kòmanse travay.

Pa za pa

Olye de kalkil teyorik, mwen pral tou senpleman bay yon lyen sa a ekselan atik 2011 soti nan tgx ak sou glisad yo Kouch fizik LTE pwofesè yo Michel-Tila (TU Ilmenau). Mwen panse ke sa a pral ase.

"Se konsa," mwen te panse, "ann repete, ki sa nou pral modèl?"
Nou pral modèl OFDM ankadreman dèlko (OFDM ankadreman dèlko).

Ki sa li pral genyen ladan l:

  • senbòl enfòmasyon yo
  • siyal pilòt yo
  • zewo (DC)

Ki sa (pou dedomajman pou senplisite) nou abstrè de:

  • soti nan modèl yon prefiks siklik (si ou konnen Basics yo, ajoute li pa pral difisil)

"Manifès pou kòmanse pwogramasyon soti nan espesyalite ki gen rapò" oswa ki jan mwen te rive nan pwen sa a nan lavi yo

Dyagram blòk nan modèl ki anba konsiderasyon an. Nou pral sispann nan blòk envès FFT (IFFT). Pou konplete foto a, tout moun ka kontinye rès la tèt yo - mwen te pwomèt pwofesè yo nan depatman an kite yon bagay pou elèv yo.

Ann defini sa yo pou tèt nou. egzèsis:

  • kantite fiks sou transpòtè;
  • longè ankadreman fiks;
  • nou dwe ajoute yon zewo nan mitan an ak yon pè zewo nan kòmansman ak nan fen ankadreman an (total, 5 moso);
  • senbòl enfòmasyon yo modile lè l sèvi avèk M-PSK oswa M-QAM, kote M se lòd modulasyon an.

Ann kòmanse ak kòd la.

Ou ka telechaje tout script la lyen.

Ann defini paramèt opinyon yo:

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

Koulye a, nou detèmine endis yo nan senbòl enfòmasyon, aksepte site la ke siyal pilòt yo dwe nesesèman ale anvan ak / oswa apre zewo:

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

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

Lè sa a, pozisyon yo ka detèmine lè l sèvi avèk fonksyon an linspace, diminye valè yo nan pi piti nan nonb antye ki pi pre yo:

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

Ann ajoute endèks zewo nan sa a epi sòt:

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

An konsekans, endis siyal pilòt yo se tout lòt bagay:

%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); 

Koulye a, ann konprann siyal pilòt yo.

Nou gen yon modèl (varyab pilòt), epi ann di nou vle pilòt ki soti nan modèl sa a yo dwe antre nan ankadreman nou an sekans. Natirèlman, sa a ka fè nan yon bouk. Oswa ou ka jwe yon ti kras difisil ak matris - erezman MATLAB pèmèt ou fè sa ak ase konfò.

Premyèman, ann detèmine konbyen nan modèl sa yo anfòm nèt nan ankadreman an:

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

Apre sa, nou fòme yon vektè ki gen ladann modèl nou yo:

% 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

Epi nou defini yon ti vektè ki gen sèlman yon moso nan modèl la - "ke a", ki pa anfòm nèt nan ankadreman an:

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

Nou jwenn karaktè pilòt:

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

Ann ale nan senbòl enfòmasyon, sètadi, nou pral fòme yon mesaj ak modil li:

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 

Tout pare! Asanble ankadreman an:

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

Ou ta dwe jwenn yon bagay tankou sa a:

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

"Bliss!" — Mwen te panse avèk kontantman epi mwen fèmen laptop la. Li te pran dezèd tan pou m fè tout bagay: tankou ekri kòd, aprann kèk fonksyon Matlab ak reflechi nan ke trik nouvèl matematik.

Ki konklizyon mwen te tire lè sa a?

Subjectif:

  • Ekri kòd se bèl ak sanble ak pwezi!
  • Scripting se metòd rechèch ki pi pratik pou domèn kominikasyon ak pwosesis siyal.

Objektif:

  • Pa gen okenn nesesite pou tire ti zwazo nan yon kanon (sòf si yon objektif edikasyon konsa se, nan kou, vo li): lè l sèvi avèk Simulink, nou te pran sou rezoud yon pwoblèm senp ak yon zouti sofistike.
  • GUI se yon bon bagay, men konprann sa ki genyen "anba kapo a" se pi bon.

Epi kounyeya, mwen byen lwen pou m yon etidyan, mwen vle di sa ki annapre yo ak fratènite etidyan an:

  • Ale pou li!

Eseye ekri kòd, menm si li move okòmansman. Avèk pwogramasyon, menm jan ak nenpòt lòt aktivite, pati ki pi difisil la se kòmansman an. Epi li pi bon pou kòmanse pi bonè: si ou se yon syantis oswa menm jis yon teknisyen, pi bonè oswa pita w ap bezwen konpetans sa a.

  • Mande!

Mande apwòch pwogresif ak zouti nan men pwofesè ak sipèvizè. Si sa posib, nan kou...

  • Kreye!

Ki lòt kote li pi bon pou jwenn sou tout maleng nan yon debutan, si se pa nan kad yon pwogram edikasyon? Kreye ak amelyore konpetans ou - ankò, pi bonè ou kòmanse, pi bon an.

Aspiran pwogramasyon ki soti nan tout peyi, ini!

PS

Pou m anrejistre relasyon dirèk mwen ak etidyan yo, mwen tache yon foto memorab nan ane 2017 la ak de rektè: Peter Scharff (sou bò dwat la) ak Albert Kharisovich Gilmutdinov (sou bò gòch).

"Manifès pou kòmanse pwogramasyon soti nan espesyalite ki gen rapò" oswa ki jan mwen te rive nan pwen sa a nan lavi yo

Li te vo fini pwogram nan omwen pou kostim sa yo! (plèzantri)

Sous: www.habr.com

Add nouvo kòmantè