Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique ...

14
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)

description

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). SignalSpectre x(t) X(f) - PowerPoint PPT Presentation

Transcript of Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique ...

Page 1: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

• 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)

Page 2: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

Signal Spectre

x(t) X(f)

Temps Fréquences

Transformée de Fourier (rappels)

Page 3: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

Approximations: -nombre fini d’échantillons : N-fréquence d’échantillonnage : Te-Durée du signal : T0 = (N-1).Te

Calcul approché pour un signaléchantillonné x(nTe)

Page 4: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

La TFD calcule N valeurs espacées de f0=Fe/N

Transformée de Fourier discrète

temps

x(nTe)

Re(X(kf0))

Im(X(kf0))fréquence

fréquence

Fe/N

Fe/N

Fe

Fe

Te NTe

Page 5: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

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

Calcul de la TFD

Page 6: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

Fréquences f = k.Fe/N avec k entier de 0 à N-1

Module

Amplitude des raies spectrales:

Spectre d’amplitude

Page 7: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

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

Transformée de Fourier rapideFFT

Page 8: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

- But:Détecter la présence d’une composante de fréquence F connue dans un signal.

-UtilisationCommuter 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.

Détecteur de tonalité

Page 9: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

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

Virgule flottante dans le DSP 320F28335

Page 10: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

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 - C28x_FPU_Lib_Beta1.lib- des explications: C28x_FPU_Library_Beta1.pdf

Mise en œuvre de la FFTdans le DSP 320F28335 (TP5)

Page 11: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

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;

Déclarations dans le fichier FPU.h

Page 12: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

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 amplitudesfloat32 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 initialisationRFFT_f32(&fft); //Calcul de la FFT (les Re et Im)RFFT_f32_mag(&fft);//Calcul des amplitudes //… Utiliser les résultats…

}

Page 13: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

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)

2 fois la taille de la FFT (ici FFT 128 points)

Nom de la section

Zone mémoire à utiliser

Page 14: Calcul numérique de la transformée de Fourier Applications: Détecteur de tonalité numérique  (TP2)

Performances

RFFT_f32

RFFT_f32_mag