Calcul numérique de la transformée de Fourier Applications:

Slides:



Advertisements
Présentations similaires
Rappels C.
Advertisements

La Cyclostationnarité Aspects théoriques et application au Diagnostic
TRANSFORMEE DE FOURIER DISCRETE
Transformée de Hilbert
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
Comment calculer le spectre d’un signal audio
Cours 5 – Comment bien échantillonner le signal audio
Comment décimer les sons numériques
4. La transformée en z Un formalisme adapté au filtrage et à l’analyse en fréquence des signaux échantillonnés et à l’automatique numérique x(t) signal.
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
Calcul de la composition fréquentielle du signal audio
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
Mesures dans le domaine fréquentiel
Modulation numérique.
la programmation en langage C
C.
Séries de Fourier Tout signal périodique (T) de puissance finie peut être décomposé en une somme de sinus et de cosinus. An=0 1(4/) 1+ 3 (4/3)
Traitement du Signal Hugues BENOIT-CATTIN.
Cours S.S.I., SI1, avril 2007 – Comment utiliser les outils déjà présentés. Page 1 Comment utiliser les outils déjà présentés dans le cours S.S.I. et pourquoi.
Sous-échantillonner le signal audio pour compresser
Modulation et Démodulation des signaux FM
1. Introduction 1.1. Modélisation des signaux
Algorithmique et Programmation
S.S.I.I., , n°7 : Construire et utiliser un banc de filtres Page 1 Construire et utiliser un banc de filtres pour analyser le spectre dun signal.
TRANSMISSION PAR COURANT PORTEUR
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
1. L’ADN et l’information génétique
Cours S.S.I.I., , n°8, Créer des filtres pour compresser Cours S.S.I.I., , n°8, : Créer des filtres pour compresser Page 1 Mise en œuvre.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Calcul et implantation des filtres numériques RIF et RII dans un DSP
Développement dun produit sur carte DSP pour la mesure de bruit et dimpédance sur une ligne à courant porteur Elèves : Hamid MEGHDADI Claire CHAVET-JABOT.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Transformée de Fourier discrète et transformée de Fourier rapide
S.S.I.I., , n°6, Créer des filtres sur mesure pour compresser S.S.I.I., , n°6, : Créer des filtres sur mesure pour compresser 1 Créer un.
1 par Jean-Paul Stromboni, octobre 2008 Un autobilan pour réviser le devoir surveillé n°1 du cours S.S.I.I., par Jean-Paul Stromboni, octobre 2008 Elève.
Un principe de compression d’image
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
S.S.I., ESSI1, le 8 février 2004 Page 1 Numériser le signal audio Séance 2, cours, 1 heure auteur : Jean-Paul Stromboni Idées clefs de la séance De nombreuses.
Modélisation du robot Azimut-3
2. La série de Fourier trigonométrique et la transformée de Fourier
Traitement Numérique du Signal
Transformées de Fourier des signaux continus
Utiliser le spectre et la transformée de Fourier
Théorie de l'Échantillonnage
Introduction.
DU TRAITEMENT DU SIGNAL
TNS et Analyse Spectrale
(Digital Signal Processor)
SoundEngine Un serveur d ’effets sonore en temps réel Juillerat Nicolas.
DU TRAITEMENT DU SIGNAL
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Reconnaissance automatique de la parole
Analyse spectrale Raphaël ARROUAS Etienne OUSS
Modulation Démodulation
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
TNS et Analyse Spectrale
SUJETS SPÉCIAUX EN INFORMATIQUE 1
Progression - Quelques rappels
Description harmonique des signaux périodiques
Exemples algorithmes FFT
Calcul de la composition fréquentielle du signal audio
1 23 mars 2004, Jean-Paul Stromboni Signaux et Systèmes pour l’Informaticien Bilan essais erreurs des six premières séances Module SSI d’ESSI 1– 23 mars.
Introduction du cours à partir d’extraits
I Qu’est ce que le son? Éléments de M.A.O. – support de cours
SSII, séance n°13, bilan du cours 15 décembre 2015 Dernière séance 2015 Résumé des chapitres et notions abordées en 2015.
Echantillonnage sinusoïde 3.16 [mV], 64 [MHz] 1 Zoom : Échantillonnée à fe = 192 [MHz], N = 255 échantillons.
Active Noise Cancellation
Exploiter la fonction fft(.) de Scilab
Transcription de la présentation:

Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique (TP2) Détection DTMF (TP3) Démodulation FSK (TP4) Mise en pratique de la FFT (TP5)

Transformée de Fourier (rappels) Signal Spectre x(t) X(f) Temps Fréquences

Calcul approché pour un signal échantillonné x(nTe) Approximations: nombre fini d’échantillons : N -fréquence d’échantillonnage : Te -Durée du signal : T0 = (N-1).Te

Transformée de Fourier discrète La TFD calcule N valeurs espacées de f0=Fe/N temps x(nTe) Re(X(kf0)) Im(X(kf0)) fréquence Fe/N Fe Te NTe

Calcul de la TFD On calcule séparément la partie réelle et la partie imaginaire

Spectre d’amplitude Fréquences f = k.Fe/N avec k entier de 0 à N-1 Module Amplitude des raies spectrales:

Transformée de Fourier rapide FFT Algorithme de calcul rapide de la TFD N doit être une puissance entière de 2 : N = 2M N = … 16, 32, 64, 128, 256, 512, 1024, 2048…. M = … 4, 5, 6, 7, 8, 9, 10, 11… Ne retourne en général que les N/2 premières valeurs de X(k) lorsque x(n) est une suite de nombre réels. Résolution : f0 = Fe/2M Hz

Détecteur de tonalité - But: Détecter la présence d’une composante de fréquence F connue dans un signal. Utilisation Commuter une relais de communication (1750Hz) Décodeur DTMF, démodulation FSK, Télétypes.. Méthode utilisée Le calcul de la transformée de Fourier discrète pour k = F/f0 permet de déterminer l’amplitude de la composante fréquentielle recherchée.

Virgule flottante dans le DSP Indiquer au compilateur et au linker d’utiliser la virgule flottante(FPU) - Option de compilation: -V28 -- float_support=fpu32 (ou cochez la case fpu32) - Librairie pour l’édition de liens: rts2800_fpu32.lib

Mise en œuvre de la FFT dans le DSP 320F28335 (TP5) Texas Instrument fournit une collection de fonctions optimisées pour le calcul de la FFT en virgule flottante: - C28x_FPU_Lib_Beta1.lib Installation: - Télécharger et installer sprc624 - Répertoire \tidcs\c28\C28x_FPU_Lib\beta1\lib\ Vous y trouverez: - FPU.h - des explications: C28x_FPU_Library_Beta1.pdf

Déclarations dans le fichier FPU.h void RFFT_f32 (RFFT_F32_STRUCT *) void RFFT_f32_mag (RFFT_F32_STRUCT *) typedef struct { float32 *InBuf; float32 *OutBuf; float32 *CosSinBuf; float32 *MagBuf; float32 *PhaseBuf; Uint16 FFTSize; Uint16 FFTStages; } RFFT_F32_STRUCT;

Exemple #include FPU.h #define FFT_SIZE 128 // Nombre de points 32, 64, 128, 256,… #define FFT_STAGES 7 // log2(FFT_SIZE) // !!!!! La section « INBUF » doit être définie et alignée dans le fichier .cmd. #pragma DATA_SECTION(Inbuf, "INBUF"); float32 InBuffer[FFT_SIZE]; // pour stocker les échantillons… float32 OutBuffer[FFT_SIZE]; // pour récupérer les résultats (Re et Im) float32 MagBuffer[FFT_SIZE/2]; // pour récupérer les amplitudes float32 TwiddleBuffer[FFT_SIZE]; //les coefficients sin.. et cos.. RFFT_F32_STRUCT fft; //la structure main() { fft.InBuf = InBuffer; //initialisation fft.OutBuf = OutBuffer; fft.MagBuf = MagBuffer; fft.CosSinBuf = TwiddleBuffer; fft.FFTSize = FFT_SIZE; fft.FFTStages = FFT_STAGES; //……remplir InBuffer[] avec les échantillons (par interruption, DMA,…) RFFT_f32_sincostable(&fft) // fin initialisation RFFT_f32(&fft); //Calcul de la FFT (les Re et Im) RFFT_f32_mag(&fft); //Calcul des amplitudes //… Utiliser les résultats… }

Alignement de la section « INBUF » - Ligne à ajouter au fichier .cmd INBUF ALIGN( 256 ) : { } > RAML6 PAGE 1 - Cette ligne sera utilisée par l’éditeur de liens (linker) Zone mémoire à utiliser 2 fois la taille de la FFT (ici FFT 128 points) Nom de la section

Performances RFFT_f32 RFFT_f32_mag