Analyse des performances temporelles du code sur Mega/Due
Analyse de la DFT d’un signal sinusoïdal
Analyse de la DFT d’une entrée réelle
Prendre consciente du problème du sur-échantillonnage
Savoir extraire les amplitudes de la DFT
Comprendre la notion de la fréquence
Savoir définir la fréquence d’échantillonnage
Savoir la formule de la transformée de Fourier discrète (DFT)
Comprendre la notion du spectre
Etc.
Voir le tuto pour plus de détails
Lecture des données
Données synthétiques
La première étape de l’analyse spectrale consiste à récolter les données d’un capteur ou ensemble des capteurs. Le choix de la résolution binaire (Nb) du convertisseur A/N ainsi la fréquence maximale de la bande analogique est cruciale. On choisit le (Nb) en fonction du niveau du signal par rapport au bruit et la fréquence d’échantillonnage (Fs) en fonction de la rapidité du phénomène physique. La fréquence Fs permet de limiter la fenêtre d’observation du signal dans le domaine fréquentiel. En effet, on ne peut observer que les fréquences dans la plage [-Fs,2, Fs/2] environ. En pratique, on se limite aux à la bande 0 et Fs/2. Le pas dans le domaine fréquentiel (ou la résolution fréquentielle), elle est définie par le nombre d’échantillons (N). Elle est égale à Fs/N, autrement dit le nombre d’acquisitions (ou la fenêtre temporelle du signal). Ci-dessous l’exemple de synthèse d’un signal sinusoïdal.
Le code ci-dessous permet de lire N échantillons de l’entrée A0. La période d’échantillonnage est défini par la variable Ts_us (nombre de cycles de 1 µs). Elle est ensuite remesurée afin d’obtenir une meilleure précision sur la mesure des harmoniques (voir le tuto pour plus de détails).
La DFT() retourne le spectre d’un signal. Elle prend en entrée trois paramètres :
*data: Tableau contenant les données du signal de taille (N)
Ndata: Nombre des échantillons du tableau (N)
fs: la fréquence d’échardonnage en Hz
Elle retourne trois sorties :
*real: tableau de la partie réelle du spectre de taille N/2
*imag: tableau de la partie réelle du spectre de taille N/2
float: la résolution fréquentielle
Programme complet
#define Sortie 8 // Non utilisée #define N 128 // Données N=2^n, TFD Nf=2^(n-1) #define Ts_us 1000 // Ts=1/Fs: Approchée (voir le programme)
/* * Objectifs: * 1. Savoir implémenter la DFT * 2. Test de la DFT avec un Sinus * 3. Test de la DFT avec ADC (Données réelles) * 4. Analyse de la vitesse Mega/Due */