"Manifesto no ka hoʻomaka ʻana i nā mea papahana mai nā ʻoihana pili" a pehea wau i hiki ai i kēia manawa o ke ola

ʻO kaʻu ʻatikala i kēia lā he mau manaʻo leo nui mai kahi kanaka i hele i ke ala o ka hoʻonohonoho ʻana ma kahi o ka pōʻino (ʻoiai maʻamau).

ʻAe, maopopo iaʻu ʻo kaʻu ʻike wale nō koʻu ʻike, akā i koʻu manaʻo ua kūpono ia i ke ʻano maʻamau. Eia kekahi, ʻo ka ʻike i hōʻike ʻia ma lalo nei e pili ana i ke kahua o ka hana ʻepekema, akā ʻo ka mea ʻaʻole ʻakaʻaka - hiki ke hoʻohana ma waho.

"Manifesto no ka hoʻomaka ʻana i nā mea papahana mai nā ʻoihana pili" a pehea wau i hiki ai i kēia manawa o ke ola
Source: https://xkcd.com/664/

Ma keʻano laulā, hoʻolaʻa i nā haumāna āpau o kēia manawa mai kahi haumāna mua!

Nā Manaolana

I koʻu hoʻopau ʻana i koʻu kēkelē laepua ma Infocommunication Technologies and Communication Systems ma 2014, ʻaneʻane ʻike au i ka honua o ka papahana. ʻAe, e like me nā mea ʻē aʻe he nui, ua lawe au i ke kumuhana "Computer Science" i koʻu makahiki mua - akā, e ka Haku, i koʻu makahiki mua ia! He mau loa ia!

Ma keʻano laulā, ʻaʻole wau i manaʻo i kahi mea ʻē aʻe mai ke kēkelē laepua, a i koʻu komo ʻana i ka papahana o ka haku. "Ke kamaʻilio a me ka hana hōʻailona" German-Russian Institute of New Technologies.

Makehewa nae...

ʻO mākou wale nō ka lua o ka lawe ʻana, a ʻo nā kāne mai ka mua e hoʻopaʻa mau ana i kā lākou mau ʻeke no Kelemānia mamao (ʻeono mahina ka hana ʻana i ka makahiki ʻelua o ke kēkelē master). ʻO ia hoʻi, ʻaʻohe mea o ka pōʻai pili i ʻike koʻikoʻi i nā ʻano o ka hoʻonaʻauao ʻEulopa, a ʻaʻohe mea e nīnau e pili ana i nā kikoʻī.

I ko mākou makahiki mua, ʻoiaʻiʻo, ua loaʻa iā mākou nā ʻano hana like ʻole, kahi i hāʻawi pinepine ʻia ai mākou i kahi koho ma waena o ke kākau ʻana i nā palapala (ka nui ma ka ʻōlelo MATLAB) a me ka hoʻohana ʻana i nā GUI kūikawā kūikawā (ma ke ʻano me ka kākau ʻole ʻana i nā palapala - simulation. nā kaiapuni hoʻohālike).

"Manifesto no ka hoʻomaka ʻana i nā mea papahana mai nā ʻoihana pili" a pehea wau i hiki ai i kēia manawa o ke ola

ʻAʻole pono e ʻōlelo, ʻo mākou, nā Masters of Science e hiki mai ana, mai ko mākou ʻōpio naʻaupō, pale aku i ke kākau ʻana i nā code e like me ke ahi. Eia kekahi laʻana, ʻo Simulink mai MathWorks: eia nā poloka, eia nā pili, eia nā ʻano hoʻonohonoho a me nā hoʻololi.

He ʻike maoli a hiki ke hoʻomaopopo ʻia e kekahi kanaka i hana mua ma ka hoʻolālā kaapuni a me ka ʻenekinia ʻōnaehana!

"Manifesto no ka hoʻomaka ʻana i nā mea papahana mai nā ʻoihana pili" a pehea wau i hiki ai i kēia manawa o ke ola
Source: https://ch.mathworks.com/help/comm/examples/parallel-concatenated-convolutional-coding-turbo-codes.html

No laila ua manaʻo mākou ...

ʻOiaʻiʻo

ʻO kekahi o nā hana kūpono o ke kau mua ʻo ia ka hoʻomohala ʻana i kahi transceiver hōʻailona OFDM ma ke ʻano o ke kumuhana "Methods for Modeling and Optimization". Ua kūleʻa loa ka manaʻo: pili mau ka ʻenehana a kaulana loa ma muli o kona hoʻohana ʻana, no ka laʻana, ma Wi-Fi a me LTE/LTE-A pūnaewele (ma ke ʻano o OFDMA). ʻO kēia ka mea maikaʻi loa no nā haku e hoʻomaʻamaʻa i kā lākou mākaukau i ka hoʻohālike ʻana i nā ʻōnaehana telecom.

"Manifesto no ka hoʻomaka ʻana i nā mea papahana mai nā ʻoihana pili" a pehea wau i hiki ai i kēia manawa o ke ola

A i kēia manawa ua hāʻawi ʻia mākou i nā koho he nui o nā kikoʻī ʻenehana me nā ʻāpana kikoʻī kūpono ʻole (i ʻole e ʻimi i kahi hopena ma ka Pūnaewele), a hoʻopaʻa mākou i ka Simulink i ʻōlelo ʻia ... A paʻi mākou ma ke poʻo me kahi kī o ka mea maoli:

  • Hoʻopiha ʻia kēlā me kēia poloka me ka nui o nā ʻāpana ʻike ʻole, he mea weliweli ke hoʻololi i ka hāʻule o kahi pāpale.
  • Pono e hana ʻia nā manipulations me nā helu, me he mea lā, maʻalahi, akā pono ʻoe e hoʻopiʻi, ʻaʻole ke Akua.
  • Ke hoʻolohi nei nā mīkini Cathedral mai ka hoʻohana nui ʻana i ka GUI, ʻoiai ma ke kahua o ka heʻe nalu ma nā hale waihona puke o nā poloka i loaʻa.
  • No ka hoʻopau ʻana i kekahi mea ma ka home, pono ʻoe e loaʻa ka Simulink like. A, ʻoiaʻiʻo, ʻaʻohe mea ʻē aʻe.

ʻAe, i ka hopena, ʻoiaʻiʻo, ua hoʻopau mākou i ka papahana, akā ua hoʻopau mākou me ka leo nui o ka hoʻomaha.

Ua hala kekahi manawa, a hiki mākou i ka pau ʻana o ka makahiki mua o ke kēkelē laepua. ʻO ka nui o nā haʻawina home e hoʻohana ana i nā GUI i hoʻomaka e hāʻule like me ka piʻi ʻana o ka māhele o nā kumuhana Kelemania, ʻoiai ʻaʻole ia i hiki i kahi o kahi hoʻololi paradigm. ʻO ka hapa nui o mākou, me aʻu hoʻi, ke lanakila nei i kā mākou amplitude nui e kūkulu, ʻoi aku ka nui o ka Matlab i hoʻohana ʻia i kā mākou papahana ʻepekema (ʻoiai ma ke ʻano o Toolboxes), ʻaʻole ʻo Simulink i ʻike ʻia.

ʻO ke kumu o kā mākou kānalua ʻo ia ka ʻōlelo a kekahi o nā haumāna makahiki ʻelua (ua hoʻi hou lākou i Rusia i kēlā manawa):

  • E poina, ma ka liʻiliʻi loa no ka lōʻihi o ka internship, e pili ana iā Similink, MathCad a me nā LabView ʻē aʻe - ma luna o ka puʻu i kākau ʻia nā mea āpau ma MATLAB, me ka hoʻohana ʻana iā MatLab ponoʻī a i ʻole kāna "version" Octave manuahi.

Ua ʻike ʻia ka ʻōlelo ʻoiaʻiʻo: ma Ilmenau, ʻaʻole i hoʻoholo piha ʻia ka hoʻopaʻapaʻa no ke koho ʻana i nā mea hana. ʻOiaʻiʻo, ʻo ka koho ma waena o MATLAB, Python a me C.

I ka lā hoʻokahi, ua lawe ʻia au e ka ʻoliʻoli maoli: ʻaʻole pono iaʻu e hoʻololi i kaʻu ʻāpana o ka hiʻohiʻona transmitter OFDM i kahi palapala i kākau ʻia? No ka leʻaleʻa wale.

A pono wau e hana.

Kauahi ʻia

Ma kahi o ka helu theoretical, e hāʻawi wale wau i kahi loulou i kēia ʻatikala maikaʻi loa 2011 mai tgx a ma na pahee LTE papa kino Nā haku wahine ʻO Michel-Tila (TU Ilmenau). Manaʻo wau e lawa kēia.

"No laila," i koʻu manaʻo, "e hana hou kāua, he aha kā mākou e hoʻohālike ai?"
E hoʻohālike mākou ʻO ka mea hana kiʻi OFDM (OFDM frame generator).

He aha ia e komo ai:

  • hōʻailona ʻike
  • hōʻailona hoʻokele
  • nā helu (DC)

He aha (no ka maʻalahi) a mākou i unuhi mai:

  • mai ka hoʻohālike ʻana i kahi prefix cyclic (inā ʻike ʻoe i nā kumu, ʻaʻole paʻakikī ka hoʻohui ʻana)

"Manifesto no ka hoʻomaka ʻana i nā mea papahana mai nā ʻoihana pili" a pehea wau i hiki ai i kēia manawa o ke ola

kiʻi poloka o ke kŘkohu e noʻonoʻo ʻia nei. E kū mākou ma ka poloka FFT (IFFT). No ka hoʻopiha ʻana i ke kiʻi, hiki i nā mea a pau ke hoʻomau i ke koena iā lākou iho - ua hoʻohiki wau i nā kumu o ka ʻoihana e waiho i kahi mea no nā haumāna.

E wehewehe kākou i ia mau mea no kākou iho. hoʻoikaika kino:

  • helu paʻa o nā sub-carriers;
  • lōʻihi paʻa paʻa;
  • pono mākou e hoʻohui i hoʻokahi zero ma ka waena a me ʻelua mau zeros ma ka hoʻomaka a me ka hopena o ke kiʻi (ka huina, 5 mau ʻāpana);
  • Hoʻololi ʻia nā hōʻailona ʻike me ka hoʻohana ʻana i ka M-PSK a i ʻole M-QAM, kahi ʻo M ke kauoha modulation.

E hoʻomaka kākou me ke code.

Hiki ke hoʻoiho ʻia ka palapala holoʻokoʻa mai loulou.

E wehewehe i nā ʻāpana hoʻokomo:

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

I kēia manawa, hoʻoholo mākou i nā helu o nā hōʻailona ʻike, me ka ʻae ʻana i ka manaʻo e pono e hele nā ​​hōʻailona pailaka ma mua a/a ma hope paha o nā zeros:

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

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

A laila hiki ke hoʻoholo i nā kūlana me ka hoʻohana ʻana i ka hana linspace, e hōʻemi ana i nā waiwai i ka liʻiliʻi loa o nā integer kokoke loa:

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

E hoʻohui kākou i nā huaʻōlelo o nā zeros i kēia a ʻano:

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

No laila, ʻo nā hōʻailona hōʻailona pailaka nā mea ʻē aʻe:

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

I kēia manawa e hoʻomaopopo kākou i nā hōʻailona hoʻokele.

Loaʻa iā mākou kahi template (variable nā pailaka), a e ʻōlelo mākou makemake mākou e hoʻokomo ʻia nā pailaka mai kēia template i loko o kā mākou kiʻi. ʻOiaʻiʻo, hiki ke hana i kēia ma kahi loop. A i ʻole hiki iā ʻoe ke pāʻani liʻiliʻi me nā matrices - pōmaikaʻi hiki iā MATLAB ke hana i kēia me ka ʻoluʻolu.

ʻO ka mea mua, e hoʻoholo kākou i ka nui o kēia mau hiʻohiʻona i kūpono loa i ke kiʻi:

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

A laila, hana mākou i kahi vector i loaʻa i kā mākou mau template:

% 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

A wehewehe mākou i kahi vector liʻiliʻi i loaʻa i kahi ʻāpana o ka template - ʻo ka "huelo", ʻaʻole kūpono loa i ke kiʻi:

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

Loaʻa iā mākou nā mea hoʻokele:

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

E neʻe kākou i nā hōʻailona ʻike, ʻo ia hoʻi, e hana mākou i kahi leka a hoʻololi iā ia:

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 

Ua mākaukau nā mea a pau! Ka hui ʻana i ke kiʻi:

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

Pono ʻoe e loaʻa i kahi mea e like me kēia:

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

"Pomaikai!" — Ua noʻonoʻo wau me ka ʻoluʻolu a pani i ka kamepiula. Ua lawe iaʻu i ʻelua mau hola e hana ai i nā mea āpau: me ke kākau ʻana i nā code, ke aʻo ʻana i kekahi mau hana Matlab a me ka noʻonoʻo ʻana ma o nā hana makemakika.

He aha nā hopena aʻu i huki ai i kēlā manawa?

Kumuhana:

  • ʻOluʻolu ke kākau code a like me ka poema!
  • ʻO ka Scripting ke ala noiʻi maʻalahi loa no ke kahua o ka kamaʻilio a me ka hana hōʻailona.

Pahuhopu:

  • ʻAʻohe pono e pana i nā manu liʻiliʻi mai kahi pūkuniahi (inā ʻaʻole ia he pahuhopu hoʻonaʻauao, ʻoiaʻiʻo, pono ia): me ka hoʻohana ʻana iā Simulink, lawe mākou i ka hoʻoponopono ʻana i kahi pilikia maʻalahi me kahi mea hana maʻalahi.
  • Maikaʻi ka GUI, akā ʻoi aku ka maikaʻi o ka hoʻomaopopo ʻana i ka mea i loko o "ma lalo o ka puʻupuʻu".

A i kēia manawa, no ka lōʻihi o ka lilo ʻana i haumāna, makemake wau e ʻōlelo i kēia mau mea i ka ʻohana haumāna:

  • E hele no ia!

E ho'āʻo e kākau i ke code, ʻoiai he hewa i ka wā mua. Me ka papahana, e like me nā hana ʻē aʻe, ʻo ka mea paʻakikī ka hoʻomaka. A ʻoi aku ka maikaʻi o ka hoʻomaka ʻana ma mua: inā he ʻepekema ʻoe a i ʻole he techie wale nō, ma hope a ma hope paha e pono ai ʻoe i kēia mākaukau.

  • Koi!

E koi i nā ala holomua a me nā mea hana mai nā kumu a me nā luna. Inā hiki kēia, ʻoiaʻiʻo ...

  • Hana!

Ma hea kahi ʻoi aku ka maikaʻi o ka loaʻa ʻana o nā ʻeha a pau o ka mea hoʻomaka, inā ʻaʻole i loko o ke kahua o kahi papahana hoʻonaʻauao? E hana a hoʻoikaika i kāu mau mākau - hou, ʻoi aku ka wikiwiki o kou hoʻomaka ʻana, ʻoi aku ka maikaʻi.

ʻO nā mea hoʻolālā papahana mai nā ʻāina āpau, e hui!

PS

I mea e hoʻopaʻa ai i koʻu pilina pili me nā haumāna, ke hoʻopili nei au i kahi kiʻi poina ʻole o 2017 me ʻelua mau mea hoʻoponopono: Peter Scharff (ma ka ʻākau) a me Albert Kharisovich Gilmutdinov (ma ka hema).

"Manifesto no ka hoʻomaka ʻana i nā mea papahana mai nā ʻoihana pili" a pehea wau i hiki ai i kēia manawa o ke ola

Ua kūpono ka hoʻopau ʻana i ka papahana no kēia mau lole! (ʻakaʻaka)

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka