Que dois-je faire avec p1
pour que la FFT fonctionne?Comment lire un paquet UDP et le convertir en matrice que je peux FFT?
from numpy.fft import fft
p1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
p1.recvfrom(1040)
mat = fft(p1)
Que dois-je faire avec p1
pour que la FFT fonctionne?Comment lire un paquet UDP et le convertir en matrice que je peux FFT?
from numpy.fft import fft
p1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
p1.recvfrom(1040)
mat = fft(p1)
Vous pouvez décompresser un flux d'octets dans une structure de données Python avec la bibliothèque struct. Vous devrez représenter le flux entrant en utilisant les caractères de format correspondant aux types de données C dans les données. Par exemple, si vous saviez que votre flux d'entrée était une série de 5 ints non signés représentée comme 4 octets, vous pouvez utiliser
struct.unpack('hhhhh', p1[0])
(la documentation recvfrom dit qu'il retourne un tuple de (string, adresse), où chaîne est les données reçues).
Cela retournerait un tuple de 5 nombres entiers. D'après ce que je comprends, une liste de tuples est une entrée valide pour numpy.fft
, mais bien sûr, vous pouvez pré-traiter les tuples comme vous le souhaitez avant de l'alimenter en numpy.
Vous devez commencer par lire la documentation du protocole UDP que vous utilisez pour déterminer comment les données sont formatées. – Krumelur
@Krumelur Si je sais quel octet porte quelle information, comment puis-je les séparer, et les organiser dans la matrice? – plukic
Eh bien, toute réponse à cette question dépendrait de savoir cela. Comment les données sont-elles sérialisées? Binaire brut? JSON? Protobuf? XML? – Krumelur