MU-MIMO: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╕реЗ рдПрдХ

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рдЕрдкрдиреЗ рд╣рд╛рд▓рд┐рдпрд╛ рд▓реЗрдЦ рдХреЗ рдЕрд▓рд╛рд╡рд╛ , рдореИрдВ MU ( M ulti U ser) MIMO рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рднреА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░реЛрдлреЗрд╕рд░ рд╣рд╛рд░реНрдбреНрдЯ рдХреЗ рдПрдХ рдмрд╣реБрдд рдкреНрд░рд╕рд┐рджреНрдз рд▓реЗрдЦ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд╣ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдЪреИрдирд▓ рдХреЗ рдмреНрд▓реЙрдХ рдбрд╛рдпрдЧрдиреИрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рдЬреИрд╕реЗ рд░реИрдЦрд┐рдХ рддрд░реАрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдбрд╛рдЙрди рд▓рд┐рдВрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрддрд╛ рд╣реИред рд▓реЗрдЦ рдореЗрдВ рдЙрджреНрдзрд░рдгреЛрдВ рдХреА рдПрдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╕рдВрдЦреНрдпрд╛ рд╣реИ , рдФрд░ рдкрд░реАрдХреНрд╖рд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░рд╢рд┐рд▓рд╛ рдкреНрд░рдХрд╛рд╢рди рднреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ?



рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рд╣рдо рдХрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ MIMO рдереАрдо рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, MIMO рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╕рднреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рджреЛ рдореБрдЦреНрдп рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


  • рд╕реНрдерд╛рдирд┐рдХ рд╡рд┐рд╡рд┐рдзрддрд╛

рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХрд╛ рд╢реЛрд░ рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИред рд╕реНрдерд╛рдирд┐рдХ рдЪреИрдирд▓, рдпрджрд┐ рд╕рд░рд▓реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрдВ рд╕рд░реНрд╡реЛрддреНрддрдо рд╕рдВрдЪрд░рдг рдЧреБрдгрд╡рддреНрддрд╛ рдорд┐рд▓рддреА рд╣реИред


рдЙрджрд╛рд╣рд░рдг:
- рдмреНрд▓реЙрдХ рдХреЛрдб (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдореБрддреА рдпреЛрдЬрдирд╛ );
- рд╡рд┐рдЯрд░реНрдмреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХреЛрдбред


  • рд╕реНрдерд╛рдирд┐рдХ рдмрд╣реБрд╕рдВрдХреЗрддрди

рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╕реНрдкреАрдб рдХреЛ рдмрдврд╝рд╛рдирд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдереА рдХрд┐ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд MIMO рдЪреИрдирд▓ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ SISO рдЪреИрдирд▓реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдпрд╣ рд╕реНрдерд╛рдирд┐рдХ рдмрд╣реБрд╕рдВрдХреЗрддрди рдХрд╛ рдХреЗрдВрджреНрд░реАрдп рд╡рд┐рдЪрд╛рд░ рд╣реИ: рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд╕реВрдЪрдирд╛ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдЕрдВрддрд░-рдЪреИрдирд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк (рдЗрдВрдЯрд░-рдЪреИрдирд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк) рдХрд╛ рджрдорди рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд░реНрдЧ рд╣реИрдВ:


- рдХреНрд╖реИрддрд┐рдЬ рдЪреИрдирд▓ рдЬреБрджрд╛рдИ;
- рдКрд░реНрдзреНрд╡рд╛рдзрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реА-рдмреНрд▓рд╛рд╕реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо);
- рд╡рд┐рдХрд░реНрдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреА-рдмреНрд▓рд╛рд╕реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо)ред


рд▓реЗрдХрд┐рди рдпрд╣, рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИред


рд╕реНрдерд╛рдирд┐рдХ рдмрд╣реБрд╕рдВрдХреЗрддрди рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рди рдХреЗрд╡рд▓ рдЪреИрдирд▓реЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдПрд╕рдбреАрдПрдордП - рд╕реНрдкреЗрд╕ рдбрд┐рд╡реАрдЬрди рдорд▓реНрдЯреАрдкрд▓ рдПрдХреНрд╕реЗрд╕) рдХреЗ рд▓рд┐рдП рднреАред



( рдЪрд┐рддреНрд░рдг рдХреЗ рд╕реНрд░реЛрдд рд╕реЗ рд▓рд┐рдВрдХ )


рдирддреАрдЬрддрди, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдВрддрд░-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдмреНрд▓реЙрдХ рдбрд╛рдпрдЧреЛрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЬреАрд░реЛ-рдлреЛрд░реНрд╕рд┐рдВрдЧ рдирд╛рдордХ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдЬрд┐рд╕реЗ рд╣рдо рдЖрдЬ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред


рдЧрдгрд┐рддреАрдп рд╡рд┐рд╡рд░рдг


рдЪрд▓реЛ, рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рд┐рдЧреНрдирд▓ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╣рдо рдЖрд░реЗрдЦ рдкрд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рд╕реЗ рдЖрддрд╛ рд╣реИ:



рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪреИрдирд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд░реВрдк рд╣реИ:


\ underset {M_R \ рдЯрд╛рдЗрдореНрд╕ M_T} {\ mathbf {H}} = \ {{bmatrix} \ start \ _ рдЕрдВрдбрд░рд╕реЗрдЯ {M_ {R1} \ рдмрд╛рд░ M_T} {\ mathbf {H} _1 \ _ \ _ рдЕрдВрдбрд░рд╕реНрд╕реЗрдЯ {M_ {R2} рдмрд╛рд░ M_T} {\ mathbf {H} _2} \\ред \\ред \\ред \\ \ рдЕрдВрдбрд░рд╕реНрд╕реЗрдЯ {M_ {RK} \ рдЯрд╛рдЗрдореНрд╕ M_T} {\ mathbf {H} _K} \ end {bmatrix} \ qquad (1)

рд╕рдВрдЪрд╛рд░рдг рдПрдВрдЯреЗрдирд╛ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде M_T , рдФрд░ рдПрдВрдЯреЗрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ M_R = \ sum_ {k = 1} ^ K M_ {Rk} ред


рдорд╣рддреНрд╡рдкреВрд░реНрдг :
рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдПрдВрдЯреЗрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдПрдВрдЯреЗрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реЛ:
M_R \ leq M_T


рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╡рд┐рдХрд░реНрдгреАрдХрд░рдг рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╕реАрдзреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред

рддреЛ, рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддреАрдХреЛрдВ (рд╕рдВрдХреЗрддреЛрдВ) рдХреЗ рдореЙрдбрд▓ рдХреЛ рд╡реЗрдХреНрдЯрд░ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


\ mathbf {r} = \ mathbf {D} \ left (\ mathbf {H} \ mathbf {F} \ mathbf {s} + \ mathbf {n} \ right} \ qquad (2)

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рджреЗрдЦрдирд╛ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:


r_k = \ mathbf {D} _k \ left (\ mathbf {H} _k \ mathbf {F} _k s_k + \ mathbf {H} _k \ sum_ {i = 1, i's neq k} ^ K \ mathbf {F} _i s_i + n_k \ right) \ qquad (3)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ:


  • \ mathbf {H} _k \ mathbf {F} _k s_k K- рд╡реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рдВрдХреЗрдд рд╣реИ,


  • \ mathbf {H} _k \ sum_ {i = 1, i \ neq k} ^ K \ mathbf {F} _i s_i - рдпрд╣ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╣реИ,



  • n_k - рдпреЛрдЬрдХ рд╢реЛрд░ред

рддреЛ рд╣рдо рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЗ рд╕реВрддреНрд░реАрдХрд░рдг рдкрд░ рдЖрддреЗ рд╣реИрдВ:


рдЖрдк рдРрд╕реЗ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ \ mathbf {F} рддрд╛рдХрд┐ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рдП!

рдпрд╣реА рд╣рдо рдХрд░реЗрдВрдЧреЗред


рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╡рд┐рд╡рд░рдг


рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╡рд┐рд╡рд░рдг рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВрдЧреЗ, рдФрд░ рдПрдХ рджреГрд╖реНрдЯрд╛рдВрдд рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рдкрд╣рд▓реЗ рд╣рд╛рде рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреВрдВрдЧрд╛ , рдЙрди рдкрд░ рдереЛрдбрд╝реА рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛ред


рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:



рдЪрд▓рд┐рдП рдореБрдЦреНрдп рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:


  • рд╣рдо рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ \ mathbf {\ hat {H} _1} рдЕрдиреНрдп рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЪреИрдирд▓ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╕реЗред

  • рд╣рдо рдПрд╕рд╡реАрдбреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВред


  • рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ \ mathbf {\ hat {V} _1} рд╣рдо рд╢реЛрд░ рдЙрдк-рд╕реНрдерд╛рди (рдирд▓-рдЙрдк-рд╕реНрдерд╛рди) - рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ \ mathbf {\ hat {V} _1 ^ {(0)} (рдпрд╛рдиреА, рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рд░реИрдВрдХ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИ \ mathbf {\ hat {H} _1} - рдЗрд╕реЗ рдирд┐рд░реВрдкрд┐рдд рдХрд░реЗрдВ рдШ )ред


  • рд╣рдо рдЗрд╕ рд╢реЛрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЗрд╕рдХреЗ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди рд╕реЗ рдХреБрдЫ рдкреНрд░рдХреНрд╖реЗрдкрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рд░рдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВ \ mathbf {P_1} ред



рдЖрдЧреЗ рдмрдврд╝реЛ:



  • рдЕрдм рдЪреИрдирд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдореВрд▓ рднрд╛рдЧ \ mathbf {H} _1 рдкрд░рд┐рдгрд╛рдореА рдкреНрд░рдХреНрд╖реЗрдкрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рдХрд░реЗрдВ \ mathbf {P} _1 ред


  • рд╣рдо рдПрд╕рд╡реАрдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВред


  • рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ \ mathbf {V_1} ^ H рдЪреБрдирдирд╛ рдЖрд░ рд▓рд╛рдЗрдиреЗрдВ рдЬрд╣рд╛рдВ рдЖрд░ - рд░реИрдВрдХ \ mathbf {H} _1 \ mathbf {P} _1 ред


  • рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ \ mathbf {F} _1 (рдпрд╛ \ mathbf {M} _1 - рдЬрд╣рд╛рдВ рдЬреИрд╕рд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред



рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░рд╛рдИ рдЬрд╛рдПрдЧреАред рдХреНрдпрд╛ рдпрд╣ рдЧрдгрд┐рдд рдХрд╛ рдЬрд╛рджреВ рдирд╣реАрдВ рд╣реИ: рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрдХрдиреАрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ!


рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рди рдХреЗрд╡рд▓ рдкреНрд░рд╛рдкреНрдд рдкреВрд░реНрд╡-рдХреЛрдбрд┐рдВрдЧ рдореИрдЯреНрд░рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ ( рд╕реНрд▓рд╛рдЗрдб рджреЗрдЦреЗрдВ) рднреАред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд рдкрд╛рдиреА рдбрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢рдХреНрддрд┐ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЙрдбрд▓


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕рд┐рдореБрд▓реЗрд╢рди рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╛рдпрдерди 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН:


import numpy as np 

рдмреБрдирд┐рдпрд╛рджреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП, рдФрд░:


 import pandas as pd 

рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


рдвреЗрд░ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣рд╛рдВ рд╕реНрд░реЛрдд рдбрд╛рд▓реВрдВрдЧрд╛
 class ZeroForcingBD: def __init__(self, H, Mrs_arr): Mr, Mt = np.shape(H) self.Mr = Mr self.Mt = Mt self.H = H self.Mrs_arr = Mrs_arr def __routines(self, H, mr, shift): # used in self.process() - See example above for illustration # inputs: # H - the whole channel matrix # mr - number of receive antennas of the i-th user # shift - how much receive antennas were considered before # outputs: # Uidx, Sigmaidx, Vhidx - SVD decomposition of the H_iP_i # d - rank of the hat H_i # Hidx - H_i (channel matrix for the i-th user) # r - rank of the H_i Hidx = H[0+shift:mr+shift,:] # H_i (channel matrix for the i-th user) r = np.linalg.matrix_rank(Hidx) # rank of the H_i del_idx = [i for i in range(0+shift, mr+shift, 1)] # row indeces of H_i in H H_hat_idx = np.delete(H, del_idx, 0) # hat H_i d = np.linalg.matrix_rank(H_hat_idx) # rank of the hat H_i U, Sigma, Vh = np.linalg.svd(H_hat_idx) # SVD Vhn = Vh[d:, :] # null-subspace of V^H Vn = np.matrix(Vhn).H # null-subspace of V Pidx = np.dot(Vn, np.matrix(Vn).H) # projection matrix Uidx, Sigmaidx, Vhidx = np.linalg.svd(np.dot(Hidx, Pidx)) # SVD of H_iP_i return Uidx, Sigmaidx, Vhidx, d, Hidx, r def process(self): # used in self.obtain_matrices() # outputs: # F - whole filtering (pre-coding) matrix (array of arrays) # D - whole demodulator (post-processing) matrix (array of arrays) # H - the whole channel matrix (array of arrays) shift = 0 H = self.H F = [] D = [] Hs = [] for mr in self.Mrs_arr: Uidx, Sigmaidx, Vhidx, d, Hidx, r = self.__routines(H, mr, shift) Vhidx1 = Vhidx[:r,:] # signal subspace Fidx = np.matrix(Vhidx1).H F.append(Fidx) D.append(Uidx) Hs.append(Hidx) shift = shift + mr return F, D, Hs def obtain_matrices(self): # used to obtain pre-coding and post-processing matrices # outputs: # FF - whole filtering (pre-coding) matrix # DD - whole demodulator (post-processing) matrix (array of arrays) F, D, Hs = self.process() FF = np.hstack(F) # Home Task: calculation of the demodulator matrices :) return FF 

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 8 рд╕рдВрдЪрд╛рд░рдг рд╡рд╛рд▓реЗ рдПрдВрдЯреЗрдирд╛ рдФрд░ 3 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХреНрд░рдорд╢рдГ 3, 2 рдФрд░ 3 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдВрдЯреЗрдирд╛ рд╣реИрдВ:


 Mrs_arr = [3,2,3] # 1st user have 3 receive antennas, 2nd user - 2 receive antennas, 3d user - 3 receive antennas Mr = sum(Mrs_arr) # total number of the receive antennas Mt = 8 # total number of the transmitt antennas H = (np.random.randn(Mr,Mt) + 1j*np.random.randn(Mr, Mt))/np.sqrt(2); #Rayleigh flat faded channel matrix (MrxMt) 

рд╣рдо рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХреЗ рдЕрдкрдирд╛рддреЗ рд╣реИрдВ:


 BD = ZeroForcingBD(H, Mrs_arr) F, D, Hs = BD.process() FF = BD.obtain_matrices() 

рд╣рдо рдПрдХ рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВ:


 df = pd.DataFrame(np.dot(H, FF)) df[abs(df).lt(1e-14)] = 0 

рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд▓рд┐рдлреНрдЯ рдХрд░реЗрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):


 print(pd.DataFrame(np.round(np.real(df),100))) 

рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:



рджрд░рдЕрд╕рд▓, рдпрд╣рд╛рдВ рд╡реЗ рдмреНрд▓реЙрдХ рд╣реИрдВ, рдпрд╣рд╛рдВ рдпрд╣ рд╣реИ рдФрд░ рд╡рд┐рдХрд░реНрдг рд╣реИред рдФрд░ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЛ рдХрдо рдХрд░рдирд╛ред


рдРрд╕реА рдмрд╛рддреЗрдВред


рд╕рд╛рд╣рд┐рддреНрдп


  1. рд╕реНрдкреЗрдВрд╕рд░, рдХреНрд╡реЗрдВрдЯрд┐рди рдПрдЪред, рдП рд▓реА рд╕реНрд╡рд┐рдВрдбрд▓рд╣рд░реНрд╕реНрдЯ, рдФрд░ рдорд╛рд░реНрдЯрд┐рди рд╣реИрд░реНрдбред "рдмрд╣реБ-рд╕реНрддрд░реАрдп MIMO рдЪреИрдирд▓реЛрдВ рдореЗрдВ рдбрд╛рдЙрдирд▓рд┐рдВрдХ рд╕реНрдерд╛рдирд┐рдХ рдмрд╣реБрд╕рдВрдХреЗрддрди рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп-рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗред" рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд░ рдЖрдИрдИрдИрдИ рд▓реЗрдирджреЗрди 52.2 (2004): 461-471ред
  2. рдорд╛рд░реНрдЯрд┐рди Haard " рдорд▓реНрдЯреА-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ MIMO рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ "

рдкреБрдирд╢реНрдЪ


рд╢рд┐рдХреНрд╖рдг рд╕реНрдЯрд╛рдл рдФрд░ рдореЗрд░реЗ рдореВрд▓ рдкреЗрд╢реЗ рдХреЗ рдЫрд╛рддреНрд░ рдмрд┐рд░рд╛рджрд░реА рдХреЛ рдореИрдВ рдирдорд╕реНрддреЗ рдХрд╣рддрд╛ рд╣реВрдВ!

Source: https://habr.com/ru/post/hi450948/


All Articles