"๊ด€๋ จ ์ „๋ฌธ ๋ถ„์•ผ์˜ ์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์„ ์–ธ๋ฌธ" ๋˜๋Š” ๋‚ด๊ฐ€ ์ธ์ƒ์—์„œ ์ด ์ง€์ ์— ๋„๋‹ฌํ•œ ๋ฐฉ๋ฒ•

์˜ค๋Š˜ ๋‚ด ๊ธฐ์‚ฌ๋Š” ๊ฑฐ์˜ ์šฐ์—ฐํžˆ (์ž์—ฐ์Šค๋Ÿฝ๊ธฐ๋Š” ํ•˜์ง€๋งŒ) ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธธ์„ ํƒํ•œ ํ•œ ์‚ฌ๋žŒ์˜ ์ƒ๊ฐ์„ ๋‹ด์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„ค, ์ œ ๊ฒฝํ—˜์€ ๋‹จ์ง€ ์ œ ๊ฒฝํ—˜์ผ ๋ฟ์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์ถ”์„ธ์— ์ž˜ ๋งž๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์•„๋ž˜์— ์„ค๋ช…๋œ ๊ฒฝํ—˜์€ ๊ณผํ•™ ํ™œ๋™ ๋ถ„์•ผ์™€ ๋” ๊ด€๋ จ์ด ์žˆ์ง€๋งŒ ๋†๋‹ด์ด ์•„๋‹Œ ๊ฒƒ์€ ์™ธ๋ถ€์—์„œ๋„ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๊ด€๋ จ ์ „๋ฌธ ๋ถ„์•ผ์˜ ์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์„ ์–ธ๋ฌธ" ๋˜๋Š” ๋‚ด๊ฐ€ ์ธ์ƒ์—์„œ ์ด ์ง€์ ์— ๋„๋‹ฌํ•œ ๋ฐฉ๋ฒ•
์ถœ์ฒ˜ : https://xkcd.com/664/

์ผ๋ฐ˜์ ์œผ๋กœ ์ด์ „ ํ•™์ƒ์˜ ๋ชจ๋“  ํ˜„์žฌ ํ•™์ƒ์—๊ฒŒ ๋ฐ”์นฉ๋‹ˆ๋‹ค!

๊ธฐ๋Œ€

2014๋…„์— ์ •๋ณดํ†ต์‹  ๊ธฐ์ˆ  ๋ฐ ํ†ต์‹  ์‹œ์Šคํ…œ ํ•™์‚ฌ ํ•™์œ„๋ฅผ ๋งˆ์ณค์„ ๋•Œ ์ €๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„์— ๋Œ€ํ•ด ๊ฑฐ์˜ ์•„๋Š” ๋ฐ”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ค, ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ฒ˜๋Ÿผ ์ €๋„ ์ฒซํ•ด์— "์ปดํ“จํ„ฐ ๊ณผํ•™" ๊ณผ๋ชฉ์„ ์ˆ˜๊ฐ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฃผ๋‹˜, ๊ทธ๊ฒƒ์€ ์ฒซํ•ด์˜€์Šต๋‹ˆ๋‹ค! ๊ทธ๊ฒƒ์€ ์˜์›ํ–ˆ์Šต๋‹ˆ๋‹ค!

์ผ๋ฐ˜์ ์œผ๋กœ ํ•™์‚ฌ ํ•™์œ„์™€ ํŠน๋ณ„ํžˆ ๋‹ค๋ฅธ ์ ์€ ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์„์‚ฌ ๊ณผ์ •์— ์ž…ํ•™ํ–ˆ์„ ๋•Œ "ํ†ต์‹  ๋ฐ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ" ๋…์ผ-๋Ÿฌ์‹œ์•„ ์‹ ๊ธฐ์ˆ  ์—ฐ๊ตฌ์†Œ.

ํ•˜์ง€๋งŒ ํ—›๋œ...

์šฐ๋ฆฌ๋Š” ๋‹จ์ง€ ๋‘ ๋ฒˆ์งธ ์‹ ์ž…์ƒ์ด์—ˆ๊ณ , ์ฒซ ๋ฒˆ์งธ ์ถœ์‹ ์˜ ์‚ฌ๋žŒ๋“ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋จผ ๋…์ผ๋กœ ๋– ๋‚˜๊ธฐ ์œ„ํ•ด ๊ฐ€๋ฐฉ์„ ์‹ธ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค(์ธํ„ด์‹ญ์€ ์„์‚ฌ ํ•™์œ„ XNUMX๋…„์ฐจ์— XNUMX๊ฐœ์›”์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค). ์ฆ‰, ์ง๊ณ„์˜ ์–ด๋Š ๋ˆ„๊ตฌ๋„ ์•„์ง ์œ ๋Ÿฝ ๊ต์œก ๋ฐฉ๋ฒ•์„ ์ง„์ง€ํ•˜๊ฒŒ ์ ‘ํ•œ ์ ์ด ์—†์—ˆ๊ณ  ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋ฌผ์–ด๋ณผ ์‚ฌ๋žŒ๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ฒซ ํ•ด์— ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์‹ค์Šต์„ ๊ฐ€์กŒ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ(์ฃผ๋กœ MATLAB ์–ธ์–ด)๊ณผ ๊ณ ๋„๋กœ ์ „๋ฌธํ™”๋œ ๋‹ค์–‘ํ•œ GUI ์‚ฌ์šฉ(์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์˜๋ฏธ์—์„œ) ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฏผ์ฃผ์ ์œผ๋กœ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ๋ง ํ™˜๊ฒฝ).

"๊ด€๋ จ ์ „๋ฌธ ๋ถ„์•ผ์˜ ์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์„ ์–ธ๋ฌธ" ๋˜๋Š” ๋‚ด๊ฐ€ ์ธ์ƒ์—์„œ ์ด ์ง€์ ์— ๋„๋‹ฌํ•œ ๋ฐฉ๋ฒ•

๋งํ•  ํ•„์š”๋„ ์—†์ด, ๋ฏธ๋ž˜์˜ ๊ณผํ•™ ์„์‚ฌ์ธ ์šฐ๋ฆฌ๋Š” ์–ด๋ฆฐ ์‹œ์ ˆ์˜ ์–ด๋ฆฌ์„์Œ์œผ๋กœ ์ธํ•ด ๋ถˆ ๊ฐ™์€ ์ฝ”๋“œ ์ž‘์„ฑ์„ ํ”ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, MathWorks์˜ Simulink๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ธ”๋ก์ด ์žˆ๊ณ , ์—ฐ๊ฒฐ์ด ์žˆ๊ณ , ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์„ค์ •๊ณผ ์Šค์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „์— ํšŒ๋กœ ์„ค๊ณ„ ๋ฐ ์‹œ์Šคํ…œ ์—”์ง€๋‹ˆ์–ด๋ง ๋ถ„์•ผ์—์„œ ์ผํ•œ ์‚ฌ๋žŒ์ด ์›์ฃผ๋ฏผ์ด๊ณ  ์ดํ•ดํ•  ์ˆ˜์žˆ๋Š” ๊ฒฌํ•ด!

"๊ด€๋ จ ์ „๋ฌธ ๋ถ„์•ผ์˜ ์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์„ ์–ธ๋ฌธ" ๋˜๋Š” ๋‚ด๊ฐ€ ์ธ์ƒ์—์„œ ์ด ์ง€์ ์— ๋„๋‹ฌํ•œ ๋ฐฉ๋ฒ•
์ถœ์ฒ˜ : https://ch.mathworks.com/help/comm/examples/parallel-concatenated-convolutional-coding-turbo-codes.html

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ์—๊ฒŒ ๋ณด์˜€์Šต๋‹ˆ๋‹ค ...

ํ˜„์‹ค

์ฒซ ํ•™๊ธฐ์˜ ์‹ค์Šต ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋Š” "๋ชจ๋ธ๋ง ๋ฐ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•"์ด๋ผ๋Š” ์ฃผ์ œ์˜ ์ผ๋ถ€๋กœ 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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€