“Manifesto fun awọn olupilẹṣẹ ibẹrẹ lati awọn iyasọtọ ti o jọmọ” tabi bii MO ṣe de aaye yii ni igbesi aye

Nkan mi loni jẹ awọn ero ti n pariwo lati ọdọ eniyan ti o gba ọna siseto fere lairotẹlẹ (botilẹjẹpe nipa ti ara).

Bẹẹni, Mo ye pe iriri mi nikan ni iriri mi, ṣugbọn o dabi si mi pe o baamu daradara sinu aṣa gbogbogbo. Pẹlupẹlu, iriri ti a ṣalaye ni isalẹ ṣe alaye diẹ sii si aaye iṣẹ ṣiṣe ijinle sayensi, ṣugbọn tani o mọ, o le wulo ni ita.

“Manifesto fun awọn olupilẹṣẹ ibẹrẹ lati awọn iyasọtọ ti o jọmọ” tabi bii MO ṣe de aaye yii ni igbesi aye
orisun: https://xkcd.com/664/

Ni gbogbogbo, igbẹhin si gbogbo awọn ọmọ ile-iwe lọwọlọwọ lati ọdọ ọmọ ile-iwe iṣaaju!

Awọn ireti

Nigbati mo pari alefa ile-iwe giga mi ni Awọn Imọ-ẹrọ Infocommunication ati Awọn ọna Ibaraẹnisọrọ ni ọdun 2014, Emi ko mọ ohunkohun nipa agbaye ti siseto. Bẹẹni, bii ọpọlọpọ awọn miiran, Mo gba koko-ọrọ “Imọ Kọmputa” ni ọdun akọkọ mi - ṣugbọn, Oluwa, o jẹ ọdun akọkọ mi! O ti jẹ ayeraye!

Ni gbogbogbo, Emi ko nireti ohunkohun ti o yatọ ni pataki lati alefa bachelor, ati nigbati mo wọ eto titunto si "Ibaraẹnisọrọ ati Ilana Ifihan agbara" German-Russian Institute of New Technologies.

Sugbon lasan...

A nikan ni gbigbemi keji, ati awọn eniyan lati akọkọ tun n ṣajọpọ awọn apo wọn fun Germany ti o jinna (iṣẹṣẹṣẹ gba oṣu mẹfa ni ọdun keji ti alefa titunto si). Ni awọn ọrọ miiran, ko si ẹnikan lati agbegbe ti o wa nitosi ti o ti pade awọn ọna ti ẹkọ European, ko si si ẹnikan lati beere nipa awọn alaye naa.

Ni ọdun akọkọ wa, nitorinaa, a ni ọpọlọpọ awọn iṣe iṣe, ninu eyiti a nigbagbogbo funni ni ijọba tiwantiwa yiyan laarin awọn iwe afọwọkọ kikọ (paapaa ni ede MATLAB) ati lilo ọpọlọpọ awọn GUI ti o ni amọja pupọ (ni ori pe laisi kikọ awọn iwe afọwọkọ - kikopa awọn agbegbe awoṣe).

“Manifesto fun awọn olupilẹṣẹ ibẹrẹ lati awọn iyasọtọ ti o jọmọ” tabi bii MO ṣe de aaye yii ni igbesi aye

Tialesealaini lati sọ, awa, awọn Masters ti Imọ-ọjọ iwaju, lati inu omugo ọdọ wa, yago fun koodu kikọ bi ina. Nibi, fun apẹẹrẹ, ni Simulink lati MathWorks: nibi ni awọn bulọọki, eyi ni awọn asopọ, nibi ni gbogbo iru awọn eto ati awọn yipada.

Wiwo ti o jẹ abinibi ati oye si eniyan ti o ti ṣiṣẹ tẹlẹ ni apẹrẹ iyika ati imọ-ẹrọ awọn ọna ṣiṣe!

“Manifesto fun awọn olupilẹṣẹ ibẹrẹ lati awọn iyasọtọ ti o jọmọ” tabi bii MO ṣe de aaye yii ni igbesi aye
orisun: https://ch.mathworks.com/help/comm/examples/parallel-concatenated-convolutional-coding-turbo-codes.html

Nitorina o dabi fun wa ...

Otito

Ọkan ninu awọn iṣẹ iṣe ti igba ikawe akọkọ ni idagbasoke ti transceiver ifihan agbara OFDM gẹgẹbi apakan ti koko-ọrọ “Awọn ọna fun Awoṣe ati Imudara”. Ero naa ṣaṣeyọri pupọ: imọ-ẹrọ tun wulo ati olokiki pupọ nitori lilo rẹ, fun apẹẹrẹ, ni Wi-Fi ati awọn nẹtiwọọki LTE/LTE-A (ni irisi OFDMA). Eyi ni ohun ti o dara julọ fun awọn ọga lati ṣe adaṣe awọn ọgbọn wọn ni awoṣe awọn eto tẹlifoonu.

“Manifesto fun awọn olupilẹṣẹ ibẹrẹ lati awọn iyasọtọ ti o jọmọ” tabi bii MO ṣe de aaye yii ni igbesi aye

Ati pe ni bayi a fun wa ni ọpọlọpọ awọn aṣayan ti awọn alaye imọ-ẹrọ pẹlu awọn aye fireemu ti ko ṣee ṣe (ki o ma ṣe wa ojutu kan lori Intanẹẹti), ati pe a tẹ lori Simulink ti a ti sọ tẹlẹ… Ati pe a lu ori pẹlu teapot kan. ti otito:

  • Bulọọki kọọkan jẹ pẹlu ọpọlọpọ awọn aye aimọ, eyiti o jẹ ẹru lati yipada ni ju ti ijanilaya kan.
  • Awọn ifọwọyi pẹlu awọn nọmba nilo lati ṣee ṣe, o dabi pe o rọrun, ṣugbọn o tun ni lati ṣafẹri, Ọlọrun kọ.
  • Awọn ẹrọ Katidira ni akiyesi fa fifalẹ lati lilo itara ti GUI, paapaa ni ipele ti hiho nipasẹ awọn ile-ikawe ti awọn bulọọki ti o wa.
  • Lati pari nkan ni ile, o nilo lati ni Simulink kanna. Ati, ni otitọ, ko si awọn omiiran.

Bẹẹni, ni ipari a, dajudaju, pari ise agbese na, ṣugbọn a pari rẹ pẹlu ariwo nla ti iderun.

Diẹ ninu awọn akoko koja, ati awọn ti a wá si opin ti akọkọ odun ti awọn titunto si ká ìyí. Iye iṣẹ amurele nipa lilo awọn GUI bẹrẹ si ṣubu ni iwọn pẹlu ilosoke ninu ipin ti awọn koko-ọrọ Jamani, botilẹjẹpe ko tii de aaye ti iyipada paradigm. Pupọ wa, pẹlu mi, bibori titobi nla wa lati ṣe agbero, diẹ sii ati siwaju sii ti a lo Matlab ninu awọn iṣẹ akanṣe imọ-jinlẹ wa (botilẹjẹpe ni irisi Awọn apoti irinṣẹ), kii ṣe Simulink ti o dabi ẹni pe o faramọ.

Koko ninu awọn iyemeji wa ni gbolohun ọkan ninu awọn ọmọ ile-iwe ọdun keji (wọn ṣẹṣẹ pada si Russia ni akoko yẹn):

  • Gbagbe, o kere ju fun iye akoko ikọṣẹ, nipa Similink, MathCad ati LabView miiran - lori oke ohun gbogbo ni a kọ sinu MATLAB, ni lilo MatLab funrararẹ tabi “ẹya” Octave ọfẹ rẹ.

Alaye naa yipada lati jẹ otitọ ni apakan: ni Ilmenau, ariyanjiyan lori yiyan awọn irinṣẹ ko tun yanju patapata. Lootọ, yiyan jẹ pupọ julọ laarin MATLAB, Python ati C.

Ni ọjọ kanna, a mu mi nipasẹ idunnu adayeba: ṣe ko yẹ ki n gbe apakan mi ti awoṣe atagba OFDM sinu fọọmu iwe afọwọkọ? Igbadun nikan ni.

Ati pe Mo ni lati ṣiṣẹ.

Igbese nipa igbese

Dipo ti o tumq si isiro, Emi yoo nìkan fun ọna asopọ kan si yi o tayọ article 2011 lati tgx ati lori awọn kikọja LTE ti ara Layer awọn ọjọgbọn Michel-Tila (TU Ilmenau). Mo ro pe eyi yoo to.

"Nitorina," Mo ro, "jẹ ki a tun ṣe, kini a yoo ṣe awoṣe?"
A yoo ṣe apẹẹrẹ OFDM fireemu monomono (OFDM fireemu monomono).

Ohun ti yoo pẹlu:

  • awọn aami alaye
  • awaoko awọn ifihan agbara
  • odo (DC)

Kini (nitori ti ayedero) a áljẹbrà lati:

  • lati ṣe apẹẹrẹ ìpele cyclic (ti o ba mọ awọn ipilẹ, fifi kun kii yoo nira)

“Manifesto fun awọn olupilẹṣẹ ibẹrẹ lati awọn iyasọtọ ti o jọmọ” tabi bii MO ṣe de aaye yii ni igbesi aye

Àkọsílẹ aworan atọka ti awọn awoṣe labẹ ero. A yoo da duro ni onidakeji FFT (IFFT) Àkọsílẹ. Lati pari aworan naa, gbogbo eniyan le tẹsiwaju si isinmi funrararẹ - Mo ṣe ileri fun awọn olukọ lati ẹka lati fi nkan silẹ fun awọn ọmọ ile-iwe.

Jẹ ká setumo awon fun ara wa. ere idaraya:

  • ti o wa titi nọmba ti iha-ẹrù;
  • ipari fireemu ti o wa titi;
  • a gbọdọ fi ọkan odo ni aarin ati ki o kan bata ti odo ni ibẹrẹ ati opin ti awọn fireemu (lapapọ, 5 ege);
  • Awọn aami alaye ti wa ni iyipada nipa lilo M-PSK tabi M-QAM, nibiti M jẹ aṣẹ awose.

Jẹ ká bẹrẹ pẹlu awọn koodu.

Gbogbo iwe afọwọkọ le ṣe igbasilẹ lati ọna asopọ.

Jẹ ki a setumo awọn paramita igbewọle:

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

Ni bayi a pinnu awọn atọka ti awọn aami alaye, gbigba aaye ti awọn ifihan agbara awakọ gbọdọ dandan ṣaaju ati/tabi lẹhin awọn odo:

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ẹhinna awọn ipo le pinnu nipa lilo iṣẹ naa linspace, idinku awọn iye si kere julọ ti awọn nọmba to sunmọ:

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

Jẹ ki a ṣafikun awọn atọka ti awọn odo si eyi ki a too:

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

Nitorinaa, awọn atọka ifihan agbara awakọ jẹ ohun gbogbo miiran:

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

Bayi jẹ ki a loye awọn ifihan agbara awaoko.

A ni awoṣe (ayipada awakọ awakọ), ati jẹ ki a sọ pe a fẹ ki awọn awaoko lati inu awoṣe yii lati fi sii sinu fireemu wa lẹsẹsẹ. Nitoribẹẹ, eyi le ṣee ṣe ni lupu kan. Tabi o le mu ẹtan kekere kan pẹlu awọn matrices - da MATLAB gba ọ laaye lati ṣe eyi pẹlu itunu to to.

Ni akọkọ, jẹ ki a pinnu iye awọn awoṣe wọnyi ti baamu patapata sinu fireemu naa:

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

Nigbamii ti, a ṣẹda fekito kan ti o ni awọn awoṣe wa:

% 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

Ati pe a ṣalaye fekito kekere kan ti o ni nkan kan ti awoṣe nikan - “iru”, eyiti ko baamu patapata sinu fireemu naa:

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

A gba awọn oṣere awakọ:

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

Jẹ ki a lọ siwaju si awọn aami alaye, eyun, a yoo ṣe agbekalẹ ifiranṣẹ kan ati ṣe atunṣe rẹ:

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 

Gbogbo ti šetan! Iṣakojọpọ fireemu:

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

O yẹ ki o gba nkan bi eyi:

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

"Ayọ!" — Mo ro inu didun ati ki o pa awọn laptop. O gba mi ni awọn wakati meji lati ṣe ohun gbogbo: pẹlu koodu kikọ, kikọ diẹ ninu awọn iṣẹ Matlab ati ironu nipasẹ awọn ẹtan mathematiki.

Awọn ipinnu wo ni MO ṣe lẹhinna?

Koko-ọrọ:

  • Koodu kikọ jẹ dídùn ati akin si oríkì!
  • Iwe afọwọkọ jẹ ọna iwadii irọrun ti o rọrun julọ fun aaye ti Ibaraẹnisọrọ ati Ṣiṣeto ifihan agbara.

Idi:

  • Ko si iwulo lati titu awọn ologoṣẹ lati inu ibọn kan (ayafi ti iru ibi-afẹde eto-ẹkọ ba jẹ, dajudaju, tọsi rẹ): lilo Simulink, a mu iṣoro ti o rọrun pẹlu ohun elo fafa kan.
  • GUI dara, ṣugbọn agbọye ohun ti o wa ninu "labẹ hood" dara julọ.

Ati ni bayi, ti o jinna lati jẹ ọmọ ile-iwe, Mo fẹ sọ atẹle yii si ẹgbẹ ọmọ ile-iwe:

  • Lọ fun o!

Gbiyanju kikọ koodu, paapa ti o ba jẹ buburu ni akọkọ. Pẹlu siseto, bii pẹlu iṣẹ ṣiṣe eyikeyi, apakan ti o nira julọ ni ibẹrẹ. Ati pe o dara lati bẹrẹ ni iṣaaju: ti o ba jẹ onimọ-jinlẹ tabi paapaa techie kan, pẹ tabi ya iwọ yoo nilo ọgbọn yii.

  • Ibere!

Beere awọn ọna ilọsiwaju ati awọn irinṣẹ lati ọdọ awọn olukọ ati awọn alabojuto. Ti eyi ba ṣee ṣe, dajudaju ...

  • Ṣẹda!

Nibo ni o dara julọ lati bori gbogbo awọn egbò ti olubere, ti ko ba wa laarin ilana ti eto ẹkọ? Ṣẹda ati hone awọn ọgbọn rẹ - lẹẹkansi, ni kete ti o bẹrẹ, dara julọ.

Aspiring pirogirama lati gbogbo awọn orilẹ-ede, iparapọ!

PS

Lati le ṣe igbasilẹ ibatan taara mi pẹlu awọn ọmọ ile-iwe, Mo n so fọto ti o ṣe iranti ti 2017 pẹlu awọn olutọpa meji: Peter Scharff (ni apa ọtun) ati Albert Kharisovich Gilmutdinov (ni apa osi).

“Manifesto fun awọn olupilẹṣẹ ibẹrẹ lati awọn iyasọtọ ti o jọmọ” tabi bii MO ṣe de aaye yii ni igbesi aye

O tọ lati pari eto naa o kere ju fun awọn aṣọ wọnyi! (aṣere)

orisun: www.habr.com

Fi ọrọìwòye kun