"Manifesto incipiendi programmatores a specialibus relativis" vel quomodo in vita ad hunc punctum perveni

Articulus meus hodie clare cogitat ab eo qui iter programmandi paene casu accidit (etsi naturaliter).

Ita intellego experientiam meam iustam esse experientiam, sed mihi videtur bene convenire in inclinatio generali. Praeterea, experientia infra descriptus plura se refert ad activitatis scientificae campum, sed id quod infernum non est kidding, extra utilem esse potest.

"Manifesto incipiendi programmatores a specialibus relativis" vel quomodo in vita ad hunc punctum perveni
Source: https://xkcd.com/664/

In universum dedicatum est omnibus studentibus currentibus a pristino discipulo!

omnium exspectationes

Cum baccalaurei gradum in Infocommunication Technologies et Systema Communicationis complevi in ​​2014, paene nihil de mundo programmandi sciebam. Ita, ut multi alii, subiectum "Computer Scientiae" meo primo anno suscepi, sed, Domine, primo anno fuit! Aeternitas suus fuit!

In genere, non expectabam aliquid in speciali a gradu baccalaurei diversum, et cum programmata domini intravi. "Communicatio et signum Processing" Institutum Germanico-Russicum Novae Technologiae.

Sed frustra.

Solus secundus attractio eramus, et latinae a primo adhuc manticas suas in Germania longinqua stipabant (internship sex menses accipit in secundo anno gradus domini). Id est, nemo ex proximo circulo modos educationis Europaeae graviter offendit nec erat qui de singulis quaereret.

Primo anno nostro, scilicet, varia genera exercitationum habuimus, in quibus democratice plerumque electionem praebebant inter scripta scripta (maxime in lingua MATLAB) et variis GUis specialibus adhibitis (seu sine scripto scripto — simulatione. volgo ambitus).

"Manifesto incipiendi programmatores a specialibus relativis" vel quomodo in vita ad hunc punctum perveni

Supervacaneum est dicere, nos futuri Magistri Scientiarum, ex nostra iuvenili stultitia, codicem scribentem tanquam ignem vitasse. Hic, exempli gratia, est Simulink ex MathWorks: hic cuneos, hic nexus, hic omnes generis occasus et virgas sunt.

Prospectus indigena et comprehensibilis homini qui antea in ambitu consilio et systemata machinando laboravit!

"Manifesto incipiendi programmatores a specialibus relativis" vel quomodo in vita ad hunc punctum perveni
Source: https://ch.mathworks.com/help/comm/examples/parallel-concatenated-convolutional-coding-turbo-codes.html

Visum est nobis.

rem

Una opera practica primi semestri erat progressionis OFDM signi transceptivoti ut pars subiecti "Modos exemplaris et Optimizationis". Idea est valde felix: technologia adhuc pertinet et satis populare propter suum usum, exempli gratia, retiacula in Wi-FI et LTE/LTE-A (forma OFDMA). Hoc optimum est magistris suis artibus exercere in systematis telecomatis formandis.

"Manifesto incipiendi programmatores a specialibus relativis" vel quomodo in vita ad hunc punctum perveni

Nunc autem nonnullae optiones specificationum technicarum dantur cum parametris compaginis compaginis manifesto impractical (ne solutionem in Interreti quaeramus), et supra memoratum Simulink nummus... Et in capite cum simpulo ferimur. de re;

  • Uterque stipes multum refertus est ignotis parametris, quae ad guttam pilei mutandam formidulosae sunt.
  • Flexionibus simplicibus numeris fieri videtur, sed adhuc conturbare, quod absit.
  • Apparatus cathedralis conspicue retardet ab usu GUI furentis, etiam in superficie superficiei per bibliothecas clausurarum promptarum.
  • Simulink idem opus habere domi aliquid conficias. Et quidem nulla optio.

Ita nos ad extremum utique consilium peregimus, sed illud magna subsidii exhalatione complevimus.

Aliquantum temporis elapsi venimus ad finem anni primi gradus domini. Moles congue utendi GUIs proportionaliter cum aucta proportio subditorum Germanorum cadere coepit, quamvis nondum ad punctum metadigma pervenerat. Multi ex nobis, incluso me, nostram amplissimam amplitudinem aedificandi superantes, magis ac magis in nostris inceptis scientificis Matlab usi (quamvis in forma Toolboxes), et non simulink quasi familiares.

Punctum in nostris dubiis erat locutio unius alumni anni secundi (modo illo tempore in Russiam redierant);

  • Oblivisci, saltem pro tempore internship, de Similink, Mathcad et aliis LabView - super montem omnia scripta sunt in MATLAB, utens ipsa MatLab vel ejus libera "versio" Octava.

Sententia aliqua partim vera evasit: in Ilmenau disceptatio de instrumentorum electione etiam non omnino soluta est. Vera electio maxime fuit inter MATLAB, Python et C.

Eodem die naturali motu captus sum: nonne OFDM exemplar meum transfundendi in formam scriptam transferam? Iustus pro fun.

Et ad opus obtinuit.

Paulatimque discessum

Pro calculis theoreticis simpliciter nexum cum hoc dabo optimum articulum 2011 from tgx * et in labitur LTE corporis iacuit magistri Michel-Tila (TU Ilmenau). Hoc satis esse puto.

"Ita," inquam, "repetamus, quid imitaturi sumus?"
Exemplar faciemus OFDM frame generans (OFDM pectora genitor).

Quid complectar;

  • informationes symbola
  • gubernator annuit
  • zeros (DC)

Quid (pro simplicitate) abstrahimus;

  • ab exemplaribus praepositionis cyclicae (si basics noveris, addita non erit difficilis)

"Manifesto incipiendi programmatores a specialibus relativis" vel quomodo in vita ad hunc punctum perveni

Clausus exemplaris schematis de quo agitur. In inverso FFT (IFFT) obstabimus. Ad picturam complendam, omnes reliqui se continuare possunt - Promisi magistros ex hac parte aliquid discipulis relinquere.

Ea nobis definiamus. exercere;

  • certum numerum sub- portantium;
  • artubus fixus longitudo;
  • unum zerum in medio et par cyphris in principio et fine artubus adiciendum est (tot, 5 partes);
  • symbola informationes modulantur utentes M-PSK vel M-QAM, ubi M ordo modulationis est.

In codice sit amet.

Totum scriptum ex Link.

Diffinimus initus parametri:

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

Nunc indices notitiarum symbolorum decernimus, praemissa acceptatione signa gubernatoris necessario antecedere et/vel post cyphras;

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

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

Tum positiones determinari possunt per functionem linspacevalores ad integros proximos minimos reducendo;

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

Addamus indices cyphrarum ad haec et alia:

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

Ideoque signum gubernatori cetera omnia indices sunt;

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

Nunc intellegamus gubernator signa.

Habemus exemplum (variabilis et gubernatores tui) et dicamus nos velle gubernatores ex hoc template, in membra nostra continue inseri. Nempe hoc in ansa fieri potest. Vel cum vulvis parum fallacibus ludere possis — fortunate, MATLAB hoc satis commode te sinit facere.

Primum, constituamus quot ex his exemplaribus perfecte in membra quadrant:

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

Deinde vectorem formamus qui in nostris exemplaribus consistit.

% 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

Et definimus vectorem parvum, quod particulam tantum Formulae - "cauda" continet, quae omnino non aptatur in artus:

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

Gubernator ingenia dabimus tibi:

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

Symbola ad informationes transeamus, nempe nuntium formabimus ac modulabimus;

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 

Omnia parata sunt! Coniungens artus:

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

Accipere debes aliquid simile hoc;

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

"Beatus." — Contente cogitavi et laptop clausit. Mihi duas horas ad omnia facere cepit: codicem scripto comprehendens, functiones quasdam Corrige discens et per artes mathematicas cogitans.

Quas igitur conclusiones duxi?

Subiectiva:

  • Grata est scriptura codicis et poeticae cognata!
  • Scriptura est commodissima methodus inquisitionis ad campum Communicationis et Processus Signalis.

objective:

  • Passeres e tormento emittere non opus est (nisi talis finis scholasticus est, sane dignum est): Simulink usus cepimus in problemate simplici instrumento sophistico solvendo.
  • GUI bonum est, sed melius est intelligere quod sub cucullo continetur.

Et nunc, cum longe sit discipulus, volo sequenti dicere fraternitati studenti;

  • Vade ad eum?

Conare codicem scribere, etsi primo malum est. Cum programmatione, ut cum quacunque alia actione, durissima pars est principium. Et melius est prius incipere: si peritus es aut etiam ars tantum, citius aut serius hac arte indigebis.

  • Postulate!

Progressivum postulare aditus et instrumenta a magistris et fabris. Si hoc fieri potest, utique...

  • Crea!

Ubi aliud melius est omnia incipientis ulcera, nisi intra institutionis rationem? Crede et acues tuas artes — iterum quo citius incipias, eo melius.

Programmatores adfectantes ex omnibus terris, coniungite!

PS

Ut relationem meam cum alumnis directam referam, memorabilem imaginem photographicam MMXVII cum duobus rectoribus adiungo: Petrum Scharff (ad dextram) et Albertum Kharisovich Gilmutdinov (ad sinistram).

"Manifesto incipiendi programmatores a specialibus relativis" vel quomodo in vita ad hunc punctum perveni

Programma conficiendum operae pretium erat his costumis saltem! (kidding)

Source: www.habr.com

Add a comment