Calcule la distribution d'énergie du signal dans le domaine temps-fréquence, en utilisant l'algorithme de la transformée de Fourier de courte durée (STFT).


icon

Entrées/Sorties

  • ccclst.png config temps-fréq

    config temps-fréq spécifie la configuration des intervalles de fréquence. config temps-fréq détermine aussi le nombre de colonnes de Spectrogramme STFT {X}{X}.

  • cbool.png puissances de 2 pour interv. de fréq ?

    puissances de 2 pour interv. de fréq ? spécifie s'il faut contraindre les intervalles de fréquence à une puissance de 2. Si puissances de 2 pour interv. de fréq ? est VRAI et que intervalles de fréquence n'est pas une puissance de 2, ce VI définit intervalles de fréquence à la puissance de 2 la plus proche. La valeur par défaut est VRAI.

  • cbool.png exclure la fréquence de Nyquist ?

    exclure la fréquence de Nyquist ? spécifie s'il faut exclure l'énergie à la fréquence de Nyquist du Spectrogramme STFT {X}.

    Si intervalles de fréquence est pair et que exclure la fréquence de Nyquist ? est VRAI, Spectrogramme STFT {X} n'inclut pas l'énergie à la fréquence de Nyquist. Si intervalles de fréquence est impair, LabVIEW ignore exclure la fréquence de Nyquist ?. La valeur par défaut est VRAI.

  • c1ddbl.png X

    X spécifie le signal du domaine temporel en entrée.

  • cnclst.png temps-fréq d'échantillonnage

    temps-fréq d'échantillonnage spécifie la densité à utiliser pour échantillonner le signal dans le domaine temps-fréquence et définit la taille du tableau temps-fréquence 2D résultant.

  • ci32.png incréments de temps

    incréments de temps est le nombre d'échantillons dont la fenêtre glissante doit être décalée.

    Si incréments de temps est inférieur ou égal à zéro, ce VI ajuste automatiquement incréments de temps pour qu'il n'y ait pas plus de 512 lignes dans Spectrogramme STFT {X}. La valeur par défaut est –1.

  • ci32.png intervalles de fréquence

    intervalles de fréquence spécifie la taille de FFT de la STFT. Si intervalles de fréquence est inférieur ou égal à 0, ce VI définit intervalles de fréquence à 512. Si intervalles de fréquence est 1, ce VI contraint intervalles de fréquence à 2. La valeur par défaut est 512.

  • cnclst.png fenêtre

    fenêtre spécifie des informations sur la fenêtre à utiliser pour calculer la STFT.

  • cu32.png type

    type spécifie le type de fenêtre à utiliser pour calculer la STFT. La valeur par défaut est Hanning.

    0Rectangle
    1Hanning
    2Hamming
    3Blackman-Harris
    4Blackman exacte
    5Blackman
    6Profil plat
    7B-Harris 4 termes
    8B-Harris 7 termes
    9Lobe latéral bas
    11Blackman Nuttall
    30Triangulaire
    31Bartlett-Hanning
    32Bohman
    33Parzen
    34Welch
    60Kaiser
    61Dolph-Tchebychev
    62Gaussienne
  • ci32.png longueur

    longueur spécifie la longueur de la fenêtre en échantillons. Si longueur est inférieur ou égal à 0, ce VI définit longueur à 64. La valeur par défaut est 64.

  • cdbl.png paramètre de la fenêtre

    paramètre de la fenêtre est le paramètre bêta d'une fenêtre de Kaiser, le rapport des lobes (lobe principal/lobe latéral), s, d'une fenêtre de Dolph-Tchebychev, et l'écart-type d'une fenêtre gaussienne Si la fenêtre type est une autre fenêtre, ce VI ignore cette entrée.

    La valeur par défaut de paramètre de la fenêtre est NaN, qui définit bêta à 0 pour une fenêtre de Kaiser, s à 60 pour une fenêtre de Dolph-Tchebychev et l'écart-type à pour une fenêtre gaussienne, où L correspond à la longueur de la fenêtre.

  • cbool.png conservation d'énergie ?

    conservation d'énergie ? spécifie s'il faut mettre Spectrogramme STFT {X} à l'échelle pour que l'énergie du domaine temps-fréquence joint soit égale à l'énergie du domaine temporel. La valeur par défaut est VRAI.

  • i2ddbl.png Spectrogramme STFT {X}

    Spectrogramme STFT {X} est un tableau 2D qui décrit la distribution d'énergie du signal temporel dans le domaine temps-fréquence.

  • ii32.png erreur

    erreur renvoie toute erreur ou mise en garde générée par le VI. Vous pouvez câbler erreur au VI Convertir un code d'erreur en cluster d'erreur pour convertir le code d'erreur ou la mise en garde en cluster d'erreur.

  • Pour calculer Spectrogramme STFT {X}, ce VI calcule d'abord la STFT de X. Pour calculer la STFT de X, ce VI utilise une fenêtre glissante pour diviser le signal en plusieurs blocs de données. Puis le VI applique une transformée de Fourier rapide à N points à chaque bloc de données pour obtenir les fréquences contenues dans chaque bloc de données, N étant le nombre d'intervalles de fréquence. La STFT aligne le centre de la première fenêtre glissante avec le premier échantillon du signal X et étend le début du signal en ajoutant des zéros. La fenêtre glissante déplace un nombre d'échantillons égal à incréments de temps vers le bloc de données suivant. Si la fenêtre sort de X, ce VI comble X avec des zéros.

    L'illustration suivante représente la procédure utilisée par ce VI pour calculer la STFT.

    Si puissances de 2 pour interv. de fréq ? est VRAI, et que intervalles de fréquence n'est pas une puissance de 2, alors l'équation suivante est aussi vraie :

    K = 2[log2(intervalles de fréquence)]

    [] étant l'opération la plus proche.

    Sinon, K = intervalles de fréquence.

    Si le résultat de la STFT est la matrice STFT{X}, alors la taille de STFT{X} est (M, K), où ce qui suit est vrai :

    • L est le nombre d'éléments de X,
    • est l'opération arrondie vers le bas.

    Vous pouvez utiliser STFT{X} pour vous rapprocher de l'énergie du domaine temps-fréquence en utilisant l'expression suivante :

    Ce résultat est presque égal à l'énergie du domaine temporel comme le montre l'expression suivante :

    Après avoir calculé la STFT de X, ce VI calcule le spectrogramme STFT de X. Ce VI calcule le spectrogramme STFT comme le carré de l'amplitude des éléments dans STFT{X}. Dans la mesure où la FFT renvoie des résultats symétriques, ce VI calcule le Spectrogramme STFT {X} seulement sur la deuxième moitié de STFT{X}, comme le montre l'équation suivante :

    où ce qui suit est vrai :

    • i = 0, 1, ..., M-1
    • j = 0, 1, ..., N-1
    • est l'opération arrondie vers le haut.

    Si vous spécifiez une petite valeur pour incréments de temps, il se peut que le VI renvoie un spectrogramme volumineux qui requiert un temps de calcul long et davantage de mémoire. National Instruments vous recommande de définir incréments de temps pour que le nombre de lignes du spectrogramme n'excède pas 512. Si vous devez utiliser une petite fréquence d'échantillonnage pour observer plus de détails et que la longueur du signal est grande, divisez le signal en segments plus petits et calculez le spectrogramme pour chaque segment.

    La longueur de la fenêtre affecte la résolution de temps et la résolution de fréquence de la STFT. Une fenêtre étroite donne lieu à une résolution de temps fine mais à une résolution de fréquence grossière car des fenêtres étroites ont une durée courte mais une bande passante large. Une fenêtre large donne lieu à une résolution de fréquence fine mais à une résolution de temps grossière car des fenêtres étroites ont une durée longue mais une bande passante étroite.

    Ce VI renvoie le même résultat que le VI TFA STFT Spectrogram du toolkit NI LabVIEW Advanced Signal Processing si vous définissez puissances de 2 pour interv. de fréq ?, exclure la fréquence de Nyquist ? et conservation d'énergie ? à VRAI.

    Exemples

    Reportez-vous aux exemples de fichiers inclus avec LabVIEW suivants.

    • labview\examples\Signal Processing\Transforms\STFT Spectrogram Demo.vi