Publié initialement à : Dessiner dans le spectre radio – Korben
L’ingénieur logiciel Gokberk Yaltirakli, actuellement basé au Royaume-Uni a eu une idée qui devrait plaire aux radios amateurs qui lisent cet article.
Si vous avez déjà utilisé un logiciel SDR (Software Defined Radio), vous êtes forcement tombé sur la vue spectrogramme qui ressemble à ceci :
Le spectrogramme affiche l’amplitude des fréquences au fil du temps, ce qui a donné l’idée à Gokberk de jouer avec plusieurs fréquences pour dessiner le spectrogramme à partir d’un simple émetteur radio (HackRF) et un peu de code Python.
Voici ce que ça donne dans le logiciel gqrx :
Voici son script pour ceux qui veulent se lancer :
#!/usr/bin/env python3 import struct import os from PIL import Image import sys import math
dsp = os.fdopen(1, « wb »)
def write(i, q):
i = int(i * 127)
q = int(q * 127)
data = struct.pack(« bb », i, q)
dsp.write(data)RATE = 4_000_000 # 4M sample rate
TRANSMIT_TIME = 2 # 2 Seconds
FREQ_DEV = 15_000 # 15 KHzim = Image.open(sys.argv[1])
im.convert(« 1 ») # 1 means 1-bit imaget = 0
for y in range(im.height)[::-1]:
target = t + TRANSMIT_TIME / im.heightline = [im.getpixel((x, y)) for x in range(im.width)] while t < target: i = 0 q = 0 for x, pix in enumerate(line): if not pix: continue offs = x / im.width offs *= FREQ_DEV i += math.cos(2 * math.pi * offs * t) * 0.01 q += math.sin(2 * math.pi * offs * t) * 0.01 write(i, q) t += 1.0 / RATE
Bravo Gokberk !