āĻšā§āϝāĻžāϞ⧠āĻšāĻžāĻŦāϰāĨ¤
āϏāĻŽā§āĻāĻŦāϤ āĻ
āύā§āĻā§āĻ āϝāĻžāϰāĻž āĻāĻĄāĻŧāĻŋ āĻŦāĻž āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž āϏā§āĻā§āĻļāύ āĻāĻŋāύā§āĻā§āύ āϤāĻžāϰāĻž āĻĒā§āϝāĻžāĻā§āĻāĻŋāĻāϝāĻŧā§ āϰā§āĻĄāĻŋāĻ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āĻāĻĄāĻŧāĻŋ āĻŦāĻž āĻāĻŽāύāĻāĻŋ āĻĒāĻžāϰāĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻāĻĄāĻŧāĻŋāϰ āϞā§āĻā§ āĻĻā§āĻā§āĻā§āύāĨ¤ āĻāĻāĻŋ āĻā§āĻŦ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ, āĻāĻžāϰāĻŖ āĻāĻĒāύāĻžāĻā§ āĻā§āĻŦāϞ āĻāĻĄāĻŧāĻŋāĻāĻŋ āĻā§āĻŦāĻŋāϞ⧠āϰāĻžāĻāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻŋāĻā§āĻā§āώāĻŖ āĻĒāϰ⧠āĻāĻāĻŋ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻ āĻŋāĻ āϏāĻŽāϝāĻŧā§āϰ āϏāĻžāĻĨā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻāϰāĻŦā§āĨ¤

āĻāϏā§āύ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻž āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰā§āύ āĻāĻŦāĻ āĻĒāĻžāĻāĻĨāύ⧠āĻāĻāĻāĻŋ āĻĄāĻŋāĻā§āĻĄāĻžāϰ āϞāĻŋāĻā§āύāĨ¤
āĻŦāĻŋāĻāĻŋāύā§āύ āϏāĻŽāϝāĻŧ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻā§āĻļāύ āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻā§. āĻāĻāϰā§āĻĒā§ āϏāĻŦāĻā§āϝāĻŧā§ āĻāύāĻĒā§āϰāĻŋāϝāĻŧ āĻšāϞ āĻāĻžāϰā§āĻŽāĻžāύ āϏāĻŋāϏā§āĻā§āĻŽ , āĻāĻžāĻĒāĻžāύā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻŦā§āϝāĻŦāϏā§āĻĨāĻž āĻāĻā§ , āĻŽāĻžāϰā§āĻāĻŋāύ āϝā§āĻā§āϤāϰāĻžāώā§āĻā§āϰ⧠āĻāĻāĻāĻŋ āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻā§ , āĻāĻŦāĻ āϤāĻžāĻāĨ¤ āĻĒāϰāĻŦāϰā§āϤā§, āĻāϞā§āĻĒāĻāĻŋ DCF77 āϏāĻŽā§āĻĒāϰā§āĻā§ āĻšāĻŦā§, āĻāĻžāϰāĻŖ āϰāĻžāĻļāĻŋāϝāĻŧāĻžāϰ āĻāĻāϰā§āĻĒā§āϝāĻŧ āĻ
āĻāĻļ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻŦā§āĻļā§ āĻĻā§āĻļāĻā§āϞāĻŋāϰ āĻāĻŋāĻā§ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻ
āĻā§āϝāϰā§āĻĨāύāĻžāϰ āĻāύā§āϝ āϏāĻŦāĻā§āϝāĻŧā§ āĻĒā§āϰāĻžāϏāĻā§āĻāĻŋāĻ āĻāĻŦāĻ āĻ
ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ (āĻĻā§āϰ āĻĒā§āϰāĻžāĻā§āϝā§āϰ āĻŦāĻžāϏāĻŋāύā§āĻĻāĻžāĻĻā§āϰ āĻŦāĻŋāĻĒāϰā§āϤ āĻŽāϤāĻžāĻŽāϤ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āϤāĻŦā§, āϤāĻžāϰāĻž, āĻā§āϰā§, āĻā§āϰāĻšāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§) āĻāĻŦāĻ āĻāĻžāĻĒāĻžāύāĻŋ āϏāĻāĻā§āϤ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ;)
āύā§āĻā§ āϝāĻž āϞā§āĻāĻž āĻāĻā§ āϏāĻŦāĻ āĻšāĻŦā§ DCF77 āϏāĻŽā§āĻĒāϰā§āĻā§āĨ¤
āϏāĻāĻā§āϤ āĻ āĻā§āϝāϰā§āĻĨāύāĻž
DCF77 āĻšāϞ āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻ āϤāϰāĻā§āĻ āϏā§āĻā§āĻļāύ āϝāĻž 77.5 kHz āĻĢā§āϰāĻŋāĻā§āϝāĻŧā§āύā§āϏāĻŋāϤ⧠āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ āĻĒā§āϰāĻļāϏā§āϤāϤāĻž āĻŽāĻĄā§āϝā§āϞā§āĻļāύ⧠āϏāĻāĻā§āϤ āĻĒā§āϰā§āϰāĻŖ āĻāϰā§āĨ¤ 50KW āϏā§āĻā§āĻļāύāĻāĻŋ āĻĢā§āϰāĻžāĻā§āĻāĻĢā§āϰā§āĻ āĻĨā§āĻā§ 25 āĻāĻŋāϞā§āĻŽāĻŋāĻāĻžāϰ āĻĻā§āϰ⧠āĻ
āĻŦāϏā§āĻĨāĻŋāϤ, āĻāĻāĻŋ 1959 āϏāĻžāϞ⧠āĻāĻžāĻ āĻļā§āϰ⧠āĻāϰ⧠āĻāĻŦāĻ 1973 āϏāĻžāϞ⧠āϏāĻ āĻŋāĻ āϏāĻŽāϝāĻŧā§ āϤāĻžāϰāĻŋāĻā§āϰ āϤāĻĨā§āϝ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ 77 KHz āĻĢā§āϰāĻŋāĻā§āϝāĻŧā§āύā§āϏāĻŋāϤ⧠āϤāϰāĻā§āĻāĻĻā§āϰā§āĻā§āϝ āĻā§āĻŦ āĻĻā§āϰā§āĻ, āϤāĻžāĻ āĻ
ā§āϝāĻžāύā§āĻā§āύāĻž āĻā§āώā§āϤā§āϰā§āϰ āĻŽāĻžāϤā§āϰāĻžāĻā§āϞāĻŋāĻ āĻŦā§āĻļ āĻļāĻžāϞā§āύ (āĻāĻāĻāĻŋāĻĒāĻŋāĻĄāĻŋāϝāĻŧāĻž āĻĨā§āĻā§ āĻāĻŦāĻŋ):

āĻāĻ āϧāϰāύā§āϰ āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāύā§āĻā§āύāĻž āĻāĻŦāĻ āĻĒāĻžāĻāϝāĻŧāĻžāϰ āĻāύāĻĒā§āĻ āϏāĻš, āĻ
āĻā§āϝāϰā§āĻĨāύāĻž āĻāϞāĻžāĻāĻžāĻāĻŋ āĻĒā§āϰāĻžāϝāĻŧ āϏāĻŽāĻā§āϰ āĻāĻāϰā§āĻĒ, āĻŦā§āϞāĻžāϰā§āĻļ, āĻāĻāĻā§āϰā§āύ āĻāĻŦāĻ āϰāĻžāĻļāĻŋāϝāĻŧāĻžāϰ āĻ
āĻāĻļ āĻā§āĻĄāĻŧā§āĨ¤

āϝ⧠āĻā§āĻ āĻāĻāĻāĻŋ āϏāĻāĻā§āϤ āϰā§āĻāϰā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ. āĻāĻāĻŋ āĻāϰāϤā§, āĻļā§āϧ⧠āĻ
āύāϞāĻžāĻāύ āϰāĻŋāϏāĻŋāĻāĻžāϰ⧠āϝāĻžāύ , āϏā§āĻāĻžāύ⧠āĻĢā§āϰāĻŋāĻā§āϝāĻŧā§āύā§āϏāĻŋ 76.5KHz āĻāĻŦāĻ USB āĻŽāĻĄā§āϞā§āĻļāύ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύāĨ¤ āĻāĻāĻāĻŋ āĻāĻŋāϤā§āϰ āĻā§āϞāĻž āĻāĻāĻŋāϤ āϝāĻž āĻĻā§āĻāϤ⧠āĻāĻāϰāĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāϝāĻŧ:

āϏā§āĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻĄāĻžāĻāύāϞā§āĻĄ āĻŦā§āϤāĻžāĻŽ āĻāĻŋāĻĒā§āύ āĻāĻŦāĻ āĻāϝāĻŧā§āĻ āĻŽāĻŋāύāĻŋāĻ āĻĻā§āϰā§āĻ āĻāĻāĻāĻŋ āĻāĻŖā§āĻĄ āϰā§āĻāϰā§āĻĄ āĻāϰāĻŋāĨ¤ āĻ
āĻŦāĻļā§āϝāĻ, āĻāĻĒāύāĻžāϰ āϝāĻĻāĻŋ 77.5KHz āĻĢā§āϰāĻŋāĻā§āϝāĻŧā§āύā§āϏāĻŋ āϰā§āĻāϰā§āĻĄ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻāĻāĻāĻŋ "āĻŦāĻžāϏā§āϤāĻŦ" āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻĨāĻžāĻā§ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻ āĻŦāĻļā§āϝāĻ, āĻāύā§āĻāĻžāϰāύā§āĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϰā§āĻĄāĻŋāĻ āϏāĻŽāϝāĻŧ āϏāĻāĻā§āϤ āĻā§āϰāĻšāĻŖ āĻāϰā§, āĻāĻŽāϰāĻž āϏāϤā§āϝāĻŋāĻāĻžāϰā§āϰ āϏāĻ āĻŋāĻ āϏāĻŽāϝāĻŧ āĻĒāĻžāĻŦ āύāĻž - āϏāĻāĻā§āϤāĻāĻŋ āĻŦāĻŋāϞāĻŽā§āĻŦā§āϰ āϏāĻžāĻĨā§ āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻŽāĻžāĻĻā§āϰ āϞāĻā§āώā§āϝ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻāĻā§āϤā§āϰ āĻāĻ āύ āĻŦā§āĻāĻž; āĻāϰ āĻāύā§āϝ, āĻāύā§āĻāĻžāϰāύā§āĻ āϰā§āĻāϰā§āĻĄāĻŋāĻ āϝāĻĨā§āώā§āĻ āĻŦā§āĻļāĻŋāĨ¤ āĻŦāĻžāϏā§āϤāĻŦ āĻā§āĻŦāύā§, āĻ āĻŦāĻļā§āϝāĻ, āĻŦāĻŋāĻļā§āώ āĻĄāĻŋāĻāĻžāĻāϏāĻā§āϞāĻŋ āĻā§āϰāĻšāĻŖ āĻāĻŦāĻ āĻĄāĻŋāĻā§āĻĄāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ; āϏā§āĻā§āϞāĻŋ āύā§āĻā§ āĻāϞā§āĻāύāĻž āĻāϰāĻž āĻšāĻŦā§āĨ¤
āϏā§āϤāϰāĻžāĻ, āĻāĻŽāϰāĻž āϰā§āĻāϰā§āĻĄāĻŋāĻ āĻĒā§āϝāĻŧā§āĻāĻŋ, āĻāϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖ āĻļā§āϰ⧠āĻāϰāĻž āϝāĻžāĻāĨ¤
āϏāĻāĻā§āϤ āĻĄāĻŋāĻā§āĻĄāĻŋāĻ
āĻāϏā§āύ āĻĒāĻžāĻāĻĨāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĢāĻžāĻāϞāĻāĻŋ āϞā§āĻĄ āĻāϰāĻŋ āĻāĻŦāĻ āĻāϰ āĻāĻ āύ āĻĻā§āĻāĻŋ:
from scipy.io import wavfile
from scipy import signal
import matplotlib.pyplot as plt
import numpy as np
sample_rate, data = wavfile.read("dcf_websdr_2019-03-26T20_25_34Z_76.6kHz.wav")
plt.plot(data[:100000])
plt.show()
āĻāĻŽāϰāĻž āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϰāĻļāϏā§āϤāϤāĻž āĻŽāĻĄā§āϝā§āϞā§āĻļāύ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻ:

āĻĄāĻŋāĻā§āĻĄāĻŋāĻ āϏāĻšāĻ āĻāϰāϤā§, āĻšāĻŋāϞāĻŦāĻžāϰā§āĻ āĻā§āϰāĻžāύā§āϏāĻĢāϰā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻāĻā§āϤ āĻāĻžāĻŽ āύā§āĻāϝāĻŧāĻž āϝāĻžāĻ:
analytic_signal = signal.hilbert(data)
A = np.abs(analytic_signal)
plt.plot(A[:100000])
āĻŦāϰā§āϧāĻŋāϤ āĻĢāϞāĻžāĻĢāϞ:

āĻāϏā§āύ āĻāĻāĻāĻŋ āϞā§-āĻĒāĻžāϏ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻļāĻŦā§āĻĻ āύāĻŋāϰā§āĻāĻŽāύāĻā§ āĻŽāϏā§āĻŖ āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻāĻ āϏāĻžāĻĨā§ āĻāĻĄāĻŧ āĻŽāĻžāύ āĻāĻŖāύāĻž āĻāϰāĻŋ, āϝāĻž āĻĒāϰ⧠āĻĒāĻžāϰā§āϏāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻžāϰā§āϝāĻāϰ āĻšāĻŦā§āĨ¤
b, a = signal.butter(2, 20.0/sample_rate)
zi = signal.lfilter_zi(b, a)
A, _ = signal.lfilter(b, a, A, zi=zi*A[0])
avg = (np.amax(A) + np.amin(A))/2
āĻĢāϞāĻžāĻĢāϞ (āĻšāϞā§āĻĻ āϰā§āĻāĻž): āĻāĻāĻāĻŋ āĻĒā§āϰāĻžāϝāĻŧ āĻŦāϰā§āĻāĻžāĻāĻžāϰ āϤāϰāĻā§āĻ āϏāĻāĻā§āϤ āϝāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰāĻž āĻŦā§āĻļ āϏāĻšāĻāĨ¤

āĻĒāĻžāϰāϏāĻŋāĻ
āĻĒā§āϰāĻĨāĻŽā§ āĻāĻĒāύāĻžāĻā§ āĻŦāĻŋāĻ āϏāĻŋāĻā§āϝāĻŧā§āύā§āϏ āĻĒā§āϤ⧠āĻšāĻŦā§āĨ¤ āϏāĻāĻā§āϤ āĻāĻ āύ āύāĻŋāĻā§āĻ āĻā§āĻŦ āϏāĻšāĻ.

āĻĄāĻžāϞ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻŦā§āϝāĻŦāϧāĻžāύ⧠āĻŦāĻŋāĻāĻā§āϤ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻĄāĻžāϞā§āϰ āĻŽāϧā§āϝ⧠āĻĻā§āϰāϤā§āĻŦ 0.1s āĻšāϝāĻŧ (āĻ
āϰā§āĻĨāĻžā§ āύāĻžāĻĄāĻŧāĻŋāϰ āĻĻā§āϰā§āĻā§āϝ āύāĻŋāĻā§āĻ 0.9s), āĻŦāĻŋāĻ āϏāĻŋāĻā§āϝāĻŧā§āύā§āϏ⧠"0" āϝā§āĻ āĻāϰā§āύ; āϝāĻĻāĻŋ āĻĻā§āϰāϤā§āĻŦ 0.2s āĻšāϝāĻŧ (āĻ
āϰā§āĻĨāĻžā§ āĻĻā§āϰā§āĻā§āϝ 0.8s), "1" āϝā§āĻ āĻāϰā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽāĻŋāύāĻŋāĻā§āϰ āĻļā§āώ āĻāĻāĻāĻŋ "āĻĻā§āϰā§āĻ" āĻĒāĻžāϞāϏ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϰā§āĻĻā§āĻļāĻŋāϤ āĻšāϝāĻŧ, 2s āĻĻā§āϰā§āĻ, āĻŦāĻŋāĻ āϏāĻŋāĻā§āϝāĻŧā§āύā§āϏāĻāĻŋ āĻļā§āύā§āϝ⧠āϰāĻŋāϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĢāĻŋāϞāĻŋāĻ āĻāĻŦāĻžāϰ āĻļā§āϰ⧠āĻšāϝāĻŧāĨ¤
āĻāĻĒāϰā§āϰāĻāĻŋ āĻĒāĻžāĻāĻĨāύ⧠āϞā§āĻāĻž āϏāĻšāĻāĨ¤
sig_start, sig_stop = 0, 0
pos = 0
bits_str = ""
while pos < cnt - 4:
if A[pos] < avg and A[pos+1] > avg:
# Signal begin
sig_start = pos
if A[pos] > avg and A[pos+1] < avg:
# Signal end
sig_stop = pos
diff = sig_stop - sig_start
if diff < 0.85*sample_rate:
bits_str += "1"
if diff > 0.85*sample_rate and diff < 1.25*sample_rate:
bits_str += "0"
if diff > 1.5*sample_rate:
print(bits_str)
bits_str = ""
pos += 1
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻāĻŽāϰāĻž āĻŦāĻŋāĻāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āĻā§āϰāĻŽ āĻĒāĻžāĻ, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻĻā§āĻ āϏā§āĻā§āύā§āĻĄā§āϰ āĻāύā§āϝ āĻāĻāĻŋ āĻāĻāϰāĻāĻŽ āĻĻā§āĻāĻžāϝāĻŧ:
0011110110111000001011000001010000100110010101100010011000
0001111100110110001010100001010000100110010101100010011000
āϝāĻžāĻāĻšā§āĻ, āĻāĻāĻŋ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āϝ⧠āϏāĻāĻā§āϤāĻāĻŋāϤ⧠āĻĄā§āĻāĻžāϰ āĻāĻāĻāĻŋ "āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϏā§āϤāϰ" āϰāϝāĻŧā§āĻā§āĨ¤ āĻŦāĻŋāĻ āϏāĻŋāĻā§āϝāĻŧā§āύā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāύāĻā§āĻĄ āĻāϰāĻž āĻšāϝāĻŧ . āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻāĻāĻžāĻŦā§, āĻāĻāĻŋ āĻĻā§āϰā§āĻŦāϞ āϏāĻāĻā§āϤā§āϰ āĻā§āώā§āϤā§āϰā§āĻ āĻāϰāĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻĄāĻŋāĻā§āĻĄāĻŋāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻŦā§āĨ¤
āĻāĻŽāĻžāĻĻā§āϰ āĻļā§āώ āϧāĻžāĻĒ: āĻĒā§āϰāĻā§āϤ āϤāĻĨā§āϝ āĻĒāĻžāĻāϝāĻŧāĻžāĨ¤ āĻŦāĻŋāĻ āĻĒā§āϰāϤāĻŋ āϏā§āĻā§āύā§āĻĄā§ āĻāĻāĻŦāĻžāϰ āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻŽā§āĻ 59 āĻŦāĻŋāĻ āϰāϝāĻŧā§āĻā§, āϝāĻžāϰ āĻŽāϧā§āϝ⧠āĻĒā§āϰāĻā§āϰ āϤāĻĨā§āϝ āĻāύāĻā§āĻĄ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§:

āĻŦāĻŋāĻ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āĻšāϝāĻŧ , āĻāĻŦāĻ āϤāĻžāϰāĻž āĻŦā§āĻļ āĻā§āϤā§āĻšāϞā§. āĻĒā§āϰāĻĨāĻŽ 15 āĻŦāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ āύāĻž, āϝāĻĻāĻŋāĻ āϏāϤāϰā§āĻāϤāĻž āĻŦā§āϝāĻŦāϏā§āĻĨāĻž āĻāĻŦāĻ āύāĻžāĻāϰāĻŋāĻ āĻĒā§āϰāϤāĻŋāϰāĻā§āώāĻžāϰ āĻāύā§āϝ āϤāĻžāĻĻā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻāĻŋāϞāĨ¤ āĻŦāĻŋāĻ A1 āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϝ⧠āĻāĻĄāĻŧāĻŋāϰ āĻāĻžāĻāĻāĻž āĻĒāϰā§āϰ āĻāύā§āĻāĻžāϝāĻŧ āĻĻāĻŋāύā§āϰ āĻāϞ⧠āϏāĻāϰāĻā§āώāĻŖā§āϰ āϏāĻŽāϝāĻŧ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāĻŦā§āĨ¤ āĻŦāĻŋāĻ A2 āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϝ⧠āĻāĻāĻāĻŋ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ , āϝāĻž āĻāĻāύāĻ āĻāĻāύāĻ āĻĒā§āĻĨāĻŋāĻŦā§āϰ āĻā§āϰā§āĻŖāύ āĻ
āύā§āϝāĻžāϝāĻŧā§ āϏāĻŽāϝāĻŧ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤ āĻ
āĻŦāĻļāĻŋāώā§āĻ āĻŦāĻŋāĻ āĻāύā§āĻāĻž, āĻŽāĻŋāύāĻŋāĻ, āϏā§āĻā§āύā§āĻĄ āĻāĻŦāĻ āϤāĻžāϰāĻŋāĻ āĻāύāĻā§āĻĄ āĻāϰā§āĨ¤

āϝāĻžāϰāĻž āύāĻŋāĻā§āϰāĻžāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻžāύ āϤāĻžāĻĻā§āϰ āĻāύā§āϝ āϏā§āĻĒāϝāĻŧāϞāĻžāϰā§āϰ āύāĻŋāĻā§ āĻĄāĻŋāĻā§āĻĄāĻŋāĻ āĻā§āĻĄ āĻĻā§āĻāϝāĻŧāĻž āĻāĻā§āĨ¤
āĻāϤā§āϏ āĻā§āĻĄ
def decode(bits):
if bits[0] != '0' or bits[20] != '1':
return
minutes, hours, day_of_month, weekday, month, year = map(convert_block,
(bits[21:28], bits[29:35], bits[36:42], bits[42:45],
bits[45:50], bits[50:58]))
days = ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
print('{dow}, {dom:02}.{mon:02}.{y}, {h:02}:{m:02}'.format(h=hours, m=minutes, dow=days[weekday],
dom=day_of_month, mon=month, y=year))
def convert_ones(bits):
return sum(2**i for i, bit in enumerate(bits) if bit == '1')
def convert_tens(bits):
return 10*convert_ones(bits)
def right_parity(bits, parity_bit):
num_of_ones = sum(int(bit) for bit in bits)
return num_of_ones % 2 == int(parity_bit)
def convert_block(bits, parity=False):
if parity and not right_parity(bits[:-1], bits[-1]):
return -1
ones = bits[:4]
tens = bits[4:]
return convert_tens(tens) + convert_ones(ones)
āϝāĻāύ āĻāĻŽāϰāĻž āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻāĻŋ āĻāĻžāϞāĻžāĻŦ, āϤāĻāύ āĻāĻŽāϰāĻž āĻāϰ āĻ āύā§āϰā§āĻĒ āĻāĻāĻāĻĒā§āĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦ:
0011110110111000001011000001010000100110010101100010011000
Tuesday, 26.03.19, 21:41
0001111100110110001010100001010000100110010101100010011000
Tuesday, 26.03.19, 21:42
āĻāϏāϞā§, āĻāĻ āϏāĻŦ āĻāĻžāĻĻā§. āĻāĻ āϧāϰāύā§āϰ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϏā§āĻŦāĻŋāϧāĻž āĻšāϞ āϝ⧠āĻĄāĻŋāĻā§āĻĄāĻŋāĻ āĻ āϤā§āϝāύā§āϤ āϏāĻšāĻ āĻāĻŦāĻ āϝ⧠āĻā§āύāĻ, āĻāĻŽāύāĻāĻŋ āϏāĻŦāĻā§āϝāĻŧā§ āϏāĻšāĻ āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰā§āĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŽāϰāĻž āĻā§āĻŦāϞ āĻĄāĻžāϞā§āϰ āĻĻā§āϰā§āĻā§āϝ āĻāĻŖāύāĻž āĻāϰāĻŋ, 60 āĻŦāĻŋāĻ āĻāĻŽāĻž āĻāϰāĻŋ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽāĻŋāύāĻŋāĻā§āϰ āĻļā§āώ⧠āĻāĻŽāϰāĻž āϏāĻ āĻŋāĻ āϏāĻŽāϝāĻŧ āĻĒāĻžāĻāĨ¤ āĻ āύā§āϝāĻžāύā§āϝ āϏāĻŽāϝāĻŧ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻā§āĻļāύ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϤā§āϞāύāĻžāϝāĻŧ (āĻāĻŋāĻĒāĻŋāĻāϏ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻŦāĻž āĻāĻļā§āĻŦāϰ āύāĻŋāώā§āϧ āĻāϰā§āύ, āĻāύā§āĻāĻžāϰāύā§āĻ:), āĻāĻ āϧāϰāύā§āϰ āϰā§āĻĄāĻŋāĻ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻā§āĻļāύā§āϰ āĻāύā§āϝ āĻāĻžāϰā§āϝāϤ āĻā§āύ āĻŦāĻŋāĻĻā§āϝā§ā§ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻž - āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻšā§āĻŽ āĻāϝāĻŧā§āĻĻāĻžāϰ āϏā§āĻā§āĻļāύ 2 AA āĻŦā§āϝāĻžāĻāĻžāϰāĻŋāϤ⧠āĻĒā§āϰāĻžāϝāĻŧ āĻāĻ āĻŦāĻāϰ āϧāϰ⧠āĻāϞā§āĨ¤ āĻ āϤāĻāĻŦ, āĻāĻŽāύāĻāĻŋ āĻāĻŦā§āĻāĻŋ āĻāĻĄāĻŧāĻŋ āϰā§āĻĄāĻŋāĻ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧ, āĻāϞā§āϞā§āĻ āĻāϰāĻžāϰ āĻŽāϤ⧠āύāϝāĻŧ, āĻ āĻŦāĻļā§āϝāĻ, āĻĻā§āϝāĻŧāĻžāϞ āĻāĻĄāĻŧāĻŋ āĻŦāĻž āϰāĻžāϏā§āϤāĻžāϰ āϏā§āĻā§āĻļāύ āĻāĻĄāĻŧāĻŋāĨ¤
DCF āĻāϰ āϏā§āĻŦāĻŋāϧāĻž āĻāĻŦāĻ āϏāϰāϞāϤāĻž DIY āĻāϤā§āϏāĻžāĻšā§āĻĻā§āϰāĻ āĻāĻā§āώā§āĻ āĻāϰā§ā§ˇ āĻŽāĻžāϤā§āϰ 10-20 āĻĄāϞāĻžāϰ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϰā§āĻĄāĻŋāĻŽā§āĻĄ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻāĻŦāĻ TTL āĻāĻāĻāĻĒā§āĻ āϏāĻš āĻāĻāĻāĻŋ āϰā§āĻĄāĻŋāĻŽā§āĻĄ āĻ
ā§āϝāĻžāύā§āĻā§āύāĻž āĻŽāĻĄāĻŋāĻāϞ āĻāĻŋāύāϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻž āĻāĻāĻāĻŋ Arduino āĻŦāĻž āĻ
āύā§āϝ āĻāύā§āĻā§āϰā§āϞāĻžāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤

āĻāϤāĻŋāĻŽāϧā§āϝ⧠Arduino āĻāύā§āϝ āϞāĻŋāĻāĻŋāϤ . āϝāĻžāĻāĻšā§āĻ, āĻāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻžāύāĻž āĻā§āĻā§ āϝ⧠āĻāĻĒāύāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻāύā§āĻā§āϰā§āϞāĻžāϰ⧠āϝāĻžāĻ āĻāϰā§āύ āύāĻž āĻā§āύ, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻāĻĄāĻŧāĻŋ āĻŦāĻž āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž āϏā§āĻā§āĻļāύ āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻāϰāĻŦā§āύāĨ¤ āĻāĻ āϧāϰāύā§āϰ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āϏāĻžāĻĨā§, āϏāĻ āĻŋāĻ āϏāĻŽāϝāĻŧ āĻĒāĻžāĻāϝāĻŧāĻž āϏāϤā§āϝāĻŋāĻ āϏāĻšāĻ, āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž āĻšāϝāĻŧ, āĻ
āĻŦāĻļā§āϝāĻ, āĻāĻĒāύāĻŋ āĻ
āĻā§āϝāϰā§āĻĨāύāĻž āĻāϞāĻžāĻāĻžāϝāĻŧ āĻāĻā§āύāĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻĄāĻŧāĻŋāϤ⧠"āĻĒāĻžāϰāĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻāĻĄāĻŧāĻŋ" āĻļāĻŋāϞāĻžāϞāĻŋāĻĒāĻŋ āĻā§āϞāĻŋāϝāĻŧā§ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻāĻāĻ āϏāĻžāĻĨā§ āϏāĻŦāĻžāĻāĻā§ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝ⧠āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋ āϏāϤā§āϝāĻŋāĻ āĻāĻāĻāĻŋ āĻĒāĻžāϰāĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻāĻĄāĻŧāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āϝāĻžāϰāĻž āĻāĻā§āĻā§āĻ āϤāĻžāϰāĻž āϰā§āĻĄāĻŋāĻ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāύāϏā§āĻāϞ āĻāϰ⧠āϤāĻžāĻĻā§āϰ āĻĒā§āϰāĻžāύ⧠āĻĻāĻžāĻĻāĻŋāϰ āĻāĻĄāĻŧāĻŋ āĻāĻĒāĻā§āϰā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:

āĻāĻĒāύāĻŋ "āϰā§āĻĄāĻŋāĻ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āĻāύā§āĻĻā§āϞāύ" āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦā§āϤ⧠āĻāĻāĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻŦāĻ āϏāĻŦāĻļā§āώā§, āϝāĻžāϰāĻž āĻāϤāĻĻā§āϰ āĻĒāĻĄāĻŧā§āĻā§āύ āϤāĻžāĻĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĻāĻžāϰā§āĻŖ āĻāĻŋāĻĒāϏāĨ¤ āĻāϝāĻŧā§āĻ āĻšāĻžāĻāĻžāϰ āĻāĻŋāϞā§āĻŽāĻŋāĻāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋāĻ āϰā§āĻĄāĻŋāĻ āĻā§āϰāĻžāύā§āϏāĻŽāĻŋāĻāĻžāϰ āύāĻž āĻĨāĻžāĻāϞā§āĻ, āĻāĻĒāύāĻŋ āύāĻŋāĻā§āĻ āĻā§āĻŦ āϏāĻšāĻā§ āĻāĻāĻāĻŋ āϤā§āϰāĻŋ āĻāϰ⧠āύāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻā§āĻāϞ āĻĒā§āϞā§-āϤ⧠"DCF77 Emulator" āύāĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĒ āĻāĻā§ āϝāĻž āĻšā§āĻĄāĻĢā§āύ⧠āĻāĻāĻāĻŋ āϏāĻŋāĻāύā§āϝāĻžāϞ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āĻāϰ āύāĻŋāϰā§āĻŽāĻžāϤāĻžāϰ āĻĻāĻžāĻŦāĻŋ, āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻšā§āĻĄāĻĢā§āύā§āϰ āĻā§āĻŦāϞāĻāĻŋ āĻāĻĄāĻŧāĻŋāϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āĻĒā§āĻāĻāĻŋāϝāĻŧā§ āĻĻā§āύ, āϤāĻŦā§ āĻāĻāĻŋ āϏāĻŋāĻāύā§āϝāĻžāϞāĻāĻŋ āĻā§āϰāĻšāĻŖ āĻāϰāĻŦā§ (āĻāĻŽāĻŋ āĻ āĻŦāĻžāĻ āĻšāĻ āĻā§āĻāĻžāĻŦā§, āĻāĻžāϰāĻŖ āϏāĻžāϧāĻžāϰāĻŖ āĻšā§āĻĄāĻĢā§āύ āϤ⧠ā§ā§ āĻāĻŋāϞā§āĻšāĻžāϰā§āĻā§āϰ āϏāĻŋāĻāύā§āϝāĻžāϞ āϤā§āϰāĻŋ āĻāϰ⧠āύāĻž, āϤāĻŦā§ āϏāĻŽā§āĻāĻŦāϤ āĻāĻāĻŋ āĻšāĻžāϰāĻŽā§āύāĻŋāĻā§āϏā§āϰ āĻāĻžāϰāĻŖā§ āĻšāϝāĻŧ)āĨ¤ āĻāĻŽāĻžāϰ āĻāĻĄāĻŧāĻŋāϤā§... Android āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ ⧝ āĻāĻā§āĻŦāĻžāϰā§āĻ āĻāĻžāĻ āĻāϰā§āύāĻŋâāĻā§āύ⧠āĻļāĻŦā§āĻĻāĻ āĻļā§āύāĻž āϝāĻžāϝāĻŧāύāĻŋ (āĻāĻŋāĻāĻŦāĻž āĻšāϝāĻŧāϤ⧠āĻāĻŽāĻŋāĻ āĻļā§āύāϤ⧠āĻĒāĻžāĻāύāĻŋâāĻāĻžāϰāĻŖ āĻāĻāĻŋ āϤ⧠ā§ā§ āĻāĻŋāϞā§āĻšāĻžāϰā§āĻāĻāĨ¤ :)), āϤāĻŦā§ āĻšāϝāĻŧāϤ⧠āĻ āύā§āϝ āĻāĻžāϰ⧠āĻāĻžāĻā§āϝ āĻāĻžāϞ⧠āĻšāĻŦā§āĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻŋāĻā§ āϞā§āĻ āϤāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻĒā§āϰā§āĻŖāĻžāĻā§āĻ āĻĄāĻŋāϏāĻŋāĻāĻĢ āϏāĻŋāĻāύā§āϝāĻžāϞ āĻā§āύāĻžāϰā§āĻāϰ āϤā§āϰāĻŋ āĻāϰ⧠āύā§āϝāĻŧ, āϝāĻž āĻāϰāĻĄā§āĻāύ⧠āĻŦāĻž āĻāĻāϏāĻĒāĻŋā§Šā§¨ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻšāĻā§āĻ āĻŦāĻžāύāĻžāύ⧠āϝāĻžāϝāĻŧ:

(āϏā§āϤā§āϰ )
āĻāĻĒāϏāĻāĻšāĻžāϰ
DCF āϏāĻŋāϏā§āĻā§āĻŽ āϏāϤā§āϝāĻŋāĻ āĻŦā§āĻļ āϏāĻšāĻ āĻāĻŦāĻ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻšāϤ⧠āĻĒāϰāĻŋāĻŖāϤ. āĻāĻāĻāĻŋ āϏāĻšāĻ āĻāĻŦāĻ āϏāϏā§āϤāĻž āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āϏāĻžāĻšāĻžāϝā§āϝā§, āĻāĻĒāύāĻŋ āϏāϰā§āĻŦāĻĻāĻž āĻāĻŦāĻ āϏāϰā§āĻŦāϤā§āϰ āϏāĻ āĻŋāĻ āϏāĻŽāϝāĻŧ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ, āĻ
āĻŦāĻļā§āϝāĻ āĻ
āĻā§āϝāϰā§āĻĨāύāĻž āĻāϞāĻžāĻāĻžāϝāĻŧāĨ¤ āĻŽāύ⧠āĻšāĻā§āĻā§ āĻŦā§āϝāĻžāĻĒāĻ āĻĄāĻŋāĻāĻŋāĻāĻžāϞāĻžāĻāĻā§āĻļāύ āĻāĻŦāĻ āĻāύā§āĻāĻžāϰāύā§āĻ āĻ
āĻĢ āĻĨāĻŋāĻāϏ āϏāϤā§āϤā§āĻŦā§āĻ, āĻāĻ āĻāĻžāϤā§āϝāĻŧ āϏāĻšāĻ āϏāĻŽāĻžāϧāĻžāύāĻā§āϞāĻŋ āĻĻā§āϰā§āĻ āϏāĻŽāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻžāĻšāĻŋāĻĻāĻž āĻĨāĻžāĻāĻŦā§āĨ¤
āĻāϤā§āϏ: www.habr.com
