Python 如何读取UDP包并将其转换为我可以使用FFT的矩阵?
我需要如何处理Python 如何读取UDP包并将其转换为我可以使用FFT的矩阵?,python,numpy,fft,ethernet,Python,Numpy,Fft,Ethernet,我需要如何处理p1才能使FFT工作 from numpy.fft import fft p1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) p1.recvfrom(1040) mat = fft(p1) 您可以使用该库将字节流解压到Python数据结构中。您需要使用与数据中的C数据类型对应的格式字符来表示传入流。例如,如果您知道输入流是由5个无符号整数组成的一系列,表示为4个字节,则可以使用 struct.unpack('h
p1
才能使FFT工作
from numpy.fft import fft
p1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
p1.recvfrom(1040)
mat = fft(p1)
您可以使用该库将字节流解压到Python数据结构中。您需要使用与数据中的C数据类型对应的格式字符来表示传入流。例如,如果您知道输入流是由5个无符号整数组成的一系列,表示为4个字节,则可以使用
struct.unpack('hhhhh', p1[0])
(文档说明它返回一个元组(string,address),其中string是接收到的数据)
这将返回5个整数的元组。据我所知,元组列表是
numpy.fft
的有效输入,但当然,在将元组馈送给numpy之前,您可以根据需要对元组进行预处理。首先,您需要阅读基于UDP的协议的文档,以了解数据的格式。@Krumelur如果我知道哪个字节携带什么信息,我如何将它们分离,并将它们排列在矩阵中?嗯,这个问题的任何答案都取决于你是否知道这一点。数据是如何序列化的?原始二进制?JSON?Protobuf?XML?@Krumelur在本例中是原始二进制文件。