рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ, рдЬрдм рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдХреА рдХреАрдордд рд▓рдЧрднрдЧ 2000 рдбреЙрд▓рд░ рдереА рдФрд░ рдПрдХ рдорд┐рдирдЯ рдХреА рд╡реЙрдпрд╕ рдХреЙрд▓ 50 рд╕реЗрдВрдЯ рдереА, рдкреЗрдЬрд░реНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдереЗред рдмрд╛рдж рдореЗрдВ рд╕реЗрд▓реБрд▓рд░ рдлреЛрди рд╕рд╕реНрддреЗ рд╣реЛ рдЧрдП, рдХреЙрд▓ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреА рдХреАрдорддреЗрдВ рдХрдо рд╣реЛ рдЧрдИрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдкреЗрдЬрд░реНрд╕ рдЬреНрдпрд╛рджрд╛рддрд░ рдЧрд╛рдпрдм рд╣реЛ рдЧрдПред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдПрдХ рдкреЗрдЬрд░ рдерд╛, рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдореБрдЦреНрдп рдЬрд╛рдирдХрд╛рд░реА
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рднреВрд▓ рдЧрдП рдереЗ рдпрд╛ 2000x рдХреЗ рдмрд╛рдж рдкреИрджрд╛ рд╣реБрдП рдереЗ, рдореИрдВ рдЬрд▓реНрдж рд╣реА рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдКрдВрдЧрд╛ред
рдкреЗрдЬрд┐рдВрдЧ рд╕рдВрдЪрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХреБрдЫ рдлрд╛рдпрджреЗ рд╣реИрдВ, рдЬреЛ рдХрднреА-рдХрднреА рдЕрдм рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:
- рдЗрд╕рдХрд╛ рдПрдХ рддрд░рд╣ рд╕реЗ рд╕рдВрдЪрд╛рд░, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ, рдЗрд╕рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рд╕рд┐рд░реНрдл рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рд▓рдЧрд╛рддрд╛рд░ "рдЬреИрд╕рд╛ рд╣реИ" рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ, рдФрд░ рдкреЗрдЬрд░ рдХреЛ рд╕рдВрджреЗрд╢ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЬрд┐рд╕реЗ рдХреИрдкрдХреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдбрд┐рд╡рд╛рдЗрд╕ рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
- рд░рд┐рд╕реАрд╡рд░ рдмрд╣реБрдд рд╣рд▓реНрдХрд╛ рд╣реИ (рд╢рд╛рдмреНрджрд┐рдХ рдФрд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рджреЛрдиреЛрдВ), рдФрд░ 2 рдПрдП рдмреИрдЯрд░реА рд╕реЗ рдПрдХ рдорд╣реАрдиреЗ рддрдХ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рджреЛ рдмреБрдирд┐рдпрд╛рджреА рдорд╛рдирдХ рд╣реИрдВ -
POCSAG (рдкреЛрд╕реНрдЯ рдСрдлрд┐рд╕ рдХреЛрдб рдорд╛рдирдХреАрдХрд░рдг рд╕рд▓рд╛рд╣рдХрд╛рд░ рд╕рдореВрд╣) рдФрд░
рдлреНрд▓реЗрдХреНрд╕ ред рджреЛрдиреЛрдВ рдорд╛рдирдХ рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рд╣реИрдВ, POCSAG 1982 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ 512, 1200 рдФрд░ 2400 рдмрд┐рдЯ / рдПрд╕ рдХреА рдЧрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИред FSK рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рд╢рд┐рдлреНрдЯ рдХреАрдЗрдВрдЧ) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ 4.5KHz рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рд╕реЗрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлреНрд▓реЗрдХреНрд╕ рдереЛрдбрд╝рд╛ рдирдпрд╛ рд╣реИ (90 рд╡реЗрдВ рдореЗрдВ рдореЛрдЯреЛрд░реЛрд▓рд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛), рдпрд╣ 6400 рдмрд┐рдЯ / рдПрд╕ рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдлрдПрд╕рдХреЗ 2 рдФрд░ рдПрдлрдПрд╕рдХреЗ 4 рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИрдВ, рдФрд░ рд▓рдЧрднрдЧ 20 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдкреАрд╕реА-рдбрд┐рдХреЛрдбрд░реНрд╕ рдмрдирд╛рдП рдЧрдП рдереЗ, рдЬреЛ рдХрд┐ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдХреЗ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХреЛрдИ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдЖрдУ рдпрд╣ рджреЗрдЦреЛ, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд▓реЛ рдПрдХ рд▓реИрдкрдЯреЙрдк, rtl-sdr рд░рд┐рд╕реАрд╡рд░ рд▓реЗрдВ, рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рд╢рд┐рдлрд╝реНрдЯ рдХреАрдЗрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо FM рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред HDSDR рдХреЗ рд╕рд╛рде рд╣рдо WAV рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрдд рдХреЛ рдмрдЪрд╛рдПрдВрдЧреЗред
рдЖрдЗрдП рджреЗрдЦреЗрдВ, рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИред рдПрдХ рдЕрдЬрдЧрд░ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб wav-file:
from scipy.io import wavfile import matplotlib.pyplot as plt fs, data = wavfile.read("pocsag.wav") plt.plot(data) plt.show()
рдЖрдЙрдЯрдкреБрдЯ (рдмрд┐рдЯреНрд╕ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП):

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЖрд╕рд╛рди рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ "рдирдЧреНрди рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рде" рд╣рдо рдмрд┐рдЯреНрд╕ рдХреЛ рдкреЗрдВрдЯ рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рднреЗрдж рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ "0" рдХрд╣рд╛рдВ рд╣реИ рдФрд░ "1" рдХрд╣рд╛рдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛрдЧрд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╕рдордпред
рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдореЗрдВ 20 рдирдореВрдиреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдмрд┐рдЯрд░реЗрдЯ wav рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 24000 рдирдореВрдиреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдВрдЬреАрдпрди рдЧрддрд┐ 1200bit / s рд╣реИред рдПрдХ рд╢реВрдиреНрдп рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ - рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрддред рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрд░ рднреА рдЬреЛрдбрд╝реЗрдВ рдХрд┐ рд╕рднреА рдмрд┐рдЯреНрд╕ рдЙрдЪрд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╣реИрдВред
speed = 1200 fs = 24000 cnt = int(fs/speed) start = 0 for p in range(2*cnt): if data[p] < - 50 and data[p+1] > 50: start = p break
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ (рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдореЗрдВ рдереЛрдбрд╝реА рднрд┐рдиреНрди рдЖрд╡реГрддреНрддрд┐рдпрд╛рдБ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рд▓рдВрдмреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рдВрднрд╡рддрдГ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЖрд╡реГрддреНрддрд┐ рд╕реБрдзрд╛рд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рдЕрдВрддрд┐рдо рдЪрд░рдг - рд╣рдореЗрдВ рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ wav рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рднреА рдЖрд╕рд╛рди рд╣реИ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдХреА рд▓рдВрдмрд╛рдИ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрджрд┐ рдбреЗрдЯрд╛ рдпреЛрдЧ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рддреЛ рд╣рдо "1" рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЕрдиреНрдпрдерд╛ "0" (рдЕрдВрдд рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП 0 рдФрд░ 1 рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) ред
bits_str = "" for p in range(0, data.size - cnt, cnt): s = 0 for p1 in range(p, p+cnt): s += data[p] bits_str += "1" if s < 0 else "0" print("Bits") print(bits_str)
рдЖрдЙрдЯрдкреБрдЯ - рдЙрдЪрд┐рдд рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо (рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ), рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░рд╛ рд╕рдВрджреЗрд╢ рд╣реЛрддрд╛ рд╣реИред
101010101010101010101010101010101010101010101010101010101010101010101010101
010101010101010101010101010101010101010101010100111110011010010000101001101
100001111010100010011100000110010111011110101000100111000001100101110111101
010001001110000011001011101111010100010011100000110010111011110101000100111
000001100101110111101010001001110000011001011101111010100010011100000110010
011011110101000100111000001100101110111101010001001110000011001011101111010
100010011100000110010111011110101000100111000001100101110111101010001001110
...
111101111
рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рдВрджреЗрд╢ рдбрд┐рдХреЛрдб рдХрд░рдирд╛
рдПрдХ рд╡реЗрд╡-рдлрд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдиреБрдХреНрд░рдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╣рдо рдЗрд╕рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдЯрд╛ рдХреЛ 4 рдмрд╛рдЗрдЯ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред
10101010101010101010101010101010
10101010101010101010101010101010
10101010101010101010101010101010
10101010101010101010101010101010
01111100110100100001010011011000
01111010100010011100000110010111
01111010100010011100000110010111
01111010100010011100000110010111
01111010100010011100000110010111
00001000011011110100010001101000
10000011010000010101010011010100
01111100110100100001010111011000
11110101010001000001000000111000
01111010100010011100000110010111
01111010100010011100000110010111
01111010100010011100000110010111
00100101101001011010010100101111
рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреИрдЯрд░реНрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рд╣рдореЗрдВ рдпрд╣ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред POCSAG рдореИрдиреБрдЕрд▓
рдкреАрдбреАрдПрдл рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз
рд╣реИ , рдЬреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЕрдм рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╣реЗрдбрд░ рдореЗрдВ рдПрдХ рд▓рдВрдмрд╛ рдмреНрд▓реЙрдХ "10101010101" рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд▓реАрдк рдореЛрдб рд╕реЗ рдкреЗрдЬрд░ рдХреЛ "рдЬрд╛рдЧреНрд░рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдореЗрдВ рд╣реА рдмреНрд▓реЙрдХ рдмреИрдЪ -1 рд╢рд╛рдорд┐рд▓ рд╣реИ ... рдмреИрдЪ-рдПрди, рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЕрдиреБрдХреНрд░рдо рдПрдлрдПрд╕рд╕реА рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдлрд┐рд░, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдореИрдиреБрдЕрд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ "0" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХрд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИред рдкрддрд╛ рд╕реНрд╡рдпрдВ (рдХреИрдкрдХреЛрдб) рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдкреЗрдЬрд░ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдкреЗрдЬрд░ рд╕рдВрджреЗрд╢ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдЧрд╛ред рдпрджрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ "1" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд╣реЛрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ 2 рддрд╛рд░ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреА рдЬрд╛рдВрдЪ рди рдХрд░реЗрдВред рд╣рдо рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХреЛрдб рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдЦрд╛рд▓реА рдмреНрд▓реЙрдХ 01111 ... 0111, рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣реА рдорд┐рд▓рддрд╛ рд╣реИ:
01111100110100100001010011011000 - Frame Sync
00001000011011110100010001101000 - Address
10000011010000010101010011010100 - Message
01111100110100100001010111011000 - Frame Sync
11110101010001000001000000111000 - Message
00100101101001011010010100101111 - Address
рд╣рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред
рдореИрдиреБрдЕрд▓ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рд╣реИрдВ -
рдиреНрдпреВрдореЗрд░рд┐рдХ-рдХреЗрд╡рд▓ рдФрд░
рдЕрд▓реНрдлрд╛-рдиреНрдпреВрдореЗрд░рд┐рдХ ред рдиреНрдпреВрдореЗрд░рд┐рдХ-рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ 4 рдмрд┐рдЯ рдмреАрд╕реАрдбреА-рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП 20 рдмрд┐рдЯреНрд╕ рдореЗрдВ 5 рдкреНрд░рддреАрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рд╕реАрдЖрд░рд╕реА рдмрд┐рдЯреНрд╕ рднреА рд╣реИрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдпрджрд┐ рд╕рдВрджреЗрд╢ рдЕрд▓реНрдлрд╛-рдиреНрдпреВрдореЗрд░рд┐рдХ рд╣реИ, рддреЛ 7-рдмрд┐рдЯ рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрджреЗрд╢ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ-рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рддрд╛рд░ рд╕реЗ 10000011010000010101010011010100 рдФрд░ 11110101010001000001000000111000 рд╕реЗ рд╣рдо рдЗрд╕ 4-рдмрд┐рдЯ рдХреНрд░рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
1 0000 0110 1000 0010 10101 0011010100 - 0h 6h 8h 2h рдЖрд╣
1 1110 1010 1000 1000 00100 0000111000 - рдПрд╣ рдЕрд╣
8 рд╣ 8 рд╣ 2
рд╣рдЕрдЧрд▓рд╛ рдХрджрдо, рдореИрдиреБрдЕрд▓ рд╕реЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ:

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ-рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдореЗрдВ рдЕрдВрдХ 0-9, рдЕрдХреНрд╖рд░ U ("рдХреБрд░реВрдк"), рд╕реНрдерд╛рди рдФрд░ рджреЛ рдХреЛрд╖реНрдардХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
def parse_msg(block):
рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ "0682 *) * 882" рдорд┐рд▓рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдпрд╣ рдмрддрд╛рдирд╛ рдХрдард┐рди рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдЕрд▓реНрдлрд╛-рдиреНрдпреВрдореЗрд░рд┐рдХ рдореИрд╕реЗрдЬреЗрд╕
рдЕрдЧрд▓рд╛, рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрджрдо, рдЕрд▓реНрдлрд╛-рдиреНрдпреВрдореЗрд░рд┐рдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдорд╛рдирд╡ рдкрдардиреАрдп рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдлрд┐рд░ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдПрдЪрдбреАрдПрд╕рдбреАрдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдбрд┐рдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд┐рд░реНрдл рдПрдХ рд▓рдВрдмрд╛ рд╕рдВрджреЗрд╢ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдкрд╛рда рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

Wav рд╕реЗ рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдКрдкрд░ рдПрдХ рдкрд╛рдпрдерди рдХреЛрдб рджреЗрдЦреЗрдВ), рд╣рдо рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣рдо рддреБрд░рдВрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдирдЧреНрди рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рде - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрдн рдЕрдиреБрдХреНрд░рдо 01010101010101 рджреЛ рдмрд╛рд░ рджреЛрд╣рд░рд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рд╕рдВрджреЗрд╢ рдХреЗрд╡рд▓ рд▓рдВрдмрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рд╕рдВрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдПрдХ рд╕рд╛рде рд╡рд┐рд▓рдп (рдПрдХ рдорд╛рдирдХ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЗрдирдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, btw)ред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдкрд╛рдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдлрд╝реНрд░реЗрдо рд╕рд┐рдВрдХ рдХреЛрдб (01111100 ...) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж 32-рдмрд┐рдЯ рдмреНрд▓реЙрдХ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдкрддреЗ рдпрд╛ рд╕рдВрджреЗрд╢ рдирд┐рдХрд╛рдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╣рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ-рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддреЗ рдереЗ, рдЕрдм рд╣рдо ASCII- рд╕рдВрджреЗрд╢ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рдПрдХ "рдлрд╝рдВрдХреНрд╢рди рдмрд┐рдЯреНрд╕" рдлрд╝реАрд▓реНрдб (рдмрд┐рдЯреНрд╕ 20-21) рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ - рдпрджрд┐ рджреЛрдиреЛрдВ рдмрд┐рдЯреНрд╕ 00 рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдиреНрдпреВрдореЗрд░рд┐рдХ-рдореИрд╕реЗрдЬ, рдпрджрд┐ рдмрд┐рдЯреНрд╕ 11 рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдореИрд╕реЗрдЬ рд╣реИред
рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд╡рд╣ рд╕рдВрджреЗрд╢ рдХреНрд╖реЗрддреНрд░ 20-рдмрд┐рдЯ рд▓рдВрдмрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рддреНрдордХ-рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╛рдВрдЪ 4-рдмрд┐рдЯ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рд╡рд╣рд╛рдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЖрджрд░реНрд╢ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 7bit ASCII- рд╕рдВрджреЗрд╢ рд╣реИ, рддреЛ рд╣рдо 20 рд╕реЗ 7 рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ-рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд░рд╣рд╛ рдерд╛ (рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдпрд╣ 1982 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛
рдФрд░ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рдирд┐рдХреНрд╕реА-рдЯреНрдпреВрдм рдкреЗрдЬрд░реНрд╕ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдереЗ ), рдФрд░ рдХреЗрд╡рд▓ рдмрд╛рдж рдореЗрдВ ASCII- рд╕рдВрджреЗрд╢ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рдлреНрд░реЗрдорд┐рдВрдЧ рдорд╛рдирдХ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЖрд╕рд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рд╡реЗ рдмрд╕ "рдмрд┐рдЯреНрд╕" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рд╣реИрдВ, рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рд╕реЗ рд╣рдореЗрдВ 20 рдмрд┐рдЯ рд▓реЗрдиреЗ рдФрд░ рдЕрдЧрд▓реЗ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдВрдд рдореЗрдВ рд╣рдо рд╕рдВрджреЗрд╢ рдмреЙрдбреА рдХреЛ рдбреАрдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рд╕рдВрджреЗрд╢ рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рджреЗрдЦреЗрдВ (рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЖрд╕рд╛рди рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝ рд░рд╣реЗ рдереЗ):
0 0001010011100010111111110010010
1 00010100000110110011 11100111001
1 01011010011001110100 01111011100
1 11010001110110100100 11011000100
1 11000001101000110100 10011110111
1 11100000010100011011 11101110000
1 00110010111011001101 10011011010
1 00011001011100010110 10011000010
1 10101100000010010101 10110000101
1 00010110111011001101 00000011011
1 10100101000000101000 11001010100
1 00111101010101101100 11011111010
"0" рдмрд┐рдЯ рдкрд╣рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╣рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрддрд╛ рдлрд╝реАрд▓реНрдб рд╣реИ, рдФрд░ 20-21 рдмрд┐рдЯреНрд╕ рдореЗрдВ "11" рд╣рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд▓реНрдлрд╛-рдиреНрдпреВрдореЗрд░рд┐рдХ рд╣реИред рдлрд┐рд░ рд╣рдо рдмрд╕ рд╣рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ 20 рдмрд┐рдЯ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдорд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рд╣рдорд╛рд░рд╛ рдмрд┐рдЯ рдХреНрд░рдо рд╣реИ:
00010100000110110011010110100110011101001101000111011010010011000001101000
11010011100000010100011011001100101110110011010001100101110001011010101100
000010010101000101101110110011011010010100000010100000111101010101101
POCSAG рдореЗрдВ 7-рдмрд┐рдЯ ASCII рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ 7 char рдмреНрд▓реЙрдХреНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ:
0001010 0000110 1100110 1011010 0110011 1010011 ...
рдЗрд╕реЗ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (ASCII рдЯреЗрдмрд▓ рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рд╣рдореЗрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ ... рдмрд╕ рдХреБрдЫ рдирд╣реАрдВред рдореИрдиреБрдЕрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪрдирд╛, рдФрд░ рдпрд╣рд╛рдБ рдЫреЛрдЯрд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╣реИ "ASCII рд╡рд░реНрдгреЛрдВ рдХреЛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ (MSB рд╕реЗ LSB) рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрд▓рдПрд╕рдмреА рдкрд╣рд▓реЗ рд╕рдВрдЪрд╛рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реИред тАЭ рддреЛ, рдХрдо рдмрд┐рдЯ рдкрд╣рд▓реЗ рд╕рдВрдЪрд╛рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реИ - рд╕рд╣реА рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рднреА рддрд╛рд░реЛрдВ рдХреЛ рдЙрд▓рдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдмрд╛рдК рд╣реИ, рддреЛ рдЖрдЗрдП рдкрд╛рдпрдерди рдХреЛрдб рд▓рд┐рдЦреЗрдВ:
def parse_msg(block): msgs = "" for cw in range(16): cws = block[32 * cw:32 * (cw + 1)]
рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЗрд╕ рдЕрдиреБрдХреНрд░рдо (рдмрд┐рдЯреНрд╕, рдкреНрд░рддреАрдХ рдХреЛрдб рдФрд░ ASCII рдкреНрд░рддреАрдХ) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
0101000 40 ( 0110000 48 0 0110011 51 3 0101101 45 - 1100110 102 f 1100101 101 e 1100010 98 b 0101101 45 - 0110010 50 2 0110000 48 0 0110001 49 1 0111001 57 9 0100000 32 0110001 49 1 0110011 51 3 0111010 58 : 0110011 51 3 0110001 49 1 0111010 58 : 0110100 52 4 0110101 53 5 0100000 32 0101010 42 * 0110100 52 4 0110111 55 7 0110110 54 6 0101001 41 ) 0100000 32 1000001 65 A 1010111 87 W 1011010 90 Z
рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ: "(03-feb-2019 13:31:45 * 476) AWZ"ред рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдХрд╛ рд╕реБрдВрджрд░ рдорд╛рдирд╡ рдкрдардиреАрдп рд╣реИред
рд╡реИрд╕реЗ, рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдХрд┐ 7-рдмрд┐рдЯ рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рдЕрдХреНрд╖рд░реЛрдВ (рдЬрд░реНрдорди, рд╕рд┐рд░рд┐рд▓рд┐рдХ, рдЖрджрд┐) рдХреЗ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ 7 рдмрд┐рдЯреНрд╕ рдореЗрдВ рдареАрдХ рд╕реЗ рдПрдиреНрдХреЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред 7 рдмрд┐рдЯреНрд╕ рдХреНрдпреЛрдВ? рд╕рдВрднрд╡рддрдГ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдиреЗ рддрдп рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ "7 рдмрд┐рдЯреНрд╕ рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ", рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ ...
рдирд┐рд╖реНрдХрд░реНрд╖
POCSAG рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдпрд╣ рджреБрд░реНрд▓рдн рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреЛ рдЕрдм рддрдХ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдЧрдЬ рдХреА рд╢реАрдЯ рдкрд░ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯреАрдИрдЯреАрдЖрд░рдП рдпрд╛ рдЬреАрдПрд╕рдПрдо рдХреЗ рд╕рд╛рде рдпрд╣ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛)ред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, POCSAG рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдпрд╣рд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдЗрддрдирд╛ рд░реЛрдорд╛рдВрдЪрдХ рдирд╣реАрдВ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рдХреЛрдИ рдХреИрдХреЛрдбреЛрдб рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╕реБрдзрд╛рд░ рдХреЛрдб (рдмреАрд╕реАрдПрдЪ рдЪреЗрдХ рдмрд┐рдЯреНрд╕) рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕рдВрджреЗрд╢ рдореЗрдВ 2 рдЧрд▓рдд рдмрд┐рдЯреНрд╕ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдФрд░ POCSAG рдбрд┐рдХреЛрдбрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред
рдЬреЛ рд▓реЛрдЧ rtl-sdr рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдлреНрд░реАрд╡реЗрдпрд░
PDW рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рдСрдбрд┐рдпреЛ рдХреЗрдмрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ HDSDR рд╕реЗ PDW рддрдХ рдзреНрд╡рдирд┐ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

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