์ค๋ ๋ด ๊ธฐ์ฌ๋ ๊ฑฐ์ ์ฐ์ฐํ (์์ฐ์ค๋ฝ๊ธฐ๋ ํ์ง๋ง) ํ๋ก๊ทธ๋๋ฐ์ ๊ธธ์ ํํ ํ ์ฌ๋์ ์๊ฐ์ ๋ด์ ๊ฒ์ ๋๋ค.
๋ค, ์ ๊ฒฝํ์ ๋จ์ง ์ ๊ฒฝํ์ผ ๋ฟ์ด๋ผ๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ธ ์ถ์ธ์ ์ ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ ์๋์ ์ค๋ช ๋ ๊ฒฝํ์ ๊ณผํ ํ๋ ๋ถ์ผ์ ๋ ๊ด๋ จ์ด ์์ง๋ง ๋๋ด์ด ์๋ ๊ฒ์ ์ธ๋ถ์์๋ ์ ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ :
์ผ๋ฐ์ ์ผ๋ก ์ด์ ํ์์ ๋ชจ๋ ํ์ฌ ํ์์๊ฒ ๋ฐ์นฉ๋๋ค!
๊ธฐ๋
2014๋ ์ ์ ๋ณดํต์ ๊ธฐ์ ๋ฐ ํต์ ์์คํ ํ์ฌ ํ์๋ฅผ ๋ง์ณค์ ๋ ์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ๊ณ์ ๋ํด ๊ฑฐ์ ์๋ ๋ฐ๊ฐ ์์์ต๋๋ค. ๋ค, ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค์ฒ๋ผ ์ ๋ ์ฒซํด์ "์ปดํจํฐ ๊ณผํ" ๊ณผ๋ชฉ์ ์๊ฐํ์ต๋๋ค. ํ์ง๋ง ์ฃผ๋, ๊ทธ๊ฒ์ ์ฒซํด์์ต๋๋ค! ๊ทธ๊ฒ์ ์์ํ์ต๋๋ค!
์ผ๋ฐ์ ์ผ๋ก ํ์ฌ ํ์์ ํน๋ณํ ๋ค๋ฅธ ์ ์ ๊ธฐ๋ํ์ง ์์์ผ๋ฉฐ, ์์ฌ ๊ณผ์ ์ ์
ํํ์ ๋
ํ์ง๋ง ํ๋...
์ฐ๋ฆฌ๋ ๋จ์ง ๋ ๋ฒ์งธ ์ ์ ์์ด์๊ณ , ์ฒซ ๋ฒ์งธ ์ถ์ ์ ์ฌ๋๋ค์ ์ฌ์ ํ โโ๋จผ ๋ ์ผ๋ก ๋ ๋๊ธฐ ์ํด ๊ฐ๋ฐฉ์ ์ธ๊ณ ์์์ต๋๋ค(์ธํด์ญ์ ์์ฌ ํ์ XNUMX๋ ์ฐจ์ XNUMX๊ฐ์์ด ์์๋ฉ๋๋ค). ์ฆ, ์ง๊ณ์ ์ด๋ ๋๊ตฌ๋ ์์ง ์ ๋ฝ ๊ต์ก ๋ฐฉ๋ฒ์ ์ง์งํ๊ฒ ์ ํ ์ ์ด ์์๊ณ ์ธ๋ถ ์ฌํญ์ ๋ํด ๋ฌผ์ด๋ณผ ์ฌ๋๋ ์์์ต๋๋ค.
๋ฌผ๋ก ์ฒซ ํด์ ์ฐ๋ฆฌ๋ ๋ค์ํ ์ข ๋ฅ์ ์ค์ต์ ๊ฐ์ก์ผ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์คํฌ๋ฆฝํธ ์์ฑ(์ฃผ๋ก MATLAB ์ธ์ด)๊ณผ ๊ณ ๋๋ก ์ ๋ฌธํ๋ ๋ค์ํ GUI ์ฌ์ฉ(์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ง ์๊ณ ์๋ฎฌ๋ ์ด์ ์ ์ํํ๋ค๋ ์๋ฏธ์์) ์ค์์ ์ ํํ ์ ์๋๋ก ๋ฏผ์ฃผ์ ์ผ๋ก ์ ์๋์์ต๋๋ค. ๋ชจ๋ธ๋ง ํ๊ฒฝ).
๋งํ ํ์๋ ์์ด, ๋ฏธ๋์ ๊ณผํ ์์ฌ์ธ ์ฐ๋ฆฌ๋ ์ด๋ฆฐ ์์ ์ ์ด๋ฆฌ์์์ผ๋ก ์ธํด ๋ถ ๊ฐ์ ์ฝ๋ ์์ฑ์ ํผํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, MathWorks์ Simulink๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ธ๋ก์ด ์๊ณ , ์ฐ๊ฒฐ์ด ์๊ณ , ๋ชจ๋ ์ข ๋ฅ์ ์ค์ ๊ณผ ์ค์์น๊ฐ ์์ต๋๋ค.
์ด์ ์ ํ๋ก ์ค๊ณ ๋ฐ ์์คํ ์์ง๋์ด๋ง ๋ถ์ผ์์ ์ผํ ์ฌ๋์ด ์์ฃผ๋ฏผ์ด๊ณ ์ดํดํ ์์๋ ๊ฒฌํด!
๊ทธ๋์ ์ฐ๋ฆฌ์๊ฒ ๋ณด์์ต๋๋ค ...
ํ์ค
์ฒซ ํ๊ธฐ์ ์ค์ต ์์ ์ค ํ๋๋ "๋ชจ๋ธ๋ง ๋ฐ ์ต์ ํ ๋ฐฉ๋ฒ"์ด๋ผ๋ ์ฃผ์ ์ ์ผ๋ถ๋ก OFDM ์ ํธ ํธ๋์๋ฒ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ์ด์์ต๋๋ค. ์์ด๋์ด๋ ๋งค์ฐ ์ฑ๊ณต์ ์ ๋๋ค. ์ด ๊ธฐ์ ์ ์๋ฅผ ๋ค์ด Wi-Fi ๋ฐ LTE/LTE-A ๋คํธ์ํฌ(OFDMA ํ์)์์์ ์ฌ์ฉ์ผ๋ก ์ธํด ์ฌ์ ํ ๊ด๋ จ์ฑ์ด ์๊ณ ์ธ๊ธฐ๊ฐ ๋์ต๋๋ค. ์ด๋ ๋ง์คํฐ๊ฐ ํต์ ์์คํ ๋ชจ๋ธ๋ง ๊ธฐ์ ์ ์ฐ์ตํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ์ฐ๋ฆฌ๋ ๋ถ๋ช ํ ๋นํ์ค์ ์ธ ํ๋ ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์ ์ฌ์์ ๋ํ ์ฌ๋ฌ ์ต์ ์ ์ ๊ณต๋ฐ์์ผ๋ฉฐ(์ธํฐ๋ท์์ ์๋ฃจ์ ์ ์ฐพ์ง ์๊ธฐ ์ํด) ์ด๋ฏธ ์ธ๊ธํ Simulink๋ฅผ ๊ณต๊ฒฉํฉ๋๋ค... ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ฐป์ฃผ์ ์๋ก ๋จธ๋ฆฌ๋ฅผ ๋ง์์ต๋๋ค. ํ์ค์:
- ๊ฐ ๋ธ๋ก์๋ ์ ์ ์๋ ๋งค๊ฐ๋ณ์๊ฐ ๋ง์ด ํฌํจ๋์ด ์์ด์ ํ ์๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ๊ฐ ๋๋ ต์ต๋๋ค.
- ์ซ์๋ฅผ ์กฐ์ํด์ผํฉ๋๋ค. ๊ฐ๋จ ํด ๋ณด์ด์ง๋ง ์ฌ์ ํ ์๋์ ํผ์์ผํฉ๋๋ค. ์ ์ ๊ธ์งํฉ๋๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅํ ๋ธ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ํ๋ ๋จ๊ณ์์๋ ๋์ฑ๋น ์ปดํจํฐ๋ GUI๋ฅผ ์ด๊ด์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๋์ ๋๊ฒ ๋๋ ค์ง๋๋ค.
- ์ง์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ ค๋ฉด ๋์ผํ Simulink๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ค ๋์์ด ์์ต๋๋ค.
๋ค, ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ ๋ฌผ๋ก ํ๋ก์ ํธ๋ฅผ ์๋ฃํ์ง๋ง ์๋์ ํฐ ์จ์ ๋ด์ฌ๋ฉฐ ์๋ฃํ์ต๋๋ค.
์ด๋ ์ ๋ ์๊ฐ์ด ํ๋ฌ ์์ฌ ํ์ XNUMXํ๋ ์ด ๋๋ฌ์ต๋๋ค. GUI๋ฅผ ํ์ฉํ ์์ ์ ์์ ์์ง ํจ๋ฌ๋ค์ ์ ํ ๋จ๊ณ์ ๋๋ฌํ์ง๋ ์์์ง๋ง ๋ ์ผ์ด ๊ณผ๋ชฉ์ ๋น์จ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๋น๋ก์ ์ผ๋ก ๊ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค. ์ ๋ฅผ ํฌํจํ ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ์๋นํ ์งํญ์ ๊ทน๋ณตํ๊ณ ๊ณผํ ํ๋ก์ ํธ์์ ๊ฒ๋ณด๊ธฐ์ ์น์ํ Simulink๊ฐ ์๋ Matlab์ ์ ์ ๋ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ต๋๋ค(๋๊ตฌ ์์์ ํํ์ด๊ธฐ๋ ํ์ง๋ง).
์ฐ๋ฆฌ๊ฐ ์์ฌํ ์ ์ XNUMXํ๋ ํ์ ์ค ํ ๋ช ์ด ํ ๋ง์ ๋๋ค(๊ทธ๋ค์ ๋น์ ๋ฌ์์๋ก ๋ง ๋์์์ต๋๋ค).
- ์ ์ด๋ ์ธํด์ญ ๊ธฐ๊ฐ ๋์์๋ Similink, MathCad ๋ฐ ๊ธฐํ LabView์ ๋ํด ์์ด๋ฒ๋ฆฌ์ธ์. ๋ชจ๋ ๊ฒ์ MatLab ์์ฒด ๋๋ ๋ฌด๋ฃ "๋ฒ์ " Octave๋ฅผ ์ฌ์ฉํ์ฌ MATLAB์ผ๋ก ์์ฑ๋ฉ๋๋ค.
์ด ์ง์ ์ ๋ถ๋ถ์ ์ผ๋ก ์ฌ์ค๋ก ํ๋ช ๋์์ต๋๋ค. Ilmenau์์๋ ๋๊ตฌ ์ ํ์ ๋ํ ๋ถ์๋ ์์ ํ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ์ฌ์ค, ์ ํ์ ์ฃผ๋ก MATLAB, Python, C ์ค์์ ์ด๋ฃจ์ด์ก์ต๋๋ค.
๊ฐ์ ๋ ๋๋ ์์ฐ์ค๋ฌ์ด ํฅ๋ถ์ ์ฌ๋ก์กํ์ต๋๋ค. OFDM ์ก์ ๊ธฐ ๋ชจ๋ธ์ ์ผ๋ถ๋ฅผ ์คํฌ๋ฆฝํธ ํ์์ผ๋ก ์ฎ๊ฒจ์ผ ํ์ง ์์๊น? ์ฌ๋ฏธ๋ก.
๊ทธ๋ฆฌ๊ณ ๋๋ ์ผ์ ํด์ผ ํ์ด์.
๋จ๊ณ๋ณ
์ด๋ก ์ ๊ณ์ฐ ๋์ ์ ๊ฐ๋จํ ์ด๊ฒ์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
ํ๋ฅญํ ๊ธฐ์ฌ 2011๋ ๋ถํฐtgx ๊ทธ๋ฆฌ๊ณ ์ฌ๋ผ์ด๋์๋LTE ๋ฌผ๋ฆฌ ๊ณ์ธต ๊ต์๋ฏธ์ ธํธ๋ผ (TU ์ผ๋ฉ๋์ฐ). ์ด ์ ๋๋ฉด ์ถฉ๋ถํ ๊ฒ ๊ฐ์์.
"๊ทธ๋์" ์ ๋ ์๊ฐํ์ต๋๋ค. "๋ค์ ๋ฐ๋ณตํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌด์์ ๋ชจ๋ธ๋งํ ๊ฑด๊ฐ์?"
์ฐ๋ฆฌ๋ ๋ชจ๋ธ์ ํ ๊ฒ์ด๋ค OFDM ํ๋ ์ ์์ฑ๊ธฐ (OFDM ํ๋ ์ ์์ฑ๊ธฐ).
ํฌํจ ๋ด์ฉ:
- ์ ๋ณด ๊ธฐํธ
- ํ์ผ๋ฟ ์ ํธ
- XNUMX(DC)
(๊ฐ๋จํจ์ ์ํด) ์ฐ๋ฆฌ๊ฐ ์ถ์ํํ๋ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ํ ์ ๋์ฌ ๋ชจ๋ธ๋ง์์ (๊ธฐ๋ณธ ์ฌํญ์ ์๊ณ ์๋ค๋ฉด ์ถ๊ฐํ๋ ๊ฒ์ ์ด๋ ต์ง ์์ต๋๋ค)
๊ณ ๋ ค์ค์ธ ๋ชจ๋ธ์ ๋ธ๋ก ๋ค์ด์ด๊ทธ๋จ. ์ญ FFT(IFFT) ๋ธ๋ก์์ ๋ฉ์ถ๊ฒ ์ต๋๋ค. ๊ทธ๋ฆผ์ ์์ฑํ๊ธฐ ์ํด ๋ชจ๋๊ฐ ๋๋จธ์ง๋ฅผ ์ค์ค๋ก ๊ณ์ํ ์ ์์ต๋๋ค. ์ ๋ ํ๊ณผ์ ๊ต์ฌ๋ค์๊ฒ ํ์๋ค์ ์ํด ๋ฌด์ธ๊ฐ๋ฅผ ๋จ๊ธฐ๊ฒ ๋ค๊ณ ์ฝ์ํ์ต๋๋ค.
๊ทธ๊ฒ๋ค์ ์ค์ค๋ก ์ ์ํด ๋ด ์๋ค. ์ด๋:
- ๊ณ ์ ๋ ์์ ๋ถ๋ฐ์กํ;
- ๊ณ ์ ํ๋ ์ ๊ธธ์ด;
- ์ค์์ 5 ํ๋๋ฅผ ์ถ๊ฐํ๊ณ ํ๋ ์์ ์์๊ณผ ๋ ๋ถ๋ถ์ XNUMX ์์ ์ถ๊ฐํด์ผ ํฉ๋๋ค(์ด XNUMX๊ฐ).
- ์ ๋ณด ๊ธฐํธ๋ M-PSK ๋๋ M-QAM์ ์ฌ์ฉํ์ฌ ๋ณ์กฐ๋ฉ๋๋ค. ์ฌ๊ธฐ์ M์ ๋ณ์กฐ ์ฐจ์์ ๋๋ค.
์ฝ๋๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
์ ์ฒด ์คํฌ๋ฆฝํธ๋ ๋ค์์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
๋งํฌ .
์ ๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํด ๋ณด๊ฒ ์ต๋๋ค.
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
์ด์ ์ฐ๋ฆฌ๋ ํ์ผ๋ฟ ์ ํธ๊ฐ ๋ฐ๋์ XNUMX ์ด์ ๋ฐ/๋๋ ์ดํ์ ๊ฐ์ผ ํ๋ค๋ ์ ์ ๋ฅผ ๋ฐ์๋ค์ฌ ์ ๋ณด ๊ธฐํธ์ ์ธ๋ฑ์ค๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
idx_1_start = 4;
idx_1_end = fr_len/2 - 2;
idx_2_start = fr_len/2 + 2;
idx_2_end = fr_len - 3;
๊ทธ๋ฐ ๋ค์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์น๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
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
์ฌ๊ธฐ์ XNUMX์ ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํ๊ณ ์ ๋ ฌํด ๋ณด๊ฒ ์ต๋๋ค.
%concatenation and ascending sorting
inf_and_nulls_idx = union(inf_ind, nulls_idx);
๋ฐ๋ผ์ ํ์ผ๋ฟ ์ ํธ ์ธ๋ฑ์ค๋ ๊ทธ ๋ฐ์ ๋ชจ๋ ๊ฒ์ ๋๋ค.
%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);
์ด์ ํ์ผ๋ฟ ์ ํธ๋ฅผ ์ดํดํด ๋ด ์๋ค.
์ฐ๋ฆฌ๋ ํ ํ๋ฆฟ(๋ณ์ ์กฐ์ข ์ฌ), ๊ทธ๋ฆฌ๊ณ ์ด ํ ํ๋ฆฟ์ ํ์ผ๋ฟ์ด ํ๋ ์์ ์์ฐจ์ ์ผ๋ก ์ฝ์ ๋๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ ๋ฃจํ์์ ์ํ๋ ์ ์์ต๋๋ค. ๋๋ ํ๋ ฌ์ ์ฌ์ฉํ์ฌ ์ฝ๊ฐ ๊น๋ค๋กญ๊ฒ ์์ ํ ์๋ ์์ต๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ MATLAB์ ์ฌ์ฉํ๋ฉด ์ถฉ๋ถํ ํธ์ํ๊ฒ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋จผ์ ํ๋ ์์ ์์ ํ ๋ง๋ ํ ํ๋ฆฟ ์๋ฅผ ๊ฒฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
pilots_len_psudo = floor(N_pil/length(pilots));
๋ค์์ผ๋ก ํ ํ๋ฆฟ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฒกํฐ๋ฅผ ํ์ฑํฉ๋๋ค.
% 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
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ํ ํ๋ฆฟ์ ์ผ๋ถ์ธ "๊ผฌ๋ฆฌ"๋ง ํฌํจํ๋ ์์ ๋ฒกํฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ด๋ ํ๋ ์์ ์์ ํ ๋ง์ง ์์ต๋๋ค.
tail_len = fr_len - N_inf - length(nulls_idx) ...
- length(pilots)*pilots_len_psudo;
tail = pilots(1:tail_len); % "tail" of pilots vector
ํ์ผ๋ฟ ์บ๋ฆญํฐ๋ฅผ ์ป์ต๋๋ค.
vec_pilots = [resh; tail]; % completed pilots vector that frame consists
์ ๋ณด ๊ธฐํธ๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค. ์ฆ, ๋ฉ์์ง๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ณ์กฐํ๊ฒ ์ต๋๋ค.
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
๋ชจ๋ ์ค๋น๋์์ต๋๋ค! ํ๋ ์ ์กฐ๋ฆฝ:
%% Frame construction
frame = zeros(fr_len,1);
frame(pilot_idx) = vec_pilots;
frame(inf_ind) = info_symbols
๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด์ผ ํฉ๋๋ค:
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
"๋ค์ ์๋ ๊ธฐ์จ!" โ ๋๋ ๋ง์กฑ์ค๋ฝ๊ฒ ์๊ฐํ๊ณ ๋ ธํธ๋ถ์ ๋ซ์์ต๋๋ค. ์ฝ๋ ์์ฑ, Matlab ๊ธฐ๋ฅ ํ์ต, ์ํ์ ํธ๋ฆญ ์๊ฐ ๋ฑ ๋ชจ๋ ์์ ์ ์ํํ๋ ๋ฐ ๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.
๊ทธ๋ ๋๋ ์ด๋ค ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๊น?
์ฃผ๊ฑฑ:
- ์ฝ๋ ์์ฑ์ ์ฆ๊ฒ๊ณ ์์ ๋น์ทํฉ๋๋ค!
- ์คํฌ๋ฆฝํ ์ ํต์ ๋ฐ ์ ํธ์ฒ๋ฆฌ ๋ถ์ผ์์ ๊ฐ์ฅ ํธ๋ฆฌํ ์ฐ๊ตฌ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ฐ๊ด์ ์ธ:
- ๋ํฌ์์ ์ฐธ์๋ฅผ ์ ํ์๋ ์์ต๋๋ค(๋ฌผ๋ก ๊ทธ๋ฌํ ๊ต์ก์ ๋ชฉํ๊ฐ ๊ทธ๋งํ ๊ฐ์น๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์ ์ธ). Simulink๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๋ฆฌ๋ ์ ๊ตํ ๋๊ตฌ๋ก ๊ฐ๋จํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
- GUI๋ ์ข์ง๋ง "๋ด๋ถ"์ ๋ฌด์์ด ํฌํจ๋์ด ์๋์ง ์ดํดํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ์ ๋ ํ์์ด ๋๊ธฐ๋์ปค๋ ํ์ํ์ ๋ค์๊ณผ ๊ฐ์ด ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
- ๋ด๋ํ์ญ์์ค!
์ฒ์์๋ ์ข์ง ์๋๋ผ๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์. ๋ค๋ฅธ ํ๋๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ก๊ทธ๋๋ฐ์์๋ ๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ์ ์์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ์ฐ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋น์ ์ด ๊ณผํ์์ด๊ฑฐ๋ ์ฌ์ง์ด ๊ธฐ์ ์๋ผ๋ฉด ์กฐ๋ง๊ฐ ์ด ๊ธฐ์ ์ด ํ์ํ ๊ฒ์ ๋๋ค.
- ์์!
๊ต์ฌ์ ๊ฐ๋ ์์๊ฒ ์ง๋ณด์ ์ธ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋๊ตฌ๋ฅผ ์๊ตฌํฉ๋๋ค. ๋ฌผ๋ก ๊ฐ๋ฅํ๋ค๋ฉด...
- ๋ง๋ค๋ค!
๊ต์ก ํ๋ก๊ทธ๋จ์ ํ์ด ์๋๋ผ๋ฉด ์ด๋ณด์์ ๋ชจ๋ ์์ฒ๋ฅผ ๊ทน๋ณตํ๋ ๊ฒ์ด ๋ ๋์ ๊ณณ์ ์ด๋์ ๋๊น? ๊ธฐ์ ์ ๊ฐ๋ฐํ๊ณ ์ฐ๋งํ์ธ์. ๋ค์ ํ๋ฒ ๋ง์๋๋ฆฌ์ง๋ง, ๋นจ๋ฆฌ ์์ํ ์๋ก ์ข์ต๋๋ค.
๊ฐ๊ตญ์ ํ๋ก๊ทธ๋๋จธ ์ง๋ง์๋ค์ด์ฌ, ๋จ๊ฒฐํ๋ผ!
PS
ํ์๋ค๊ณผ์ ์ง์ ์ ์ธ ๊ด๊ณ๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํด Peter Scharff(์ค๋ฅธ์ชฝ)์ Albert Kharisovich Gilmutdinov(์ผ์ชฝ)๋ผ๋ ๋ ๋ช ์ ์ด์ฅ๊ณผ ํจ๊ปํ 2017๋ ์ ๊ธฐ์ต์ ๋จ๋ ์ฌ์ง์ ์ฒจ๋ถํฉ๋๋ค.
์ ์ด๋ ์ด ์์ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ์ ๋๋ผ ๊ฐ์น๊ฐ ์์์ต๋๋ค! (๋๋ด)
์ถ์ฒ : habr.com