2016-04-20 14 views
-1

FFT需要做些什么才能正常工作?如何读取UDP包并将其转换为矩阵,我可以FFT?

from numpy.fft import fft 
p1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
p1.recvfrom(1040) 
mat = fft(p1) 
+0

您需要先阅读您正在使用的基于UDP协议的文档,以了解数据的格式。 – Krumelur

+0

@Krumelur如果我知道哪个字节传送了什么信息,我怎样才能将它们分开,并将它们排列在矩阵中? – plukic

+0

那么,对这个问题的任何答案都将取决于这一点。数据如何序列化?原始二进制? JSON? protobuf的? XML? – Krumelur

回答

1

您可以使用struct库将字节流解压缩到Python数据结构中。您需要使用与数据中的C数据类型相对应的格式字符来表示传入流。例如,如果你知道你的输入流表示为4个字节的系列的第5个无符号整数,你可以使用

struct.unpack('hhhhh', p1[0]) 

(在recvfrom文件说,它返回(字符串,地址),其中的一个元组字符串是收到的数据)。

这将返回一个由5个整数组成的元组。根据我的理解,元组列表是numpy.fft的有效输入,但是当然,您可以在将它提供给numpy之前对其进行预处理。