"рд╕рдВрдмрдВрдзрд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╣реАрд░рдирд╛рдорд╛" рдХрд┐рдВрд╡рд╛ рдореА рдЬреАрд╡рдирд╛рдд рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдХрд╕реЗ рдкреЛрд╣реЛрдЪрд▓реЛ

рдорд╛рдЭрд╛ рдЖрдЬрдЪрд╛ рд▓реЗрдЦ рдПрдХрд╛ рд╡реНрдпрдХреНрддреАрдЪреЗ рд╡рд┐рдЪрд╛рд░ рдЖрд╣реЗ рдЬреНрдпрд╛рдиреЗ рдЬрд╡рд│рдЬрд╡рд│ рдЕрдкрдШрд╛рддрд╛рдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪрд╛ рдорд╛рд░реНрдЧ рд╕реНрд╡реАрдХрд╛рд░рд▓рд╛ (рдЬрд░реА рдиреИрд╕рд░реНрдЧрд┐рдХрд░рд┐рддреНрдпрд╛).

рд╣реЛрдп, рдорд▓рд╛ рд╕рдордЬрддреЗ рдХреА рдорд╛рдЭрд╛ рдЕрдиреБрднрд╡ рдлрдХреНрдд рдорд╛рдЭрд╛ рдЕрдиреБрднрд╡ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдорд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХреА рддреЗ рд╕рд╛рдорд╛рдиреНрдп рдЯреНрд░реЗрдВрдбрдордзреНрдпреЗ рдЪрд╛рдВрдЧрд▓реЗ рдмрд╕рддреЗ. рд╢рд┐рд╡рд╛рдп, рдЦрд╛рд▓реА рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓рд╛ рдЕрдиреБрднрд╡ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрдЪреНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рд╢реА рдЕрдзрд┐рдХ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХрд╛рдп рдЧрдВрдордд рдирд╛рд╣реА - рд╣реЗ рдмрд╛рд╣реЗрд░ рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддреЗ.

"рд╕рдВрдмрдВрдзрд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╣реАрд░рдирд╛рдорд╛" рдХрд┐рдВрд╡рд╛ рдореА рдЬреАрд╡рдирд╛рдд рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдХрд╕реЗ рдкреЛрд╣реЛрдЪрд▓реЛ
рд╕реНрддреНрд░реЛрдд: https://xkcd.com/664/

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдорд╛рдЬреА рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдХрдбреВрди рд╕рд░реНрд╡ рд╡рд░реНрддрдорд╛рди рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрдирд╛ рд╕рдорд░реНрдкрд┐рдд!

рдЕрдкреЗрдХреНрд╖рд╛

рдЬреЗрд╡реНрд╣рд╛ рдореА 2014 рдордзреНрдпреЗ рдЗрдиреНрдлреЛрдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдЯреЗрдХреНрдиреЙрд▓реЙрдЬреАрдЬ рдЖрдгрд┐ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рдорд╛рдЭреА рдмреЕрдЪрд▓рд░ рдкрджрд╡реА рдкреВрд░реНрдг рдХреЗрд▓реА, рддреЗрд╡реНрд╣рд╛ рдорд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪреНрдпрд╛ рдЬрдЧрд╛рдмрджреНрджрд▓ рдЬрд╡рд│рдЬрд╡рд│ рдХрд╛рд╣реАрд╣реА рдорд╛рд╣рд┐рдд рдирд╡реНрд╣рддреЗ. рд╣реЛрдп, рдЗрддрд░ рдЕрдиреЗрдХрд╛рдВрдкреНрд░рдорд╛рдгреЗ, рдореА рдорд╛рдЭреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╡рд░реНрд╖реА "рд╕рдВрдЧрдгрдХ рд╡рд┐рдЬреНрдЮрд╛рди" рд╡рд┐рд╖рдп рдШреЗрддрд▓рд╛ - рдкрдг, рдкреНрд░рднреБ, рддреЛ рдорд╛рдЭреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╡рд░реНрд╖рд╛рдд рд╣реЛрддрд╛! рд╣реЗ рдЕрдирдВрддрдХрд╛рд│ рдЖрд╣реЗ!

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдорд▓рд╛ рдмреЕрдЪрд▓рд░ рдбрд┐рдЧреНрд░реАрдкреЗрдХреНрд╖рд╛ рд╡рд┐рд╢реЗрд╖рддрдГ рд╡реЗрдЧрд│реНрдпрд╛ рдХрд╢рд╛рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╡реНрд╣рддреА рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рдореА рдорд╛рд╕реНрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рддреЗрд╡реНрд╣рд╛ "рд╕рдВрдкреНрд░реЗрд╖рдг рдЖрдгрд┐ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛" рдЬрд░реНрдорди-рд░рд╢рд┐рдпрди рдЗрдиреНрд╕реНрдЯрд┐рдЯреНрдпреВрдЯ рдСрдл рдиреНрдпреВ рдЯреЗрдХреНрдиреЙрд▓реЙрдЬреАрдЬ.

рдкрдг рд╡реНрдпрд░реНрде...

рдЖрдореНрд╣реА рдлрдХреНрдд рджреБрд╕рд░реЗ рдкреНрд░рд╡реЗрд╢ рдШреЗрдд рд╣реЛрддреЛ, рдЖрдгрд┐ рдкрд╣рд┐рд▓реНрдпрд╛рдкрд╛рд╕реВрдирдЪреА рдореБрд▓реЗ рдЕрдЬреВрдирд╣реА рджреВрд░рдЪреНрдпрд╛ рдЬрд░реНрдордиреАрд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдмреЕрдЧ рдкреЕрдХ рдХрд░рдд рд╣реЛрддреНрдпрд╛ (рдкрджрд╡реНрдпреБрддреНрддрд░ рдкрджрд╡реАрдЪреНрдпрд╛ рджреБрд╕рд▒реНрдпрд╛ рд╡рд░реНрд╖рд╛рдд рдЗрдВрдЯрд░реНрдирд╢рд┐рдкрд▓рд╛ рд╕рд╣рд╛ рдорд╣рд┐рдиреЗ рд▓рд╛рдЧрддрд╛рдд). рджреБрд╕-рдпрд╛ рд╢рдмреНрджрд╛рдд рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рдпреБрд░реЛрдкрд┐рдпрди рд╢рд┐рдХреНрд╖рдгрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреАрдВрдЪрд╛ рдЕрджреНрдпрд╛рдк рдЬрд╡рд│рдЪреНрдпрд╛ рд╡рд░реНрддреБрд│рд╛рддреАрд▓ рдХреЛрдгреАрд╣реА рдЧрд╛рдВрднреАрд░реНрдпрд╛рдиреЗ рд╕рд╛рдордирд╛ рдХреЗрд▓рд╛ рдирд╛рд╣реА рдЖрдгрд┐ рддрдкрд╢реАрд▓рд╛рдВрдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░рдгрд╛рд░реЗ рдХреЛрдгреАрд╣реА рдирд╡реНрд╣рддреЗ.

рдЖрдордЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╡рд░реНрд╖рд╛рдд, рдЕрд░реНрдерд╛рддрдЪ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдкрджреНрдзрддреА рд╣реЛрддреНрдпрд╛, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд▓реЛрдХрд╢рд╛рд╣реА рдкрджреНрдзрддреАрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рдгреЗ (рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ MATLAB рднрд╛рд╖реЗрдд) рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рдЙрдЪреНрдЪ рд╡рд┐рд╢реЗрд╖реАрдХреГрдд GUI рд╡рд╛рдкрд░рдгреЗ (рдпрд╛ рдЕрд░реНрдерд╛рдиреЗ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рди рд▓рд┐рд╣рд┐рддрд╛ - рд╕рд┐рдореНрдпреБрд▓реЗрд╢рди) рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдСрдлрд░ рджрд┐рд▓реА рдЬрд╛рдд рдЕрд╕реЗ. рдореЙрдбреЗрд▓рд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг).

"рд╕рдВрдмрдВрдзрд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╣реАрд░рдирд╛рдорд╛" рдХрд┐рдВрд╡рд╛ рдореА рдЬреАрд╡рдирд╛рдд рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдХрд╕реЗ рдкреЛрд╣реЛрдЪрд▓реЛ

рдЖрдореНрд╣реА, рд╡рд┐рдЬреНрдЮрд╛рдирд╛рддреАрд▓ рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдорд╛рд╕реНрдЯрд░реНрд╕, рдЖрдордЪреНрдпрд╛ рддрд░реБрдгрдкрдгрд╛рдЪреНрдпрд╛ рдореВрд░реНрдЦрдкрдгрд╛рдореБрд│реЗ, рдЖрдЧреАрд╕рд╛рд░рдЦреЗ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреЗ рдЯрд╛рд│рд▓реЗ, рд╣реЗ рд╡реЗрдЧрд│реЗ рд╕рд╛рдВрдЧрдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рдпреЗрдереЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдореЕрдерд╡рд░реНрдХреНрд╕рдЪреЗ рд╕рд┐рдореБрд▓рд┐рдВрдХ рдЖрд╣реЗ: рдпреЗрдереЗ рдмреНрд▓реЙрдХреНрд╕ рдЖрд╣реЗрдд, рдпреЗрдереЗ рдХрдиреЗрдХреНрд╢рди рдЖрд╣реЗрдд, рдпреЗрдереЗ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЖрдгрд┐ рд╕реНрд╡рд┐рдЪреЗрд╕ рдЖрд╣реЗрдд.

рдкреВрд░реНрд╡реА рд╕рд░реНрдХрд┐рдЯ рдбрд┐рдЭрд╛рдИрди рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЬрд┐рдирд┐рдЕрд░рд┐рдВрдЧрдордзреНрдпреЗ рдХрд╛рдо рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реНрдпрдХреНрддреАрд▓рд╛ рдореВрд│ рдЖрдгрд┐ рд╕рдордЬрдгреНрдпрд╛рдЬреЛрдЧреЗ рджреГрд╢реНрдп!

"рд╕рдВрдмрдВрдзрд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╣реАрд░рдирд╛рдорд╛" рдХрд┐рдВрд╡рд╛ рдореА рдЬреАрд╡рдирд╛рдд рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдХрд╕реЗ рдкреЛрд╣реЛрдЪрд▓реЛ
рд╕реНрддреНрд░реЛрдд: https://ch.mathworks.com/help/comm/examples/parallel-concatenated-convolutional-coding-turbo-codes.html

рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╕рдВ рд╡рд╛рдЯрд▓рдВ...

рд╡рд╛рд╕реНрддрд╡

рдкрд╣рд┐рд▓реНрдпрд╛ рд╕рддреНрд░рд╛рддреАрд▓ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдореНрд╣рдгрдЬреЗ "рдореЙрдбреЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди" рдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди OFDM рд╕рд┐рдЧреНрдирд▓ рдЯреНрд░рд╛рдиреНрд╕реАрд╡реНрд╣рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреЗ. рд╣реА рдХрд▓реНрдкрдирд╛ рдЦреВрдк рдпрд╢рд╕реНрд╡реА рдЖрд╣реЗ: рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЕрдЬреВрдирд╣реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рдмрд░реЗрдЪ рд▓реЛрдХрдкреНрд░рд┐рдп рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рдп-рдлрд╛рдп рдЖрдгрд┐ рдПрд▓рдЯреАрдИ/рдПрд▓рдЯреАрдИ-рдП рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ (рдУрдПрдлрдбреАрдПрдордПрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд). рджреВрд░рд╕рдВрдЪрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдореЙрдбреЗрд▓рд┐рдВрдЧрдордзреНрдпреЗ рдорд╛рд╕реНрдЯрд░реНрд╕рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХреМрд╢рд▓реНрдпрд╛рдВрдЪрд╛ рд╕рд░рд╛рд╡ рдХрд░рдгреЗ рд╣реА рд╕рд░реНрд╡реЛрддреНрддрдо рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ.

"рд╕рдВрдмрдВрдзрд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╣реАрд░рдирд╛рдорд╛" рдХрд┐рдВрд╡рд╛ рдореА рдЬреАрд╡рдирд╛рдд рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдХрд╕реЗ рдкреЛрд╣реЛрдЪрд▓реЛ

рдЖрдгрд┐ рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдЕрд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдлреНрд░реЗрдо рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рддрд╛рдВрддреНрд░рд┐рдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреЗ рдЕрдиреЗрдХ рдкрд░реНрдпрд╛рдп рджрд┐рд▓реЗ рдЖрд╣реЗрдд (рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЙрдкрд╛рдп рд╢реЛрдзреВ рдирдпреЗрдд рдореНрд╣рдгреВрди), рдЖрдгрд┐ рдЖрдореНрд╣реА рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд┐рдореНрдпреБрд▓рд┐рдВрдХрд╡рд░ рдЭреЗрдкрд╛рд╡рддреЛ... рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдбреЛрдХреНрдпрд╛рд╡рд░ рдЪрд╣рд╛рдЪреА рднрд╛рдВрдбреА рдорд╛рд░рд▓реА рдЬрд╛рддреЗ. рд╡рд╛рд╕реНрддрд╡рд╛рдЪреЗ:

  • рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдмрд░реНрдпрд╛рдЪ рдЕрдЬреНрдЮрд╛рдд рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдиреЗ рднрд░рд▓реЗрд▓рд╛ рдЖрд╣реЗ, рдЬреЗ рдЯреЛрдкреАрдЪреНрдпрд╛ рдереЗрдВрдмрд╛рдордзреНрдпреЗ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдзрдбрдХреА рднрд░рд╡рдгрд╛рд░рд╛ рдЖрд╣реЗ.
  • рд╕рдВрдЦреНрдпрд╛рдВрд╕рд╣ рдлреЗрд░рдлрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЕрд╕реЗ рджрд┐рд╕рддреЗ, рд╕реЛрдкреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддрд░реАрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ рдЧрдбрдмрдб рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓, рджреЗрд╡ рдордирд╛рдИ рдХрд░рд╛.
  • рдЙрдкрд▓рдмреНрдз рдмреНрд▓реЙрдХреНрд╕рдЪреНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрддреВрди рд╕рд░реНрдлрд┐рдВрдЧрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░рд╣реА, GUI рдЪреНрдпрд╛ рдЙрдиреНрдорддреНрдд рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рдХреЕрдереЗрдбреНрд░рд▓ рдорд╢реАрдиреНрд╕ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рд╣реЛрддрд╛рдд.
  • рдШрд░реА рдХрд╛рд╣реАрддрд░реА рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рд╕рдорд╛рди рд╕рд┐рдореБрд▓рд┐рдВрдХ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдгрд┐, рдЦрд░рдВ рддрд░, рдХреЛрдгрддреЗрд╣реА рдкрд░реНрдпрд╛рдп рдирд╛рд╣реАрдд.

рд╣реЛрдп, рд╢реЗрд╡рдЯреА рдЖрдореНрд╣реА рдкреНрд░рдХрд▓реНрдк рдЕрд░реНрдерд╛рддрдЪ рдкреВрд░реНрдг рдХреЗрд▓рд╛, рдкрдг рд╕реБрдЯрдХреЗрдЪрд╛ рдирд┐:рд╢реНрд╡рд╛рд╕ рд╕реЛрдбрдд рдЖрдореНрд╣реА рддреЛ рдкреВрд░реНрдг рдХреЗрд▓рд╛.

рдХрд╛рд╣реА рд╡реЗрд│ рдЧреЗрд▓рд╛ рдЖрдгрд┐ рдЖрдореНрд╣реА рдкрджрд╡реНрдпреБрддреНрддрд░ рдкрджрд╡реАрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╡рд░реНрд╖рд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдЖрд▓реЛ. GUI рд╡рд╛рдкрд░реВрди рдЧреГрд╣рдкрд╛рдард╛рдЪреЗ рдкреНрд░рдорд╛рдг рдЬрд░реНрдорди рд╡рд┐рд╖рдпрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╡рд╛рдврд▓реНрдпрд╛рдиреЗ рдкреНрд░рдорд╛рдгрд╛рдиреБрд╕рд╛рд░ рдХрдореА рд╣реЛрдК рд▓рд╛рдЧрд▓реЗ, рдЬрд░реА рддреЗ рдЕрджреНрдпрд╛рдк рдкреЕрд░рд╛рдбрд╛рдЗрдо рд╢рд┐рдлреНрдЯрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдкреЛрд╣реЛрдЪрд▓реЗ рдирд╡реНрд╣рддреЗ. рдорд╛рдЭреНрдпрд╛рд╕рд╣ рдЖрдкрд▓реНрдпрд╛рдкреИрдХреА рдмрд░реНтАНрдпрд╛рдЪ рдЬрдгрд╛рдВрдиреА, рдЖрдордЪреНрдпрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рдореЕрдЯрд▓реЕрдмрдЪрд╛ рдЕрдзрд┐рдХрд╛рдзрд┐рдХ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ (рдЬрд░реА рдЯреВрд▓рдмреЙрдХреНрд╕реЗрд╕рдЪреНрдпрд╛ рд░реВрдкрд╛рдд), рдЖрдгрд┐ рдЙрд╢рд┐рд░ рдкрд░рд┐рдЪрд┐рдд рд╕рд┐рдореНрдпреБрд▓рд┐рдВрдХ рдирд╛рд╣реА.

рдЖрдордЪреНрдпрд╛ рд╢рдВрдХрд╛рдВрдЪрд╛ рдореБрджреНрджрд╛ рдореНрд╣рдгрдЬреЗ рджреНрд╡рд┐рддреАрдп рд╡рд░реНрд╖рд╛рдЪреНрдпрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрдкреИрдХреА рдПрдХрд╛рдЪрд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╣реЛрддрд╛ (рддреЗ рдиреБрдХрддреЗрдЪ рд░рд╢рд┐рдпрд╛рд▓рд╛ рдкрд░рдд рдЖрд▓реЗ рд╣реЛрддреЗ):

  • рд╡рд┐рд╕рд░рд╛, рдХрд┐рдорд╛рди рдЗрдВрдЯрд░реНрдирд╢рд┐рдкрдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрд╕рд╛рдареА, рд╕рд┐рдорд┐рд▓рд┐рдВрдХ, рдореЕрдердХреЕрдб рдЖрдгрд┐ рдЗрддрд░ рд▓реЕрдмрд╡реНрд╣реНрдпреВ рдмрджреНрджрд▓ - рдЯреЗрдХрдбреАрд╡рд░, рдореЕрдЯрд▓реЕрдмрдордзреНрдпреЗ рд╕реНрд╡рддрдГ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЪреА рд╡рд┐рдирд╛рдореВрд▓реНрдп "рдЖрд╡реГрддреНрддреА" рдСрдХреНрдЯреЗрд╡реНрд╣ рд╡рд╛рдкрд░реВрди рд╕рд░реНрд╡рдХрд╛рд╣реА MATLAB рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ.

рд╡рд┐рдзрд╛рди рдЕрдВрд╢рддрдГ рдЦрд░реЗ рдард░рд▓реЗ: рдЗрд▓реНрдореЗрдиреМрдордзреНрдпреЗ, рд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рдирд┐рд╡рдбреАрд╡рд░реАрд▓ рд╡рд┐рд╡рд╛рдж рджреЗрдЦреАрд▓ рдкреВрд░реНрдгрдкрдгреЗ рд╕реЛрдбрд╡рд▓рд╛ рдЧреЗрд▓рд╛ рдирд╛рд╣реА. рдЦрд░реЗ рдЖрд╣реЗ, рдирд┐рд╡рдб рдореБрдЦреНрдпрддрдГ MATLAB, Python рдЖрдгрд┐ C рдордзреАрд▓ рд╣реЛрддреА.

рддреНрдпрд╛рдЪ рджрд┐рд╡рд╢реА, рдорд▓рд╛ рдПрдХ рдиреИрд╕рд░реНрдЧрд┐рдХ рдЙрддреНрд╕рд╛рд╣ рдЖрд▓рд╛: рдореА рдорд╛рдЭреНрдпрд╛ рдУрдПрдлрдбреАрдПрдо рдЯреНрд░рд╛рдиреНрд╕рдореАрдЯрд░ рдореЙрдбреЗрд▓рдЪрд╛ рднрд╛рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлреЙрд░реНрдордордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░реВ рдирдпреЗ? рдлрдХреНрдд рдЧрдВрдордд рдореНрд╣рдгреВрди.

рдЖрдгрд┐ рдореА рдХрд╛рдорд╛рд▓рд╛ рд▓рд╛рдЧрд▓реЛ.

рдХреНрд░рдорд╛рдХреНрд░рдорд╛рдиреЗ

рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЧрдгрдиреЗрдРрд╡рдЬреА, рдореА рдлрдХреНрдд рдпрд╛рдЪреА рд▓рд┐рдВрдХ рджреЗрдИрди рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ 2011 рдкрд╛рд╕реВрди tgx рдЖрдгрд┐ рд╕реНрд▓рд╛рдЗрдбреНрд╕рд╡рд░ LTE рднреМрддрд┐рдХ рд╕реНрддрд░ рдкреНрд░рд╛рдзреНрдпрд╛рдкрдХ рдорд┐рд╢реЗрд▓-рдЯрд┐рд▓рд╛ (TU Ilmenau). рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рд╣реЗ рдкреБрд░реЗрд╕реЗ рдЕрд╕реЗрд▓.

"рдордЧ," рдореА рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛, "рдЪрд▓рд╛ рдкреБрдиреНрд╣рд╛ рд╕рд╛рдВрдЧреВ, рдЖрдкрдг рдХрд╛рдп рдореЙрдбреЗрд▓ рдХрд░рдгрд╛рд░ рдЖрд╣реЛрдд?"
рдЖрдореНрд╣реА рдореЙрдбреЗрд▓ рдХрд░реВ OFDM рдлреНрд░реЗрдо рдЬрдирд░реЗрдЯрд░ (OFDM рдлреНрд░реЗрдо рдЬрдирд░реЗрдЯрд░).

рддреНрдпрд╛рдд рдХрд╛рдп рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕реЗрд▓:

  • рдорд╛рд╣рд┐рддреА рдЪрд┐рдиреНрд╣реЗ
  • рдкрд╛рдпрд▓рдЯ рд╕рд┐рдЧреНрдирд▓
  • рд╢реВрдиреНрдп (DC)

рдЖрдореНрд╣реА рдХрд╛рдп (рд╕рд╛рдзреЗрдкрдгрд╛рдЪреНрдпрд╛ рдлрд╛рдпрджреНрдпрд╛рд╕рд╛рдареА) рдпрд╛рддреВрди рд╕рд╛рд░ рдШреЗрддреЛ:

  • рдЪрдХреНрд░реАрдп рдЙрдкрд╕рд░реНрдЧ рдореЙрдбреЗрд▓рд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди (рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдореВрд▓рднреВрдд рдорд╛рд╣рд┐рддреА рдЕрд╕реЗрд▓ рддрд░ рддреЗ рдЬреЛрдбрдгреЗ рдХрдареАрдг рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА)

"рд╕рдВрдмрдВрдзрд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╣реАрд░рдирд╛рдорд╛" рдХрд┐рдВрд╡рд╛ рдореА рдЬреАрд╡рдирд╛рдд рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдХрд╕реЗ рдкреЛрд╣реЛрдЪрд▓реЛ

рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдореЙрдбреЗрд▓рдЪреЗ рдмреНрд▓реЙрдХ рдЖрдХреГрддреА. рдЖрдореНрд╣реА рд╡реНрдпрд╕реНрдд FFT (IFFT) рдмреНрд▓реЙрдХрд╡рд░ рдерд╛рдВрдмреВ. рдЪрд┐рддреНрд░ рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдЙрд░реНрд╡рд░рд┐рдд рд╕реНрд╡рддрдГрдЪ рд╕реБрд░реВ рдареЗрд╡реВ рд╢рдХрддреЛ - рдореА рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рд╢рд┐рдХреНрд╖рдХрд╛рдВрдирд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрд╕рд╛рдареА рдХрд╛рд╣реАрддрд░реА рд╕реЛрдбрдгреНрдпрд╛рдЪреЗ рд╡рдЪрди рджрд┐рд▓реЗ.

рдЪрд▓рд╛ рддреЗ рд╕реНрд╡рддрдГрд╕рд╛рдареА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВрдпрд╛. рд╡реНрдпрд╛рдпрд╛рдо:

  • рдЙрдк-рд╡рд╛рд╣рдХрд╛рдВрдЪреА рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛;
  • рдирд┐рд╢реНрдЪрд┐рдд рдлреНрд░реЗрдо рд▓рд╛рдВрдмреА;
  • рдЖрдкрдг рдордзреНрдпрднрд╛рдЧреА рдПрдХ рд╢реВрдиреНрдп рдЖрдгрд┐ рдлреНрд░реЗрдордЪреНрдпрд╛ рд╕реБрд░реВрд╡рд╛рддреАрд╕ рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рд╢реВрдиреНрдпрд╛рдВрдЪреА рдЬреЛрдбреА рдЬреЛрдбрд▓реА рдкрд╛рд╣рд┐рдЬреЗ (рдПрдХреВрдг, 5 рддреБрдХрдбреЗ);
  • рдорд╛рд╣рд┐рддреА рдЪрд┐рдиреНрд╣реЗ 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

рдЖрддрд╛ рдЖрдореНрд╣реА рдорд╛рд╣рд┐рддреА рдЪрд┐рдиреНрд╣рд╛рдВрдЪреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЛ, рд╣рд╛ рдЖрдзрд╛рд░ рд╕реНрд╡реАрдХрд╛рд░реВрди рдХреА рдкрд╛рдпрд▓рдЯ рд╕рд┐рдЧреНрдирд▓ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдпрдкрдгреЗ рд╢реВрдиреНрдпрд╛рдЪреНрдпрд╛ рдЖрдзреА рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рдирдВрддрд░ рдЬрд╛рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

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

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

рдордЧ рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░реВрди рдкреЛрдЭрд┐рд╢рдиреНрд╕ рдард░рд╡рддрд╛ рдпреЗрддрд╛рдд linspace, рдЬрд╡рд│рдЪреНрдпрд╛ рдкреВрд░реНрдгрд╛рдВрдХрд╛рдВрдкреИрдХреА рд╕рд░реНрд╡рд╛рдд рд▓рд╣рд╛рди рдореВрд▓реНрдпреЗ рдХрдореА рдХрд░рдгреЗ:

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

рдЪрд▓рд╛ рдпрд╛рдордзреНрдпреЗ рд╢реВрдиреНрдпрд╛рдВрдЪреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЬреЛрдбреВ рдЖрдгрд┐ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡реВ:

%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

"рдЖрдирдВрдж!" - рдореА рд╕рдорд╛рдзрд╛рдирд╛рдиреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЖрдгрд┐ рд▓реЕрдкрдЯреЙрдк рдмрдВрдж рдХреЗрд▓рд╛. рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдорд▓рд╛ рджреЛрди рддрд╛рд╕ рд▓рд╛рдЧрд▓реЗ: рдХреЛрдб рд▓рд┐рд╣рд┐рдгреЗ, рдХрд╛рд╣реА рдореЕрдЯрд▓реЕрдм рдлрдВрдХреНрд╢рдиреНрд╕ рд╢рд┐рдХрдгреЗ рдЖрдгрд┐ рдЧрдгрд┐рддреА рдпреБрдХреНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреЗ рдпрд╛рд╕рд╣.

рдордЧ рдореА рдХреЛрдгрддрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврд▓рд╛?

рд╡реНрдпрдХреНрддрд┐рдирд┐рд╖реНрда:

  • рд▓реЗрдЦрди рд╕рдВрд╣рд┐рддрд╛ рдЖрдирдВрджрджрд╛рдпреА рдЖрдгрд┐ рдХрд╡рд┐рддреЗрд╢реА рдорд┐рд│рддреЗрдЬреБрд│рддреЗ рдЖрд╣реЗ!
  • рд╕рдВрдкреНрд░реЗрд╖рдг рдЖрдгрд┐ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд╣реА рд╕рд░реНрд╡рд╛рдд рд╕реЛрдпреАрдЪреА рд╕рдВрд╢реЛрдзрди рдкрджреНрдзрдд рдЖрд╣реЗ.

рд╡рд╕реНрддреБрдирд┐рд╖реНрда:

  • рддреЛрдлрд╛рддреВрди рдЪрд┐рдордгреНрдпрд╛ рдЙрдбрд╡рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА (рдЬреЛрдкрд░реНрдпрдВрдд рдЕрд╕реЗ рд╢реИрдХреНрд╖рдгрд┐рдХ рдзреНрдпреЗрдп рдЕрд░реНрдерд╛рддрдЪ рдлрд╛рдпрджреЗрд╢реАрд░ рдирд╕рддреЗ): рд╕рд┐рдореНрдпреБрд▓рд┐рдВрдХ рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рдПрдХрд╛ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рд╕рд╛рдзрдирд╛рдиреЗ рдПрдХ рд╕рд╛рдзреА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд┐рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА.
  • GUI рдЪрд╛рдВрдЧрд▓рдВ рдЖрд╣реЗ, рдкрдг "рдЕрдВрдбрд░ рдж рд╣реБрдб" рдХрд╛рдп рдЖрд╣реЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгрдВ рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓рдВ рдЖрд╣реЗ.

рдЖрдгрд┐ рдЖрддрд╛, рд╡рд┐рджреНрдпрд╛рд░реНрдереА рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рджреВрд░ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдорд▓рд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдмрдВрдзреВрдВрдирд╛ рдкреБрдвреАрд▓ рдЧреЛрд╖реНрдЯреА рд╕рд╛рдВрдЧрд╛рдпрдЪреНрдпрд╛ рдЖрд╣реЗрдд:

  • рддреНрдпрд╛рд╕рд╛рдареА рдЬрд╛!

рдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛, рдЬрд░реА рддреЛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рд╡рд╛рдИрдЯ рдЕрд╕рд▓рд╛ рддрд░реАрд╣реА. рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрд╕рд╣, рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрдкреНрд░рдорд╛рдгреЗ, рд╕рд░реНрд╡рд╛рдд рдХрдареАрдг рднрд╛рдЧ рдореНрд╣рдгрдЬреЗ рд╕реБрд░реБрд╡рд╛рдд. рдЖрдгрд┐ рдЖрдзреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ: рдЬрд░ рддреБрдореНрд╣реА рд╢рд╛рд╕реНрддреНрд░рдЬреНрдЮ рдЕрд╕рд╛рд▓ рдХрд┐рдВрд╡рд╛ рдЕрдЧрджреА рддрдВрддреНрд░рдЬреНрдЮ рдЕрд╕рд╛рд▓ рддрд░, рд▓рд╡рдХрд░рдЪ рдХрд┐рдВрд╡рд╛ рдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдХреМрд╢рд▓реНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓.

  • рдорд╛рдЧрдгреА!

рд╢рд┐рдХреНрд╖рдХ рдЖрдгрд┐ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХрд╛рдВрдХрдбреВрди рдкреНрд░рдЧрддреАрд╢реАрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрди рдЖрдгрд┐ рд╕рд╛рдзрдирд╛рдВрдЪреА рдорд╛рдЧрдгреА рдХрд░рд╛. рд╣реЗ рд╢рдХреНрдп рдЕрд╕рд▓реНрдпрд╛рд╕, рдирдХреНрдХреАрдЪ ...

  • рддрдпрд╛рд░ рдХрд░рд╛!

рд╢реИрдХреНрд╖рдгрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдЪреНрдпрд╛ рдЪреМрдХрдЯреАрдд рдирд╕рд▓реНрдпрд╛рд╕ рдирд╡рд╢рд┐рдХреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдлреЛрдбрд╛рдВрд╡рд░ рдорд╛рдд рдХрд░рдгреЗ рдЖрдгрдЦреА рдХреЛрдареЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ? рддреБрдордЪреА рдХреМрд╢рд▓реНрдпреЗ рддрдпрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ рд╕реБрдзрд╛рд░рд╛ - рдкреБрдиреНрд╣рд╛, рддреБрдореНрд╣реА рдЬрд┐рддрдХреНрдпрд╛ рд▓рд╡рдХрд░ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рд╛рд▓ рддрд┐рддрдХреЗ рдЪрд╛рдВрдЧрд▓реЗ.

рд╕рд░реНрд╡ рджреЗрд╢рд╛рдВрддреАрд▓ рдЗрдЪреНрдЫреБрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдПрдХрддреНрд░ рд╡реНрд╣рд╛!

PS

рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрд╢реА рдорд╛рдЭреЗ рдереЗрдЯ рд╕рдВрдмрдВрдз рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдореА рджреЛрди рд░реЗрдХреНрдЯрд░рд╛рдВрд╕рд╣ 2017 рдЪрд╛ рдПрдХ рд╕рдВрд╕реНрдорд░рдгреАрдп рдлреЛрдЯреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдд рдЖрд╣реЗ: рдкреАрдЯрд░ рд╢рд╛рд░реНрдл (рдЙрдЬрд╡реАрдХрдбреЗ) рдЖрдгрд┐ рдЕрд▓реНрдмрд░реНрдЯ рдЦрд╛рд░рд┐рд╕реЛрд╡рд┐рдЪ рдЧрд┐рд▓рдореБрддрджрд┐рдиреЛрд╡ (рдбрд╛рд╡реАрдХрдбреЗ).

"рд╕рдВрдмрдВрдзрд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкрд╛рд╕реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╣реАрд░рдирд╛рдорд╛" рдХрд┐рдВрд╡рд╛ рдореА рдЬреАрд╡рдирд╛рдд рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдХрд╕реЗ рдкреЛрд╣реЛрдЪрд▓реЛ

рдирд┐рджрд╛рди рдпрд╛ рд╡реЗрд╢рднреВрд╖реЗрдкреБрд░рддреЗ рддрд░реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреВрд░реНрдг рдХрд░рдгреЗ рдпреЛрдЧреНрдп рд╣реЛрддреЗ! (рдорд╕реНрдХрд░реА)

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛