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

рдореЗрд░реЛ рдЖрдЬрдХреЛ рд▓реЗрдЦ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдмрд╛рдЯ рдЪрд░реНрдХреЛ рд╕реНрд╡рд░рдорд╛ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рд╣реЛ рдЬрд╕рд▓реЗ рд▓рдЧрднрдЧ рджреБрд░реНрдШрдЯрдирд╛рдмрд╛рдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдХреЛ рдмрд╛рдЯреЛ рд▓рд┐рдпреЛ (рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛)ред

рд╣реЛ, рдо рдмреБрдЭреНрдЫреБ рдХрд┐ рдореЗрд░реЛ рдЕрдиреБрднрд╡ рдХреЗрд╡рд▓ рдореЗрд░реЛ рдЕрдиреБрднрд╡ рд╣реЛ, рддрд░ рдпреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╡реГрддреНрддрд┐рдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдлрд┐рдЯ рд╣реБрдиреНрдЫ рдЬрд╕реНрддреЛ рд▓рд╛рдЧреНрдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рддрд▓ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрднрд╡ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЧрддрд┐рд╡рд┐рдзрд┐рдХреЛ рдХреНрд╖реЗрддреНрд░рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ, рддрд░ рдХрд╕рд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рдпреЛ рдмрд╛рд╣рд┐рд░ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред

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

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдкреВрд░реНрд╡ рд╡рд┐рджреНрдпрд╛рд░реНрдереАрдмрд╛рдЯ рд╕рдмреИ рд╡рд░реНрддрдорд╛рди рд╡рд┐рджреНрдпрд╛рд░реНрдереАрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдкрд┐рдд!

рдЕрдкреЗрдХреНрд╖рд╛рд╣рд░реВ

рдЬрдм рдореИрд▓реЗ 2014 рдорд╛ рдЗрдиреНрдлреЛрдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рд░ рдХрдореНрдпреБрдирд┐рдХреЗрд╕рди рд╕рд┐рд╕реНрдЯрдордорд╛ рдореЗрд░реЛ рд╕реНрдирд╛рддрдХ рдбрд┐рдЧреНрд░реА рдкреВрд░рд╛ рдЧрд░реЗрдВ, рдорд▓рд╛рдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдХреЛ рд╕рдВрд╕рд╛рд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рд▓рдЧрднрдЧ рдХреЗрд╣рд┐ рдерд╛рд╣рд╛ рдерд┐рдПрдиред рд╣реЛ, рдЕрд░реВ рдзреЗрд░реИрдЬрд╕реНрддреИ, рдореИрд▓реЗ рдореЗрд░реЛ рдкрд╣рд┐рд▓реЛ рд╡рд░реНрд╖рдорд╛ "рдХрдореНрдкреНрдпреБрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди" рд╡рд┐рд╖рдп рд▓рд┐рдПрдБ - рддрд░, рдкреНрд░рднреБ, рдпреЛ рдореЗрд░реЛ рдкрд╣рд┐рд▓реЛ рд╡рд░реНрд╖рдорд╛ рдерд┐рдпреЛ! рдпреЛ рдПрдХ рдЕрдирдиреНрддрддрд╛ рднрдПрдХреЛ рдЫ!

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

рддрд░ рд╡реНрдпрд░реНрдердорд╛...

рд╣рд╛рдореА рджреЛрд╕реНрд░реЛ рдЗрдиреНрдЯреЗрдХ рдорд╛рддреНрд░ рдерд┐рдпреМрдВ, рд░ рдкрд╣рд┐рд▓реЛрдХрд╛ рдХреЗрдЯрд╛рд╣рд░реВ рдЕрдЭреИ рдЯрд╛рдврд╛ рдЬрд░реНрдордиреАрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреЛ рдЭреЛрд▓рд╛ рдкреНрдпрд╛рдХ рдЧрд░реНрджреИ рдерд┐рдП (рдЗрдиреНрдЯрд░реНрдирд╢рд┐рдк рдорд╛рд╕реНрдЯрд░ рдбрд┐рдЧреНрд░реАрдХреЛ рджреЛрд╕реНрд░реЛ рд╡рд░реНрд╖рдорд╛ рдЫ рдорд╣рд┐рдирд╛ рд▓рд╛рдЧреНрдЫ)ред рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛ рднрдиреНрдиреБрдкрд░реНрджрд╛, рддрддреНрдХрд╛рд▓рдХреЛ рд╕рд░реНрдХрд▓рдмрд╛рдЯ рдХрд╕реИрд▓реЗ рдкрдирд┐ рдпреБрд░реЛрдкреЗрд▓реА рд╢рд┐рдХреНрд╖рд╛рдХрд╛ рд╡рд┐рдзрд┐рд╣рд░реВрдмрд╛рд░реЗ рдЧрдореНрднреАрд░рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд╛рдордирд╛ рдЧрд░реЗрдХреЛ рдерд┐рдПрди, рд░ рд╡рд┐рд╡рд░рдгрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдзреНрдиреЗ рдХреЛрд╣реА рдкрдирд┐ рдерд┐рдПрдиред

рд╣рд╛рдореНрд░реЛ рдкрд╣рд┐рд▓реЛ рд╡рд░реНрд╖рдорд╛, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рд╣рд╛рдореАрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдЕрднреНрдпрд╛рд╕рд╣рд░реВ рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВ, рдЬрд╕рдорд╛ рд╣рд╛рдореАрд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд▓реЛрдХрддрд╛рдиреНрддреНрд░рд┐рдХ рд░реВрдкрдорд╛ рд▓рд┐рдкрд┐рд╣рд░реВ (рдореБрдЦреНрдпрддрдпрд╛ 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 рдХреЛ рд░реВрдкрдорд╛)ред рдпреЛ рдорд╛рд╕реНрдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЯреЗрд▓рд┐рдХрдо рдкреНрд░рдгрд╛рд▓реА рдореЛрдбрд▓рд┐рдЩрдорд╛ рдЖрдлреНрдиреЛ рд╕реАрдк рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрди рд╕рдмреИрднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рдХреБрд░рд╛ рд╣реЛред

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

рд░ рдЕрдм рд╣рд╛рдореАрд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдлреНрд░реЗрдо рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХрд╛ рд╕рд╛рде рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рд╣рд░реВрдХреЛ рдзреЗрд░реИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рджрд┐рдЗрдиреНрдЫ (рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреНрди рдирдкрд░реЛрд╕реН) рд░ рд╣рд╛рдореА рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рд╕рд┐рдореБрд▓рд┐рдВрдХрдорд╛ рд╣рд╛рдо рдлрд╛рд▓реНрдЫреМрдВ ... рд░ рд╣рд╛рдореА рдЯрд╛рдЙрдХреЛрдорд╛ рдЪрд┐рдпрд╛рдкрд╛рдиреАрд▓реЗ рд╣рд┐рд░реНрдХрд╛рдЙрдБрдЫреМрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЛ:

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

рд╣реЛ, рдЕрдиреНрддрдорд╛ рд╣рд╛рдореАрд▓реЗ рдкрдХреНрдХреИ рдкрдирд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреВрд░рд╛ рдЧрд░реНтАНрдпреМрдВ, рддрд░ рд╣рд╛рдореАрд▓реЗ рд░рд╛рд╣рддрдХреЛ рдареВрд▓реЛ рд╢реНрд╡рд╛рд╕рдХрд╛ рд╕рд╛рде рдкреВрд░рд╛ рдЧрд░реНрдпреМрдВред

рдХреЗрд╣реА рд╕рдордп рдмрд┐рддреНрдпреЛ рд░ рд╣рд╛рдореА рдорд╛рд╕реНрдЯрд░ рдбрд┐рдЧреНрд░реАрдХреЛ рдкрд╣рд┐рд▓реЛ рд╡рд░реНрд╖рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдЖрдЗрдкреБрдЧреНрдпреМрдВред GUI рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЧреГрд╣рдХрд╛рд░реНрдпрдХреЛ рдорд╛рддреНрд░рд╛ рдЬрд░реНрдорди рд╡рд┐рд╖рдпрд╣рд░реВрдХреЛ рдЕрдиреБрдкрд╛рддрдорд╛ рд╡реГрджреНрдзрд┐рд╕рдБрдЧреИ рд╕рдорд╛рдиреБрдкрд╛рддрд┐рдХ рд░реВрдкрдорд╛ рдШрдЯреНрди рдерд╛рд▓реНрдпреЛ, рдпрджреНрдпрдкрд┐ рдпреЛ рдЕрдЭреИ рдкреНрд░рддрд┐рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рдмрд┐рдиреНрджреБрдорд╛ рдкреБрдЧреЗрдХреЛ рдерд┐рдПрдиред рдо рд▓рдЧрд╛рдпрдд рд╣рд╛рдореА рдордзреНрдпреЗ рдзреЗрд░реИрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдорд╛рдгрд▓рд╛рдИ рдкрд╛рд░ рдЧрд░реНрджреИ, рд╣рд╛рдореНрд░рд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ (рдЯреВрд▓рдмрдХреНрд╕рдХреЛ рд░реВрдкрдорд╛ рднрдП рдкрдирд┐) рдорд╛рддрд▓рд╛рдмрд▓рд╛рдИ рдзреЗрд░реИ рднрдиреНрджрд╛ рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНтАНрдпреМрдВ, рд░ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреЗ рдкрд░рд┐рдЪрд┐рдд рд╕рд┐рдореБрд▓рд┐рдЩреНрдХ рд╣реЛрдЗрдиред

рд╣рд╛рдореНрд░реЛ рд╢рдВрдХрд╛рдХреЛ рдмрд┐рдиреНрджреБ рджреЛрд╕реНрд░реЛ рд╡рд░реНрд╖рдХрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереАрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдХреЛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдерд┐рдпреЛ (рдЙрдиреАрд╣рд░реВ рднрд░реНрдЦрд░реИ рд░реВрд╕ рдлрд░реНрдХреЗрдХрд╛ рдерд┐рдП):

  • рдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН, рдХрдореНрддрд┐рдорд╛ рдЗрдиреНрдЯрд░реНрдирд╢рд┐рдкрдХреЛ рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐, Similink, MathCad рд░ рдЕрдиреНрдп LabView рдХреЛ рдмрд╛рд░реЗрдорд╛ - рдкрд╣рд╛рдбрдорд╛, рд╕рдмреИ рдХреБрд░рд╛ MATLAB рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ, MatLab рд╡рд╛ рдпрд╕рдХреЛ рдирд┐: рд╢реБрд▓реНрдХ "рд╕рдВрд╕реНрдХрд░рдг" Octave рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред

рдХрдерди рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рд╕рддреНрдп рднрдпреЛ: Ilmenau рдорд╛, рдЙрдкрдХрд░рдг рдХреЛ рдЫрдиреЛрдЯ рдорд╛ рд╡рд┐рд╡рд╛рдж рдкрдирд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╣рд▓ рднрдПрдХреЛ рдерд┐рдПрдиред рд╕рд╛рдБрдЪреЛ, рдЫрдиреЛрдЯ рдкреНрд░рд╛рдпрдГ MATLAB, Python рд░ C рдмреАрдЪрдХреЛ рдерд┐рдпреЛред

рдЙрд╣реА рджрд┐рди, рдорд▓рд╛рдИ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЙрддреНрд╕рд╛рд╣рд▓реЗ рд▓рд┐рдпреЛ: рдореИрд▓реЗ OFDM рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯрд░ рдореЛрдбреЗрд▓рдХреЛ рдореЗрд░реЛ рднрд╛рдЧрд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╛рд░рдордорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди? рд░рдорд╛рдЗрд▓реЛрдХреЛ рд▓рд╛рдЧреА рдорд╛рддреНрд░реИред

рдЕрдирд┐ рдХрд╛рдордорд╛ рд▓рд╛рдЧреЗрдБ ред

рдПрдХ рдкрдЫрд┐ рдЕрд░реНрдХреЛ

рд╕реИрджреНрдзрд╛рдиреНрддрд┐рдХ рдЧрдгрдирд╛рдХреЛ рд╕рдЯреНрдЯрд╛, рдо рдХреЗрд╡рд▓ рдпрд╕рдХреЛ рд▓рд┐рдЩреНрдХ рджрд┐рдиреЗрдЫреБ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ 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); 

рдЕрдм рдкрд╛рдпрд▓рдЯ рд╕рдВрдХреЗрдд рдмреБрдЭреМрдВред

рд╣рд╛рдореАрд╕рдБрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЫ (рдЪрд░ рдкрд╛рдпрд▓рдЯрд╣рд░реВ), рд░ рд╣рд╛рдореА рдпрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯрдмрд╛рдЯ рдкрд╛рдЗрд▓рдЯрд╣рд░реВ рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ рд╣рд╛рдореНрд░реЛ рдлреНрд░реЗрдордорд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рднрдиреМрдВред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпреЛ рдПрдХ рдкрд╛рд╢ рдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╡рд╛ рддрдкрд╛рдЗрдБ matrices рдХреЛ рд╕рд╛рде рдЕрд▓рд┐ рдореБрд╢реНрдХрд┐рд▓ рдЦреЗрд▓реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ - рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐ 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 рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд┐рдХреНрдиреЗ рд░ рдЧрдгрд┐рддреАрдп рдЪрд╛рд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рд╕реЛрдЪреНрдиреЗ рд╕рд╣рд┐рддред

рддреНрдпрд╕рдкрдЫрд┐ рдореИрд▓реЗ рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗрдВ?

рд╡рд┐рд╖рдпрдЧрдд:

  • рд▓реЗрдЦрди рд╕рдВрд╣рд┐рддрд╛ рд╕реБрдЦрдж рд░ рдХрд╡рд┐рддрд╛ рдЬрд╕реНрддреИ рдЫ!
  • рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ рд╕рдВрдЪрд╛рд░ рд░ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╢реЛрдзрди рдХреЛ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд▓рд╛рдЧреА рд╕рдмреИ рднрдиреНрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрдиреБрд╕рдиреНрдзрд╛рди рд╡рд┐рдзрд┐ рд╣реЛред

рдЙрджреНрджреЗрд╢реНрдп:

  • рддреНрдпрд╣рд╛рдБ рддреЛрдкрдмрд╛рдЯ рднрдБрдЧреЗрд░рд╛рд╣рд░реВ рдЧреЛрд▓реА рд╣рд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди (рдЬрдмрд╕рдореНрдо рдпрд╕реНрддреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓рдХреНрд╖реНрдп, рдЕрд╡рд╢реНрдп рдкрдирд┐, рдпрд╕рдХреЛ рд▓рд╛рдпрдХ рдЫреИрди): рд╕рд┐рдореБрд▓рд┐рдВрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рдПрдХ рдкрд░рд┐рд╖реНрдХреГрдд рдЙрдкрдХрд░рдгрдХреЛ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд▓рд╛рдЧреНрдпреМрдВред
  • GUI рд░рд╛рдореНрд░реЛ рдЫ, рддрд░ "рд╣реБрдб рдореБрдирд┐" рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдЫ рднрдиреЗрд░ рдмреБрдЭреНрдиреБ рд░рд╛рдореНрд░реЛ рдЫред

рд░ рдЕрдм, рд╡рд┐рджреНрдпрд╛рд░реНрдереА рд╣реБрдирдмрд╛рдЯ рдЯрд╛рдврд╛ рд╣реБрдБрджрд╛, рдо рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдмрд┐рд░рд╛рджрд░реАрд▓рд╛рдИ рдирд┐рдореНрди рднрдиреНрди рдЪрд╛рд╣рдиреНрдЫреБ:

  • рддреНрдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рдиреБрд╣реЛрд╕реН!

рдХреЛрдб рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдпрджреНрдпрдкрд┐ рдпреЛ рд╕реБрд░реБрдорд╛ рдЦрд░рд╛рдм рдЫред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдХреЛ рд╕рд╛рде, рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐рдХреЛ рд░реВрдкрдорд╛, рд╕рдмреИрднрдиреНрджрд╛ рдХрдард┐рди рднрд╛рдЧ рд╕реБрд░реБрд╡рд╛рдд рд╣реЛред рд░ рдпреЛ рдкрд╣рд┐рд▓реЗ рд╕реБрд░реБ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ: рдпрджрд┐ рддрдкрд╛рдИрдВ рдПрдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╡рд╛ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдврд┐рд▓реЛ рд╡рд╛ рдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпреЛ рд╕реАрдк рдЪрд╛рд╣рд┐рдиреНрдЫред

  • рдорд╛рдЧ!

рд╢рд┐рдХреНрд╖рдХ рд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХрд╣рд░реВрдмрд╛рдЯ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдорд╛рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рдпреЛ рд╕рдореНрднрд╡ рдЫ рднрдиреЗ, рдЕрд╡рд╢реНрдп ...

  • рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН!

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

рд╕рдмреИ рджреЗрд╢рдХрд╛ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд╣рд░реВ, рдПрдХрдЬреБрдЯ рд╣реБрдиреБрд╣реЛрд╕реН!

PS

рд╡рд┐рджреНрдпрд╛рд░реНрдереАрд╣рд░реВрд╕рдБрдЧрдХреЛ рдореЗрд░реЛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдореНрдмрдиреНрдз рд░реЗрдХрд░реНрдб рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдо рджреБрдИ рд░реЗрдХреНрдЯрд░рд╣рд░реВрд╕рдБрдЧ 2017 рдХреЛ рдПрдЙрдЯрд╛ рдпрд╛рджрдЧрд╛рд░ рддрд╕реНрдмрд┐рд░ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрджреИрдЫреБ: Peter Scharff (рджрд╛рдпрд╛рдБ) рд░ Albert Kharisovich Gilmutdinov (рдмрд╛рдпрд╛рдБ)ред

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

рдХрдореНрддрд┐рдорд╛ рдпреА рдкреЛрд╢рд╛рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рдЧрд░реНрди рд▓рд╛рдпрдХ рдерд┐рдпреЛ! (рдЬрд┐рд╕реНрдХреЗрдХрд╛реЗ)

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди