import numpy as np
import pyhackrf2 as pyhackrf
import threading
bits =[1, 0, 1, 0, 1, 1, 0, 0, 0, 1]
def bit_array_to_number(bits,end,start=0):
if end < 1:
return 0
acc = 1
ret =0
for i in range(start,end):
ret += bits[end-1-i]*acc
acc *= 2
return ret
def fsk_mod(fw):
i = 0
i_p = 0
f = 0
f_p = 0
pc = np.zeros((100000))
i = bit_array_to_number(bits,i*2,i*2)
i_p = bit_array_to_number(bits,i*2,(i-1)*2)
f = fw[i]
f_p = fw[i_p]
if f != f_p:
t = ( i * 100 + 0 - 1 ) / 1e6
pc[i] = (pc[i-1] + 2 * np.pi * (f_p - f) * t) / (2 * np.pi)
else:
pc[i] = pc[i-1]
return pc
fw = [-20e3, -10e3, 10e3, 20e3]
data = np.zeros((100000))
data = fsk_mod(fw)
data = np.array(data).astype(np.int8).tobytes()
class hackrf_threading(threading.Thread):
def __init__(self):
self.hackrf = pyhackrf.HackRF()
self.hackrf.center_freq = 433
FSK (带算法 pyhackrf 发送)
于 2024-01-13 10:09:44 首次发布
本文介绍了如何使用Python库(如numpy和pyhackrf)实现频移键控(FSK)调制,并通过线程处理将数据通过HackRF发送。作者展示了如何创建和运行一个HackRF_threading类,设置频率参数并传输预计算的数据。

2519

被折叠的 条评论
为什么被折叠?



