2016-04-20 13 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之前對其進行預處理。