Une voie, un échantillon

Calcule la transformée de Fourier rapide (FFT) du signal en entrée point par point.

1378

Entrées/Sorties

datatype_icon

réinitialisation

Une valeur booléenne spécifiant s'il faut réinitialiser l'état interne du nœud.

Vrai Réinitialise l'état interne du nœud.
Faux Ne réinitialise pas l'état interne du nœud.

Default value: Faux

Comportement avec les entrées et les sorties de handshake

Les entrées et les sorties de handshake se comportent de la façon suivante pendant les cycles où réinitialisation est Vrai :

  • entrée valide est ignorée.
  • prêt pour la sortie est ignoré.
  • sortie valide est Faux.
  • prêt pour l'entrée est Faux, ce qui gère les cas où réinitialisation est maintenu Vrai pendant plus d'un cycle. Ce nœud est prêt pour les entrées une fois la réinitialisation terminée et que réinitialisation renvoie Faux.
datatype_icon

données en entrée

Signal en entrée pour lequel vous voulez calculer la FFT.

Cette entrée accepte les types de données suivants :

  • entier signé 8 bits
  • entier non signé 8 bits
  • entier signé 16 bits
  • entier non signé 16 bits
  • entier signé 32 bits
  • nombre à virgule fixe
  • nombre complexe à virgule fixe

La longueur de mot maximale pour cette entrée est de 32 bits.

datatype_icon

entrée valide

Valeur booléenne qui décrit si le prochain élément de données est arrivé pour être traité. Câblez la sortie sortie valide d'un nœud en amont à cette entrée pour transférer des données du nœud en amont à ce nœud-ci.

Vrai Le prochain élément de données est arrivé pour être traité.
Faux Le prochain élément de données n'est pas arrivé pour être traité.
datatype_icon

prêt pour la sortie

Valeur booléenne qui définit si les nœuds en aval sont prêts à ce que ce nœud-ci renvoie une nouvelle valeur. Utilisez un nœud de rétroaction pour câbler la sortie prêt pour l'entrée d'un nœud en aval à cette entrée du nœud actuel.

Vrai Les nœuds en aval sont prêts à ce que ce nœud-ci renvoie une nouvelle valeur.
Faux Les nœuds en aval ne sont pas prêts à ce que ce nœud-ci renvoie une nouvelle valeur.
Remarque Si cette entrée est Faux pendant un cycle, la sortie sortie valide renvoie Faux pendant ce cycle.

Default value: Vrai

datatype_icon

données en sortie

FFT du signal en entrée.

La longueur de mot maximale du résultat de la DFT est 32 bits.

Personnaliser la longueur de mot de la FFT

En général, la longueur de mot de la FFT est log2 (N)+1 bits de plus que les données en entrée, N étant la taille de la FFT. Vous pouvez personnaliser la longueur de mot de la FFT en cliquant sur le bouton Configurateur de complexes à virgule fixe à côté de la commande Précision dans la section Terminaux de l'onglet Élément.

Diminuer la longueur de mot de la sortie réduit l'utilisation des ressources FPGA mais réduit aussi la précision. NI vous conseille de simuler une configuration donnée pour vérifier que la précision obtenue répond à vos besoins de ressources FPGA et de cadencement.

datatype_icon

Indice des données

Indice de l'intervalle FFT que ce nœud retourne.

Default value: 0

datatype_icon

sortie valide

Valeur booléenne qui indique si ce nœud calcule un résultat qui peut être utilisé par les nœuds en aval.

Câblez cette sortie à l'entrée entrée valide d'un nœud en aval pour transférer les données du nœud au nœud en aval.

Vrai Les nœuds en aval peuvent utiliser le résultat que ce nœud calcule.
Faux Ce nœud renvoie une valeur non définie que les nœuds en aval ne peuvent pas utiliser.
Remarque Ce nœud peut renvoyer des valeurs non définies différentes selon qu'il s'exécute en mode simulation ou sur du matériel.
datatype_icon

prêt pour l'entrée

Valeur booléenne qui détermine si ce nœud est prêt à accepter de nouvelles données en entrée. Utilisez un nœud de rétroaction pour câbler cette sortie à l'entrée prêt pour la sortie d'un nœud en amont.

Vrai Ce nœud est prêt à accepter de nouvelles données en entrée.
Faux Ce nœud n'est pas prêt à accepter de nouvelles données en entrée.
Remarque Si cette sortie renvoie Faux pendant un cycle donné, ce nœud rejette les données qui lui sont envoyées par d'autres nœuds pendant le cycle suivant. Ce nœud rejette les données même si l'entrée entrée valide est Vrai pendant le cycle suivant.

Diagramme de cadencement

Le débit de transfert de ce nœud est d'un cycle par échantillon, ce qui signifie que ce nœud accepte des données à chaque fois qu'il est appelé. Le diagramme suivant montre le cadencement utilisé par ce nœud.


1378

Éviter la perte de données pendant le calcul de la FFT

Ce nœud n'accepte pas et ne renvoie pas de valeurs lors du calcul de la FFT. Pendant ce temps, si le système ou un autre nœud lui envoie des données, il les rejette. Cela peut se produire si ce nœud reçoit des données dans le cadre d'un modèle complexe ou non uniforme.

Pour éviter les pertes de données, créez une FIFO pour conserver les données jusqu'à ce que ce nœud accepte de nouveau des valeurs. Assurez-vous que la FIFO que vous créez est suffisamment grande pour contenir tous les points de données collectés pendant que le nœud calcule la FFT. Pour estimer grossièrement la taille de la FIFO que vous devez créer, divisez la latence de ce nœud par le débit moyen du système. La latence se trouve à la section Performances de l'onglet Elément du panneau de configuration.

Optimisation de la précision, de l'utilisation des ressources ou du cadencement

Vous pouvez configurer ce nœud pour optimiser la précision, minimiser l'utilisation des ressources ou optimiser le cadencement dans la section Optimisation de l'onglet Élément du panneau de configuration.

Dans la section Objectif, vous pouvez configurer ce nœud pour optimiser la précision des données renvoyées ou minimiser l'utilisation des ressources lors de la détermination des longueurs de mots des données renvoyées. Le tableau suivant vous aide à choisir l'option appropriée pour votre cas.

Cas d'usage Option recommandée Comportement du nœud Résultat
Vous voulez optimiser la précision des derniers bits des données en sortie, même si cela augmente l'utilisation des ressources FPGA. Précision Ce nœud étend la longueur de mot des données en entrée à la longueur de mot en sortie en remplissant de zéros. Toutes les opérations de multiplication complexes internes utilisent cette longueur de mot. Comparés à l'option Utilisation des ressources, les multiplieurs complexes conservent plus de bits, et ces log2(N)+1 bits dans les données en sortie sont plus précis.
Vous voulez réduire l'utilisation des ressources FPGA même si les données en sortie seront moins précises. Utilisation des ressources Ce nœud augmente la longueur de mot, étape par étape, de l'entrée à la sortie. Par conséquent, la largeur de bits des multiplieurs complexes augmente également étage par étage. Les largeurs de bits des multiplieurs complexes et des registres internes sont plus petites qu'avec l'option Précision, ce qui réduit l'utilisation des ressources FPGA et peut augmenter la fréquence d'horloge FPGA au moment de la compilation.

Si vous avez configuré l'objectif d'optimisation de ce nœud mais qu'il ne répond toujours pas à vos besoins de précision, de ressources ou de cadencement, vous pouvez ajuster les valeurs de Longueur de mot du twiddle factor et de Nombre d'étages de pipeline du papillon pour améliorer les performances du nœud.