Chinyorwa changu nhasi mifungo inonzwika kubva kumunhu akatora nzira yekuronga zvakangoita netsaona (zvisinei nemasikirwo).
Hongu, ndinonzwisisa kuti chiitiko changu chingori chiitiko changu, asi zvinoratidzika kwandiri kuti zvinopindirana mune yakajairika maitiro. Uyezve, chiitiko chinotsanangurwa pazasi chine chekuita zvakanyanya kumunda wesainzi chiitiko, asi izvo gehena risiri kutamba - rinogona kubatsira kunze.
Source:
Kazhinji, yakatsaurirwa kune vese vadzidzi vemazuva ano kubva kune aimbova mudzidzi!
Zvinotarisirwa
Pandakapedza dhigirii rangu reBachelor muInfocommunication Technologies neCommunication Systems muna 2014, hapana chandaiziva nezvenyika yehurongwa. Hongu, sevamwe vakawanda, ndakatora chidzidzo cheβComputer Scienceβ mugore rangu rokutanga β asi, Ishe, rakanga riri gore rangu rokutanga! Yave isingaperi!
Kazhinji, ndakanga ndisingatarisiri chero chinhu chakasiyana zvakanyanya kubva kudhigirii rebhaibheri, uye pandakapinda purogiramu yatenzi.
Asi pasina...
Isu taingova chechipiri chekutora, uye vakomana vekutanga vaive vachiri kurongedza mabhegi avo kuenda kure kure Germany (iyo internship inotora mwedzi mitanhatu mugore rechipiri redhigirii ra master). Mune mamwe mazwi, hapana kubva kudenderedzwa repedyo akange asati asangana zvakakomba nzira dzedzidzo yeEurope, uye pakanga pasina wekubvunza nezve ruzivo.
Mugore redu rekutanga, takanga tine maitiro akasiyana siyana, umo taigara tichipihwa sarudzo pakati pekunyora zvinyorwa (kunyanya mumutauro weMATLAB) uye kushandisa maGUI akasiyana siyana (mupfungwa yekuti pasina kunyora zvinyorwa - simulation. modelling environments).
Hazvina maturo kutaura, isu, Masters emangwana eSainzi, kubva muhupenzi hwedu hwehuduku, takadzivisa kunyora kodhi semoto. Heino, semuenzaniso, iSimulink kubva kuMathWorks: heano mabhuraki, heano makabatana, heano ese marudzi ezvirongwa uye switch.
Maonero ekuzvarwa uye anonzwisisika kune munhu akamboshanda mudhizaini dhizaini uye masisitimu engineering!
Saka zvaiita kwatiri...
Chokwadi
Rimwe remabasa anoshanda esemester yekutanga kwaive kuvandudzwa kweiyo OFDM chiratidzo che transceiver sechikamu chechinyorwa "Nzira dzeModelling uye Optimization". Iyo pfungwa yakabudirira kwazvo: tekinoroji ichiri yakakosha uye yakakurumbira nekuda kwekushandiswa kwayo, semuenzaniso, muWi-Fi uye LTE/LTE-A network (mune fomu yeOFDMA). Ichi ndicho chinhu chakanakisa kuti masters vadzidzise hunyanzvi hwavo mukuenzanisira telecom masisitimu.
Uye iko zvino takapihwa akati wandei sarudzo dzehunyanzvi hwekuita nezviri pachena zvisingaite maframe paramita (kuitira kuti tisatsvage mhinduro paInternet), uye tinorovera paSimulink yatotaurwa ... Uye tinorohwa mumusoro netii. chokwadi:
- Chivharo chimwe nechimwe chizere nezvakawanda zvisingazivikanwe paramita, izvo zvinotyisa kuchinja pakudonha kweheti.
- Iwo manipulations ane manhamba anofanirwa kuitwa, zvinoita kunge zviri nyore, asi iwe uchiri kufanira kukakavara, Mwari ngaasadaro.
- Michina yeCathedral inononoka kudzika kubva mukushandiswa kwekusagadzikana kweGUI, kunyangwe padanho rekusefa kuburikidza nemaraibhurari ezvidhinha zviripo.
- Kuti upedze chimwe chinhu kumba, unofanirwa kuva neSimulink yakafanana. Uye, chaizvoizvo, hapana dzimwe nzira.
Hongu, pakupedzisira isu, hongu, takapedza basa racho, asi takaripedza nemhepo huru yekuzorora.
Nguva yakati yapfuura, uye takasvika pakupera kwegore rokutanga redhigirii ra master. Nhamba yebasa rechikoro rinoshandisa maGUI rakatanga kuwira zvakaenzana nekuwedzera kwechikamu chezvidzidzo zveGermany, kunyange zvazvo yakanga isati yasvika padanho rekuchinja kweparadigm. Vazhinji vedu, kusanganisira ini, tichikunda kukura kwedu kwekuvaka, tichiwedzera kushandisa Matlab mumapurojekiti edu esainzi (zvisinei muchimiro cheToolboxes), uye kwete iyo inoita seinojairana Simulink.
Pfungwa yekusava nechokwadi kwedu yaiva mutsara wemumwe wevadzidzi vegore rechipiri (vakanga vadzokera kuRussia panguva iyoyo):
- Kanganwa, ingangoita nguva yekudzidzira, nezveSimilink, MathCad uye imwe LabView - pamusoro pechikomo zvese zvakanyorwa muMATLAB, uchishandisa MatLab pachayo kana yemahara "vhezheni" Octave.
Chirevo chakazove chikamu chechokwadi: muIlmenau, gakava pamusoro pesarudzo yezvishandiso harina kunyatsogadziriswa. Chokwadi, sarudzo yaive yakawanda pakati peMATLAB, Python naC.
Pazuva rimwe chetero, ndakatorwa nekunakidzwa kwechisikigo: handifanire kuendesa chikamu changu cheiyo OFDM transmitter modhi mune yakanyorwa fomu? Kungonakidzwa chete.
Ndakabva ndatanga kushanda.
Mbichana mbichana
Panzvimbo pekuverenga dzidziso, ini ndinongopa chinongedzo kune izvi
yakanaka chinyorwa 2011 kubvatgx uye pamasiraidhiLTE yemuviri layer mapurofesaMichel-Tila (TU Ilmenau). Ndinofunga kuti izvi zvichakwana.
"Saka," ndakafunga, "ngatidzokorore, tichazotevedzera chii?"
Tichatevedzera OFDM furemu jenareta (OFDM furemu jenareta).
Izvo zvichasanganisira:
- zviratidzo zvemashoko
- mutyairi zviratidzo
- zero (DC)
Chii (nekuda kwekureruka) isu tinotora kubva:
- kubva pakuenzanisa cyclic prefix (kana iwe uchiziva izvo zvekutanga, kuwedzera hazvizonetsa)
Block diagram yemuenzaniso uri kutariswa. Isu tichamira pane inverse FFT (IFFT) block. Kuti apedze mufananidzo, munhu wese anogona kuenderera mberi ivo pachavo - ndakavimbisa vadzidzisi kubva kudhipatimendi kuti vasiye chimwe chinhu kuvadzidzi.
Ngatitsanangure isu pachedu. kurovedza muviri:
- nhamba yakatarwa ye-sub-carriers;
- yakatarwa furemu kureba;
- tinofanira kuwedzera zero imwe pakati uye peya zero pakutanga uye pakupera furemu (zvizere, 5 zvidimbu);
- zviratidzo zveruzivo zvinogadziridzwa uchishandisa M-PSK kana M-QAM, uko M ndiyo modulation odha.
Ngatitange nekodhi.
Iyo yese script inogona kutorwa kubva
batanidzo .
Ngatitsanangurirei mapeji ekupinza:
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
Zvino isu tinoona ma indices ezviratidzo zveruzivo, tichibvuma fungidziro yekuti masaini emutyairi anofanira kuenda pamberi uye/kana mushure mazero:
idx_1_start = 4;
idx_1_end = fr_len/2 - 2;
idx_2_start = fr_len/2 + 2;
idx_2_end = fr_len - 3;
Ipapo zvinzvimbo zvinogona kutsanangurwa uchishandisa basa
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
Ngatiwedzerei ma indexes e zero kune izvi uye rongedza:
%concatenation and ascending sorting
inf_and_nulls_idx = union(inf_ind, nulls_idx);
Saizvozvo, iyo pilot chiratidzo indices zvimwe zvese:
%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);
Zvino ngatinzwisise masaini ekutyaira.
Tine template (variable vatyairi), uye ngatiti tinoda vatyairi vendege kubva kutemplate iyi kuti vaiswe mufuremu yedu zvakatevedzana. Zvechokwadi, izvi zvinogona kuitwa muchiuno. Kana kuti iwe unogona kutamba zvishoma zvinyengeri nematrices - nerombo rakanaka MATLAB inokutendera kuti uite izvi nekunyaradza kwakakwana.
Kutanga, ngationei kuti mangani ematemplate aya anokwana zvizere mufuremu:
pilots_len_psudo = floor(N_pil/length(pilots));
Tevere, isu tinogadzira vector ine matemplate edu:
% 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
Uye isu tinotsanangura diki diki rine chete chidimbu chetemplate - iyo "muswe", iyo isingakwane zvachose mufuremu:
tail_len = fr_len - N_inf - length(nulls_idx) ...
- length(pilots)*pilots_len_psudo;
tail = pilots(1:tail_len); % "tail" of pilots vector
Tinowana mavara ekufambisa ndege:
vec_pilots = [resh; tail]; % completed pilots vector that frame consists
Ngatienderere mberi kune zviratidzo zveruzivo, kureva, isu tichagadzira meseji uye toigadzirisa:
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
Zvese zvagadzirira! Kubatanidza frame:
%% Frame construction
frame = zeros(fr_len,1);
frame(pilot_idx) = vec_pilots;
frame(inf_ind) = info_symbols
Iwe unofanirwa kuwana chimwe chinhu chakadai:
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!" - Ndakafunga kugutsikana ndokuvhara laptop. Zvakanditorera maawa mashoma kuita zvese: kusanganisira kunyora kodhi, kudzidza mamwe mabasa eMatlab uye kufunga kuburikidza nemasvomhu.
Ndedzipi mhedziso dzandakawana ipapo?
Kuzviisa pasi:
- Kodhi yekunyora inonakidza uye yakafanana nenhetembo!
- Scripting ndiyo yakanyanya nyore nzira yekutsvagisa yendima yeKukurukurirana uye Signal Processing.
Chinangwa:
- Iko hakuna chikonzero chekupfura shiri duku kubva kune cannon (kunze kwekunge chinangwa chekudzidzisa chakadaro, chokwadi, chakakosha): tichishandisa Simulink, takatora kugadzirisa dambudziko riri nyore nemudziyo wakaoma.
- GUI yakanaka, asi kunzwisisa izvo zviri "pasi pehodhi" zviri nani.
Uye zvino, ndiri kure nekuve mudzidzi, ndinoda kutaura zvinotevera kumubatanidzwa wevadzidzi:
- Zvitore!
Edza kunyora kodhi, kunyangwe yakashata pakutanga. Nekuronga, sezvimwe chero chiitiko, chikamu chakaomesesa ndiko kutanga. Uye zviri nani kutanga kare: kana iwe uri musayendisiti kana kunyange techie, nokukurumidza kana kuti gare gare iwe uchada unyanzvi uhwu.
- Demand!
Danai nzira dzekufambira mberi uye maturusi kubva kuvadzidzisi nevatariri. Kana izvi zvichibvira, hongu...
- Gadzira!
Ndekupi kumwe kuri nani kudarika maronda ose emutangi, kana kwete mukati megadziriro yepurogiramu yezvidzidzo? Gadzira uye gadzira hunyanzvi hwako - zvakare, nekukurumidza iwe paunotanga, zviri nani.
Vanoshuvira mapurogiramu kubva kunyika dzese, batana!
PS
Kuti ndinyore hukama hwangu hwakananga nevadzidzi, ndiri kubatanidza mufananidzo usingakanganwiki we2017 nemarector maviri: Peter Scharff (kurudyi) naAlbert Kharisovich Gilmutdinov (kuruboshwe).
Zvakanga zvakakodzera kupedzisa purogiramu zvishoma zvezvipfeko izvi! (nhambe)
Source: www.habr.com