MATLAB рдореЗрдВ рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХреЗрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдИ рдЧрдИ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ - рдЯрд╛рдЗрдо рдбреЛрдореЗрди рд╕реЗ рдЖрд╡реГрддреНрддрд┐ рдбреЛрдореЗрди рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдгред MATLAB рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рд╣реИред рдЗрд╕ рдХрд╛рдо рдореЗрдВ, MATLAB рдореЗрдВ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╕рд┐рдЧреНрдирд▓ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЙрди рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рд╕реЗ MATLAB рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рд░реВрдкрд╛рдВрддрд░рдг рддрдХрдиреАрдХ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЯрд╛рд╕реНрдХ рдХреА рд╕реНрдерд┐рддрд┐


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

рдбреЗрдЯрд╛ рдХреА рдЧрдгрдирд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг MATLAB R2015a рд╣реИред
StatEye 3.0 GUI рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕рд╛рдЗрдЯ www.StatEye.org рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдмрдВрдз [1, 2, 3] рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдП рдЧрдП рдереЗред

рдбреЗрдЯрд╛ рджрд░ bps = 10.3125 Gbit / sред рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рджреНрд╡рд┐рддреАрдп-рдХреНрд░рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╕рдордп рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрдЪрд░рдг рдЖрд╡реГрддреНрддрд┐ рдХрд╛ the рд╣реИред рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреЛ рдПрдХ рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЪреИрдирд▓ рдкрд░ рдорд╛рдкрд╛ рдЧрдпрд╛ рдерд╛ редf = 0.006495: 0.0012475: 20 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬрд╝ред рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдирдореВрдиреЗ рдмрд┐рдВрджреБрдУрдВ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛: рдЕрдВрдХ = 2 тАЛтАЛ^ 13ред

рдЪрд┐рддреНрд░ 1 рдЗрд╕ рдкрддреНрд░ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг, рдЕрдиреБрдХреНрд░рдо рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЯрд╛рдЗрдо рдбреЛрдореЗрди рд╕реЗ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдбреЛрдореЗрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдлрд╛рд╕реНрдЯ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо (рдПрдлрдПрдлрдЯреА) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЫрд╡рд┐
рдЪрд┐рддреНрд░ 1. рдбреЗрдЯрд╛ рдЪреИрдирд▓ред рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ iSignal.Tx, рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ iSignal.Filter_out, рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди iSignal.Rxред рдЖрд░реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред

рдЧрдгрдирд╛ рдХреНрд░рдо


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

рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреА рджрд░ рдЙрд╕ рдЖрд╡реГрддреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреЛ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдкрд╛ рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреА рдЕрдзрд┐рдХрддрдо рдЖрд╡реГрддреНрддрд┐ рдЕрдзрд┐рдХрддрдо (channel.f) = 20 GHzред рдЗрд╕ рдЖрд╡реГрддреНрддрд┐ рдкрд░, рдбреЗрдЯрд╛ рдХреЛ 40 Gbit / s (2 * max (channel.f)) рдХреА рдЧрддрд┐ рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдзрд┐рдХрддрдо рдбреЗрдЯрд╛ рдЕрдВрддрд░рдг рджрд░, рдЬреЛ 40 Gbit / s рдХреА рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдкрд░ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЪрд░рдг рджрд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ bps = 10.3125 Gbit / s рдХреА рдПрдХрд╛рдзрд┐рдХ рд╕рдВрдЪрд░рдг рджрд░ fmax = 30.9375 Gbit / s рд╣реИ, рдЧреБрдгрди N = 3 (N = fmax /) bps)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Fmax рдХреЛ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдЧреНрдирд▓ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрд╡реГрддреНрддрд┐ рдбреЛрдореЗрди рдореЗрдВ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж


рд╕рдордп рдбреЛрдореЗрди Ts = 1 / fmax рдореЗрдВ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ (рдбреЗрдЯрд╛ рдмрд┐рдЯ) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рд╡рд┐рд╕рдВрдЧрддрд┐; рдЯреАрдПрд╕ = 3.232e-11 рдПрд╕ред рд╕рд┐рдЧреНрдирд▓ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд, рд╕рдордпрд░реЗрдЦрд╛ рдореЗрдВ 2 ^ 13 рдЕрдВрдХ (рдЕрдВрдХ) рд╣реЛрддреЗ рд╣реИрдВ, рд╕реНрдХреЗрд▓ рдореЗрдВ рдмрд┐рдВрджреБ рд╕рдордп = рдмреАрдкреАрдПрд╕ / рдЯреАрдПрд╕ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рдгреА рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред (1: рдЕрдВрдХ)ред рдмреАрдкреАрдПрд╕ рдХреЗ рд╕рдВрдЪрд░рдг рджрд░ рдкрд░ рдПрдХ рдЕрд╕рддрдд рдПрдХрд▓ рд╕рдВрдХреЗрдд = 10.3125 Gbit / s рдФрд░ рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рдорд╛рддреНрд░рд╛ рдХрд╛ рдард╣рд░рд╛рд╡ Ts = 1 / fmax рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╕рдордп рдХреА 10 рд╕реЗ 11 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рд╕реАрдорд╛ рдореЗрдВ рддреАрди рдмрд┐рдВрджреБ рд╣реЛрддреЗ рд╣реИрдВред рдпреВрдирд┐рдЯ рдЖрдпрд╛рдо рдХрд╛ рдПрдХ рд╕рдВрдХреЗрдд рд╕рдордпрд░реЗрдЦрд╛ рдкрд░ рдХрд╣реАрдВ рдФрд░ рднреА рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреА рд╕рдВрдХреНрд░рдордг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдирд╛рд░реЛрдВ рд╕реЗ рдкреАрдЫреЗ рд╣рдЯрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд MATLAB рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдкрд▓реНрд╕ рд╕рд┐рдЧреНрдирд▓ (рдбреЗрдЯрд╛ рдмрд┐рдЯ) рдЪрд┐рддреНрд░ 2 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

iSignal.Tx(1:size(time,2)) = 0; t0 = max(find(time<=10)); t1 = max(find(time<11)); iSignal.Tx(t0:t1) = 1.0; 

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 2. рдЗрдирдкреБрдЯ рдкрд▓реНрд╕ рд╕рд┐рдЧреНрдирд▓ iSignal.Tx, рдбреЗрдЯрд╛ рдмрд┐рдЯред

рдЖрд╡реГрддреНрддрд┐ рдбреЛрдореЗрди рдореЗрдВ iSignal.Tx рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд FFT рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 iSignal.shiftedPSD = fft(iSignal.Tx); iSignal.PSD = fftshift(iSignal.shiftedPSD); 

рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдлрдВрдХреНрд╢рди рдлрдлреНрдЯ рдкреЙрдЬрд┐рдЯрд┐рд╡ рдФрд░ рдирд┐рдЧреЗрдЯрд┐рд╡ рдлреНрд░рд┐рдХреНрд╡реЗрдВрд╕реА рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕рдордорд┐рдд рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЕрдзрд┐рдХрддрдо рдЖрд╡реГрддреНрддрд┐ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣реЛрддреА рд╣реИ (рдЪрд┐рддреНрд░ 3 рджреЗрдЦреЗрдВ)ред Fftshift рдлрд╝рдВрдХреНрд╢рди рдХреЗрдВрджреНрд░ рдХреЛ рд╕рд┐рдЧреНрдирд▓ рдХреА рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ 4 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рд╕рдВрдХрд▓реНрдк fs = fmax / points рд╣реИ; рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕реАрдорд╛ -fmax / 2 рд╕реЗ fmax / 2-fs рддрдХ рд╣реЛрддреА рд╣реИ рдФрд░ f = -fmax / 2: fs: fmax / 2-fs рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИ;

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 3. рдПрдлрдПрдлрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП iSignal.Tx рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреА рдЖрдпрд╛рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 4. рдЪрд┐рддреНрд░рд╛ 3. 2 ^ 13 рдирдореВрдиреЗ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП iSignal.Tx рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЗ рдЖрдпрд╛рдо рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИред 4097 рдореЗрдВ рдФрд╕рдд рдЧрдгрдирд╛ рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рдИрдВ рдУрд░ (1 рд╕реЗ 4096 рдЕрдВрдХ рддрдХ), рдФрд░ рджрд╛рдИрдВ рдУрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдХреНрд╖реЗрддреНрд░ (4098 рд╕реЗ 8192 рдЕрдВрдХ рддрдХ) рд╕реНрдерд┐рдд рд╣реИред

рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрдо рдкрд╛рд╕ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд╛рд░реНрдп


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреВрд╕рд░реЗ рдХреНрд░рдо рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд░реВрдк рд╣реИ

рдЫрд╡рд┐
рдЬрд╣рд╛рдБ T1 рдФрд░ T2 рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рдордп рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИрдВред рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА 1 / T1 рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИрдВ рдФрд░ 1 / T2 рдЙрд╕ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ: 1 / T1 = 1 / T2 = 0.75 * рдмреАрдкреАрдПрд╕ (рдмреАрдкреАрдПрд╕ = 10.3125 Gbit / s)ред

рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд┐рд▓реНрдЯрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде

 f_nrm =fmax/bps/points.*(-points/2:points/2-1). 

рдСрдкрд░реЗрдЯрд░

 s = f_nrm .* j; 

рд╕рдХрд╛рд░рд╛рддреНрдордХ рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдЖрдпрд╛рдо-рдЪрд░рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреЛ рд╕рд┐рдЧреНрдирд▓ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реИ, рдЪрд┐рддреНрд░ 5 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рдЖрдпрд╛рдо-рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЪрд┐рддреНрд░рд╛ 6 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 5. рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЖрдпрд╛рдо-рдЪрд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 6. рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рдЖрдпрд╛рдо-рдЪрд░рдг рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рдиреАрд▓реА рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрди рдЙрд╕ рдЖрд╡реГрддреНрддрд┐ рдХреЗ 0.75 рдорд╛рди рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдЯрд░ рдЖрд╡реГрддреНрддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдЖрд╡реГрддреНрддрд┐ рдкрд░ (1 / T1 = 1 / T2), рджреВрд╕рд░реЗ рдХреНрд░рдо рдХреЗ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рд╕рдВрдЪрд░рдг рдЧреБрдгрд╛рдВрдХ -6 рдбреЗрд╕реАрдмрд▓ рд╣реИред рд▓рд╛рд▓ рдзрд░рд╛рд╢рд╛рдпреА рд░реЗрдЦрд╛ рдЙрд╕ рдЗрдХрд╛рдИ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЯреНрд░рд╛рдВрд╕рдлрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдорд╛рдк рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЕрдиреБрд╡рд╛рдж


рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреА рдорд╛рдкрд╛ рдЖрдпрд╛рдо-рдЪрд░рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ 12.475 рд╣рд░реНрдЯреНрдЬ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрджрдо рдХреЗ рд╕рд╛рде 20 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬ рддрдХ рдмреИрдВрдб рдореЗрдВ 1599 рдирдореВрдиреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдЖрд╡реГрддреНрддрд┐ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: channel.f = 0.006495: 0.0012475: 20 GHzред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреЛ рдЪрд╛рд░-рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдЖрдпрд╛рдореА рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдорд╛рдк рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреА рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдЧреБрдгрдХ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЖрд╡реГрддреНрддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рд╢реВрдиреНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрд╡реГрддреНрддрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдореЗрдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ, рд╢реВрдиреНрдп рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рд╣реЛрддреЗ рд╣реИрдВред
рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд┐рд╕рдХреА рдЖрд╡реГрддреНрддрд┐ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреА рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрджрдо рдЙрдард╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

1. рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд▓рд╛рдЗрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЖрдпрд╛рдо рдХреА рдЧрдгрдирд╛ рдЗрд╕реЗ рдПрдХреНрд╕рдЯреНрд░рдкрд▓реЗрд╢рди рдХрд░рдХреЗред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдирд┐рдХрдЯрддрдо рдЖрдпрд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рджрд╕ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ, рдПрдХ рд░реИрдЦрд┐рдХ рдмрд╣реБрдкрдж рдХреЗ рдЧреБрдгрд╛рдВрдХ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдпрд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 [a] = polyfit(channel.f(1:10), channel.abs(1:10), 1); 

рдкрд╛рдпрд╛ рдЧрдпрд╛ рджреВрд╕рд░рд╛ рдмрд╣реБрдкрдж рдЧреБрдгрд╛рдВрдХ рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЖрдпрд╛рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 channel.dc = a(2); 

2. рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЪрд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд▓реА рдЧрдИ рд╣реИред

 channel.dcPhase = 0.00; 

3. рдЖрдпрд╛рдо рдЪреИрдирд▓ рдХреЗред рдЪреИрдирд▓ рдФрд░ рдЪрд░рдг рдЪреИрдирд▓ред рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдорд╛рди рдХреЗ рд╕рд╛рде рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо (f = -fmax / 2: fmax / points: fmax / 2-fmax / points) рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдПрдХреНрд╕рдЯреНрд░рдкрд▓реЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реВрдиреНрдп рдФрд░ рдЛрдгрд╛рддреНрдордХ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдХреНрд╖реЗрддреНрд░:

 ichannel.abs = interp1([0 channel.f], [channel.dc channel.abs], abs(f), 'linear', 'extrap'); ichannel.phase = interp1([0 channel.f], [channel.dcPhase unwrap(channel.phase)], abs(f), 'linear', 'extrap'); ichannel.s = ichannel.abs .* exp(+j.*ichannel.phase); ichannel.tf = real(ichannel.s) + j*imag(ichannel.s) .* sign(f); 

рдкреНрд░рд╛рдкреНрдд рдЕрдВрддрд░рдг рд╕рдорд╛рд░реЛрд╣ - рдХрдо рдЖрд╡реГрддреНрддрд┐ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЪреИрдирд▓ рдХреЗ рдЖрдпрд╛рдо-рдЪрд░рдг рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрд┐рддреНрд░рд╛ 7 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреВрд░реНрдг рд╕рд┐рдЧреНрдирд▓ рд░реЗрдВрдЬ рдореЗрдВ рдорд╛рдкреА рдЧрдИ рд╕рдВрдХреЗрдд рд░реЗрдЦрд╛ рдФрд░ рдкрд░рд┐рдХрд▓рд┐рдд рд╣рд╕реНрддрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрдпрд╛рдо-рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЪрд┐рддреНрд░ 8 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪрд░рдг рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЪрд┐рддреНрд░ 9 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 7. рдХрдо рдЖрд╡реГрддреНрддрд┐ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд╛рд░реНрдпред рд▓рд╛рд▓ рдФрд░ рдиреАрд▓реЗ рдбреЙрдЯреНрд╕ рдХреНрд░рдорд╢рдГ рдЕрд╕рддрдд рдЖрдпрд╛рдо рдФрд░ рдЪрд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред рдЖрдпрд╛рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбреЗрд╕реАрдмрд▓, рд░реЗрдбрд┐рдпрди рдореЗрдВ рдЪрд░рдг рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЧреБрд▓рд╛рдмреА рд░реЗрдЦрд╛ рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдХреА рдорд╛рдкрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рд╕рдмрд╕реЗ рдХрдо рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреА рд╣реИред рд╢реВрдиреНрдп рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕рдВрдЪрд░рдг рдЧреБрдгрд╛рдВрдХ 0.992 рд╣реИред

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

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 9. рдорд╛рдкрд╛ рдбреЗрдЯрд╛ рд▓рд╛рдЗрди рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреА рдЖрдпрд╛рдо-рдЪрд░рдг рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред

рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЧрдгрдирд╛


рдЖрд╡реГрддреНрддрд┐ рдбреЛрдореЗрди рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрддреНрдкрд╛рдж рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд┐рдЧреНрдирд▓ рдлрд┐рд▓реНрдЯрд░ рдФрд░ рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред
рдЙрд▓рдЯрд╛ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ ifft рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдбреЛрдореЗрди рд╕реЗ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЯрд╛рдЗрдо рдбреЛрдореЗрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

ISignal.Filter_out рдЯрд╛рдЗрдо рдбреЛрдореЗрди рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ

 TransFunction.PSD = iSignal.PSD .* Filter.PSD_Tx; TransFunction.shiftedPSD = ifftshift(TransFunction.PSD); iSignal.Filter_out = real(ifft(TransFunction.shiftedPSD)); 

ISignal.Rx рд▓рд╛рдЗрди рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдФрд░ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдлрдВрдХреНрд╢рдВрд╕ рдХреЗ рдкреНрд░реЛрдбрдХреНрдЯ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлреНрд░рд┐рдХреНрд╡реЗрдВрд╕реА рдбреЛрдореЗрди рд╕реЗ рдЯрд╛рдЗрдо рдбреЛрдореЗрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд╕рд╛рде рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрдиред

 TransFunction.PSD = TransFunction.PSD .* ichannel.tf; TransFunction.shiftedPSD = ifftshift(TransFunction.PSD); iSignal.Rx = real(ifft(TransFunction.shiftedPSD)); 

рдЗрдирдкреБрдЯ рдЖрджрд░реНрд╢ рдирд╛рдбрд╝реА рдХреЛ рдлрд┐рд▓реНрдЯрд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЪреИрдирд▓ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрд┐рддреНрд░ 10 рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИред

рдЫрд╡рд┐
рдЪрд┐рддреНрд░ 10. рдлрд╝рд┐рд▓реНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ (рд▓рд╛рд▓ рдЧреНрд░рд╛рдлрд╝) рдФрд░ рдбреЗрдЯрд╛ рд▓рд╛рдЗрди рдЖрдЙрдЯрдкреБрдЯ (рд╣рд░рд╛ рдЧреНрд░рд╛рдлрд╝)ред рдлрд╝рд┐рд▓реНрдЯрд░ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ - рдПрдХ рдПрдХрд▓ рдкрд▓реНрд╕ рдЪрд┐рддреНрд░ 2 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрди рдЗрдирдкреБрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рд╣реИред

рдЖрд╡реЗрджрдиред рдкреНрд░рдпреБрдХреНрдд рдПрдо-рдХреЛрдб MATLAB


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 clear all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Ini data %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bps = 1.03125e+10; FilterParam = [0.75 0.75]; points = 2^13; load('channel'); N = floor(max(channel.f)*2/bps); fmax = N*bps; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Signal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % normalise all the scales for the bit rate time = bps/fmax .* (1:points); iSignal.Tx(1:size(time,2)) = 0; t0 = max(find(time<=10)); t1 = max(find(time<11)); iSignal.Tx(t0:t1) = 1.0; figure plot(time(1:t1+10), iSignal.Tx(1:t1+10),'b'); hold on plot(time(1:t1+10), iSignal.Tx(1:t1+10),'xb'); grid on xlabel('Normalised Time, tick Ts = 1/fmax'); ylabel('Normalised Amplitude'); title(['Pulse, data bit']); iSignal.shiftedPSD = fft(iSignal.Tx); figure plot(abs(iSignal.shiftedPSD),'c'); grid on xlabel('points, num'); ylabel('Amplitude'); title(['abs(fft(iSignal.Tx))']); iSignal.PSD = fftshift(iSignal.shiftedPSD); figure plot(abs(iSignal.PSD),'r'); grid on xlabel('points, num'); ylabel('Amplitude'); title(['abs(fftshift(fft(iSignal.Tx)))']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Filter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% f_nrm =fmax/bps/points.*(-points/2:points/2-1); s = f_nrm .* j; Filter_PSD = 1 ./(1 + s/FilterParam(1)) ./ (1 + s/FilterParam(2)); figure [AX,H1,H2] = plotyy (f_nrm, abs(Filter_PSD), f_nrm, phase(Filter_PSD)); hold(AX(1)); hold(AX(2)); set(H1,'LineWidth',2); grid(AX(2),'on'); xlabel('Normalised Frequency (Hz)'); set(get(AX(1),'Ylabel'),'String','Gain'); set(get(AX(2),'Ylabel'),'String','Phase, rad'); title(['Twopole filter [' sprintf(' %3.2f ', FilterParam) '] normalised to baud rate frequency']); figure plot_handles_Filter = plot(f_nrm(points/2 + 1:points), 20*log10(abs(Filter_PSD(points/2 + 1:points))), 'r', 'linewidth', 2); hold on stem_handles_br = stem(1, 20*log10(abs(Filter_PSD(max(find(f_nrm < 1))))), '-.ro'); hold on stem_handles_c = stem(FilterParam, [20*log10(abs(Filter_PSD(max(find(f_nrm < FilterParam(1)))))) 20*log10(abs(Filter_PSD(max(find(f_nrm < FilterParam(2))))))], '-.bo'); grid legend_handles = [plot_handles_Filter, stem_handles_br(1), stem_handles_c(1)]; legend(legend_handles, 'transfer function', 'filter attenuation at normalised baud rate', 'filter attenuation at normalised cutoff frequency', 3); xlabel('Normalised Frequency (Hz)'); ylabel('Magnitude (dB)'); title(['Twopole filter [' sprintf(' %3.2f ', FilterParam) '] normalised to baud rate frequency']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Channel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % create negative frequencies, convert data to complex value, taking care about negative frequency channel.abs = abs(channel.s); channel.phase = angle(channel.s); %channel.s = channel.abs .* exp(+j.*channel.phase); [a] = polyfit(channel.f(1:10), channel.abs(1:10), 1); channel.dc = a(2); channel.dcPhase = 0.00; fs = fmax/points; % frequency step f = -fmax/2:fs:fmax/2-fs; % frequency matrix % create new data structure with linearly interpolated data ichannel.abs = interp1([0 channel.f], [channel.dc channel.abs], abs(f), 'linear', 'extrap'); ichannel.phase = interp1([0 channel.f], [channel.dcPhase unwrap(channel.phase)], abs(f), 'linear', 'extrap'); % correct for negative frequencies ichannel.s = ichannel.abs .* exp(+j.*ichannel.phase); ichannel.tf = real(ichannel.s) + j*imag(ichannel.s) .* sign(f); figure disp_points = 2*round(channel.f(1)/fs); stem_handles_br = stem(channel.f(1), angle(ichannel.tf(max(find(f < channel.f(1))))), '-.mo'); hold on plot_abs = plot(f(points/2-disp_points:points/2+disp_points), 20*log10(abs(ichannel.tf(points/2-disp_points:points/2+disp_points))), '.r', 'linewidth', 3); hold on plot_phase = plot(f(points/2-disp_points:points/2+disp_points), angle(ichannel.tf(points/2-disp_points:points/2+disp_points)), '.b', 'linewidth', 3); grid legend_handles = [plot_abs, plot_phase, stem_handles_br(1)]; legend(legend_handles, 'absolute value (dB)', 'phase (rad)', 'min data freq', 3); xlabel('Relative Frequency (Hz)'); ylabel('Magnitude'); title(sprintf('dc extrapolation. dc trans function=%4.3f, dc phase=%4.3f rad', abs(ichannel.tf(points/2+1)), angle(ichannel.tf(points/2+1)))); figure plot(channel.f, 20*log10(channel.abs), '.r', 'linewidth', 3); hold on plot(f, 20*log10(ichannel.abs), 'g'); grid on legend('Measured Data', 'Interpolated Data', 3); xlabel('Frequency (Hz)'); ylabel('Magnitude (dB)'); title(['Chnnel interpolated Data : ']); figure plot3(channel.f, real(channel.s), imag(channel.s),'r'); hold on plot3(f, real(ichannel.tf), imag(ichannel.tf),'g'); grid on legend('Measured Data', 'Interpolated Data'); xlabel('Frequency in Hz'); ylabel('Re(fwd transfer)'); zlabel('Im(fwd transfer)'); title(['Chnnel interpolated Data : ']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Response %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % filter Output TransFunction.PSD = iSignal.PSD .* Filter_PSD; TransFunction.shiftedPSD = ifftshift(TransFunction.PSD); iSignal.Filter_out = real(ifft(TransFunction.shiftedPSD)); % pass through channel TransFunction.PSD = TransFunction.PSD .* ichannel.tf; TransFunction.shiftedPSD = ifftshift(TransFunction.PSD); iSignal.Rx = real(ifft(TransFunction.shiftedPSD)); figure plot(time, iSignal.Filter_out,'r'); hold on [max_Tx, time_maxTx] = max(iSignal.Filter_out); [min_Tx, time_minTx] = min(iSignal.Filter_out); [max_Rx, time_maxRx] = max(iSignal.Rx); dtime_p5= round((time_maxRx - time_maxTx)*time(1) -1); plot(time - dtime_p5, iSignal.Rx,'g'); hold on plot(time, iSignal.Filter_out,'rx'); axis([(time_maxTx*time(1) - 3) (time_maxTx*time(1) + 5) (min_Tx-0.15) (max_Tx+0.1)]) grid on legend('Filter out','Rx', 2); xlabel('Normalised Time'); ylabel('Normalised Amplitude'); title(sprintf('Transmit pulse (Tx) max= %4.3f; Response (Rx) max (h0)= %4.3f', max(iSignal.Filter_out), max(iSignal.Rx))); 


рдЧреНрд░рдВрде рд╕реВрдЪреА


1. IEEE802.3apред 10.3125Gbps NRZ рд╕рд┐рдореБрд▓реЗрд╢рди рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реНрдХреЗрдб рдЪреИрдирд▓ рдШрдЯрдХреЛрдВ рдкрд░ "рд╕реНрдЯреЗрдЯрд╛рдИ" рдФрд░ "рд╕рд┐рдЧреНрдирд▓ рдЯреВ рдЗрдВрдЯрд░рдлреЗрд░реЗрдВрд╕ рдореЙрдбрд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╢реИрдирди рд╕реЙрдпрд░ рдФрд░ рдЪрд╛рд░реНрд▓реНрд╕ рдореВрд░ / рдПрдЧрд┐рд▓реЗрдВрдЯ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬред 24 рдЬрдирд╡рд░реА, 2005 www.ieee802.org/3/ap/public/jan05/sawyer_01_010.bdf

2. рд╕реНрдЯреЗрдЯреА рдХреНрдпрд╛ рд╣реИред IEEE 803.3ap рдЯрд╛рд╕реНрдХ рдлреЛрд░реНрд╕ред 16 рд╕рд┐рддрдВрдмрд░, 2004 www.ieee802.org/3/ap/public/signal_adhoc/ghiasi_01_0904.pdf

3. рд╕реНрдЯреЗрдЯ рдЖрдИ / рдЖрдИрдмреАрдПрдо рд╕рдордЭреМрддрд╛ред рд╕реНрдЯреАрд╡ рдПрдВрдбрд░рд╕рдиред Xilinx, Inc. www.ieee802.org/3/ap/public/nov04/anderson_01_1104.pdf

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


All Articles