рд╣рд╛рдп рд╣рдорд░ред рд╕рдВрднрд╡рддрдГ рд╣рд░ рдХреЛрдИ рдЬреЛ рдХрднреА рдХрд┐рд╕реА рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬ рдкрд░ рд░рд┐рд╢реНрддреЗрджрд╛рд░реЛрдВ рдпрд╛ рджреЛрд╕реНрддреЛрдВ рд╕реЗ рдорд┐рд▓рд╛ рд╣реИ рдпрд╛ рдирд┐: рд╢реБрд▓реНрдХ рдлреНрд▓рд╛рдЗрдЯрд░рд╛рдбрд░ 24 рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╡рд┐рдорд╛рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИред
рдкрд╣рд▓реЗ рднрд╛рдЧ рдиреЗ рдРрд╕реА рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдЕрдм рд╣рдо рдФрд░ рдЖрдЧреЗ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рд╡рд┐рдорд╛рди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕реНрдЯреЗрд╢рди рдкрд░ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдФрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдбрд┐рдХреЛрдб рдХрд░реЗрдВред
рдХрд╣рд╛рдиреА
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╡рд┐рдорд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рджреЗрдЦ рд╕рдХреЗрдВред рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдПрдбреАрдПрд╕ - рдмреА (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░ рдирд┐рдЧрд░рд╛рдиреА - рдкреНрд░рд╕рд╛рд░рдг) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдорд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗрдВрджреНрд░ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рджрд┐рд╢рд╛, рдЧрддрд┐, рдКрдВрдЪрд╛рдИ рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ, рдРрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдЖрдЧрдорди рд╕реЗ рдкрд╣рд▓реЗ, рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреЗрд╡рд▓ рд░рдбрд╛рд░ рдкрд░ рдПрдХ рдмрд┐рдВрджреБ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдорд╛рди рдереЗ рддрдм рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ред
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдПрдбреАрдПрд╕-рдмреА рдореЗрдВ рдПрдХ рд╡рд┐рдорд╛рди рдкрд░ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ 1090 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдХрд╛рдлреА рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИ (рдЕрдиреНрдп рдореЛрдб рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрддрдиреЗ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗрд╡рд▓ рдпрд╣рд╛рдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред рдмреЗрд╢рдХ, рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ рдкрд░ рдХрд╣реАрдВ рдПрдХ рд░рд┐рд╕реАрд╡рд░ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рд░рд┐рд╕реАрд╡рд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред
рд╡реИрд╕реЗ, рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рдкрд╣рд▓реА рдкреНрд░рдгрд╛рд▓реА, Airnav Radarbox, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рдереА, 2007 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА, рдФрд░ $ 900 рдХреА рд▓рд╛рдЧрдд, рд▓рдЧрднрдЧ $ 250 рдкреНрд░рддрд┐ рд╡рд░реНрд╖ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд╛рдпрдХ рдереАред

рдЖрдк рдЙрди рдкрд╣рд▓реЗ рд░реВрд╕реА рдорд╛рд▓рд┐рдХреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЛ
рд░реЗрдбрд┐рдпреЛрд╕реИрдирд░ рдлреЛрд░рдо рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рдЬрдм рдЖрд░рдЯреАрдПрд▓-рдПрд╕рдбреАрдЖрд░ рд░рд┐рд╕реАрд╡рд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдП рд╣реИрдВ, рддреЛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ $ 30 рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ ред рд╣рдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗ - рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреВрд░реЗ рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рдХреЗрд╡рд▓ 120 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдЕрд╡рдзрд┐ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЖрд░рд╛рдо рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо 5 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдирдореВрдирд╛ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдПрд╕рдбреАрдЖрд░ рд░рд┐рд╕реАрд╡рд░ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред

рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ 5000,000 рд╕реИрдВрдкрд▓ / рд╕реЗрдХрдВрдб рдХреЗ рд╕реИрдВрдкрд▓ рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд╕рд╛рде WAV рдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ, 500 рдПрдордмреА рдореЗрдВ рдРрд╕реА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ "рд╡реЗрдЯ" рдХреЗ 30 рд╕реЗрдХрдВрдбред рдПрдХ рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╕реБрдирдирд╛, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдмреЗрдХрд╛рд░ рд╣реИ - рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдзреНрд╡рдирд┐ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╕реАрдзреЗ рдбрд┐рдЬреАрдЯрд▓ рд░реЗрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ рд╣реИ - рдпрд╣ рд╣реИ рдХрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбрд┐рдлрд╛рдЗрдВрдб рд░реЗрдбрд┐рдпреЛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓реЗрдВрдЧреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЬреЛ рд▓реЛрдЧ рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡реЗ
рд▓рд┐рдВрдХ рд╕реЗ рдирдореВрдирд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред
from scipy.io import wavfile import matplotlib.pyplot as plt import numpy as np fs, data = wavfile.read("adsb_20190311_191728Z_1090000kHz_RF.wav") data = data.astype(float) I, Q = data[:, 0], data[:, 1] A = np.sqrt(I*I + Q*Q) plt.plot(A) plt.show()
рдкрд░рд┐рдгрд╛рдо: рд╣рдо рд╕реНрдкрд╖реНрдЯ "рдЖрд╡реЗрдЧреЛрдВ" рдХреЛ рд╢реЛрд░ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреЗрдЦрддреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ "рдЖрд╡реЗрдЧ" рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ рдЬрд┐рд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдЧреНрд░рд╛рдлрд╝ рдкрд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдмрдврд╝рд╛рддреЗ рд╣реИрдВред

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

Nibbles рдореЗрдВ рд╕реНрддрд░реЛрдВ рдХреЗ рдЕрдВрддрд░ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ "0" рдФрд░ "1" рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
bits_str = "" for p in range(8): pos = start_data + bit_len*p p1, p2 = A[pos: pos + bit_len/2], A[pos + bit_len/2: pos + bit_len] avg1, avg2 = np.average(p1), np.average(p2) if avg1 < avg2: bits_str += "0" elif avg1 > avg2: bits_str += "1"
рд╕рдВрдХреЗрдд рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕реНрд╡рдпрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдЖрдЗрдП рдЦреЗрддреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
DF (рдбрд╛рдЙрдирд▓рд┐рдВрдХ рдлреЙрд░реНрдореЗрдЯ, 5 рдмрд┐рдЯреНрд╕) - рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

(
рддрд╛рд▓рд┐рдХрд╛ рд╕реНрд░реЛрдд )
рд╣рдо рдХреЗрд╡рд▓ DF17 рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдЗрд╕рдореЗрдВ рд╡рд┐рдорд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЖрдИрд╕реАрдПрдУ (24 рдмрд┐рдЯреНрд╕) рдПрдХ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдп рдЕрджреНрд╡рд┐рддреАрдп рд╡рд┐рдорд╛рди рдХреЛрдб рд╣реИред рдЖрдк
рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЗрд╕рдХреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдорд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЗрдЦрдХ рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб 3c5ee2 рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИ:

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ, рдЖрдИрд╕реАрдПрдУ рдХреЛрдб рд╡рд┐рд╡рд░рдг рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрдврд╝реЗрдВред
рдбреЗрдЯрд╛ (56 рдпрд╛ 112 рдмрд┐рдЯ) - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛ рдЬрд┐рд╕реЗ рд╣рдо рдбрд┐рдХреЛрдб рдХрд░реЗрдВрдЧреЗред рдбреЗрдЯрд╛ рдХреЗ рдкрд╣рд▓реЗ 5 рдмрд┐рдЯреНрд╕
рдкреНрд░рдХрд╛рд░ рдХреЛрдб рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рдЙрдкрдкреНрд░рдХрд╛рд░ (DF рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛) рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдХрд╛рдлреА рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

(
рддрд╛рд▓рд┐рдХрд╛ рд╕реНрд░реЛрдд )
рдЖрдЗрдП рдХреБрдЫ рдирдореВрдирд╛ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред
рд╡рд┐рдорд╛рди рдХреА рдкрд╣рдЪрд╛рдирдмрд╛рдЗрдирд░реА рдЙрджрд╛рд╣рд░рдг:
00100 011 000101 010111 000111 110111 110001 111000
рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб:
+------+------+------+------+------+------+------+------+------+------+ | TC,5 | EC,3 | C1,6 | C2,6 | C3,6 | C4,6 | C5,6 | C6,6 | C7,6 | C8,6 | +------+------+------+------+------+------+------+------+------+------+
TC = 00100b = 4, рдкреНрд░рддреНрдпреЗрдХ C1-C8 рд╡рд░реНрдг рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ:
#ABCDEFGHIJKLMNOPQRSTUVWXYZ ##### _ ##################123456789 #####
рд▓рд╛рдЗрди рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рдорд╛рди рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ: EWG7184
symbols = "#ABCDEFGHIJKLMNOPQRSTUVWXYZ#####_###############0123456789######" code_str = "" for p in range(8): c = int(bits_str[8 + 6*p:8 + 6*(p + 1)], 2) code_str += symbols[c] print("Aircraft Identification:", code_str.replace('#', ''))
рд╡рд╛рдпреБ рдХреА рд╕реНрдерд┐рддрд┐рдпрджрд┐ рдирд╛рдо рд╕рд░рд▓ рд╣реИ, рддреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВред рд╡реЗ 2x, рд╕рдо рдФрд░ рд╡рд┐рд╖рдо рдлреНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдлрд╝реАрд▓реНрдб рдХреЛрдб рдЯреАрд╕реА = 01011 рдмреА = 11ред

рд╕рдо рдФрд░ рд╡рд┐рд╖рдо рдкреИрдХреЗрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:
01011 000 000101110110 00 10111000111001000 10000110101111001 01011 000 000110010000 01 10010011110000110 10000011110001000
рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдПрдХ рдЕрдзрд┐рдХ рдЪрддреБрд░ рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддреА рд╣реИ:

(
рд╕реНрд░реЛрдд )
рдореИрдВ рдЬреАрдЖрдИрдПрд╕ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред рдЬреЛ рдкрддрд╛ рд╣реИ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред
рдКрдВрдЪрд╛рдИ рдХреЛ рдЖрд╕рд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмрд┐рдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ 25 рдпрд╛ 100 рдлреАрдЯ рдХреЗ рдХрдИ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИред
рд╡рд╛рдпреБ рдХрд╛ рд╡реЗрдЧрдкреИрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдЯреАрд╕реА = 19ред рдпрд╣рд╛рдВ рдЬреЛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЧрддрд┐ рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬ рдХреЗ рд╕рдВрд╡реЗрджрдХ (рдПрдпрд░рд╕реНрдкреАрдб) рджреНрд╡рд╛рд░рд╛ рдорд╛рдкреА рдЧрдИ рдЬрдореАрди (рдЧреНрд░рд╛рдЙрдВрдб рд╕реНрдкреАрдб) рдпрд╛ рд╡рд╛рдпреБ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдпрд╛ рддреЛ рд╕рдЯреАрдХ рд╣реЛ рд╕рдХрддреА рд╣реИред рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рднреА рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

(
рд╕реНрд░реЛрдд )
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдбреАрдПрд╕-рдмреА рддрдХрдиреАрдХ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╣рдЬреАрд╡рди рдмрди рдЧрдИ рд╣реИ рдЬрдм рдПрдХ рдорд╛рдирдХ рди рдХреЗрд╡рд▓ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдбрд┐рдЬрд┐рдЯрд▓ рдПрд╕рдбреАрдЖрд░ рд░рд┐рд╕реАрд╡рд░реНрд╕ рдХреА рддрдХрдиреАрдХ рдХреЗ рд╕рд╕реНрддреЗ рд╣реЛрдиреЗ рд╕реЗ рдирд┐рднрд╛рдИ рдЧрдИ рдереА, рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ "рдПрдХ рдкреИрд╕рд╛ рдХреЗ рд▓рд┐рдП" рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬрд╝ рд╕реЗ рдЕрдзрд┐рдХ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдорд╛рдирдХ рдореЗрдВ рд╣реА, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХред рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ
рдЖрдИрд╕реАрдПрдУ рдкреЗрдЬ рдкрд░ рдкреАрдбреАрдПрдл рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП
рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХрдИ рдХрд╛рдо рдЖрдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ, рдмрдиреА рд╣реБрдИ рд╣реИред
рд╡реИрд╕реЗ, рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рдбрд┐рдХреЛрдбрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди
рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред рдФрд░ рдПрд╕рдбреАрдЖрд░ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рдорд╛рд▓рд┐рдХ
рдкреГрд╖реНрда рд╕реЗ рд╕рдорд╛рдкреНрдд рдПрдбреАрдПрд╕-рдмреА рдбрд┐рдХреЛрдбрд░ рдХреЛ рдЗрдХрдЯреНрдард╛ рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ,
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред
рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкрд╛рд░реНрд╕рд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХрдЯ рдХреЗ рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЙрддреНрдкрд╛рджрди рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдКрдкрд░ рджрд░реНрдЬ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд рдХреЛрдб (рдкрд╛рдпрдерди) from __future__ import print_function from scipy.io import wavfile from scipy import signal import matplotlib.pyplot as plt import numpy as np import math import sys def parse_message(data, start, bit_len): max_len = bit_len*128 A = data[start:start + max_len] A = signal.resample(A, 10*max_len) bits = np.zeros(10*max_len) bit_len *= 10 start_data = bit_len*8
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рдереА, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред