Le paquetage Vocoder_pkg

Les blocs de traitement du signal que nous allons développer ou utiliser s’appuient sur un ensemble commun de types de données, de fonctions et de constantes déclarées dans le paquetage Vocoder_pkg (fichier Vocoder/Vocoder_pkg.vhd).

Types

Tous les types ci-dessous s’appuient sur le type sfixed présenté dans la page Arithmétique en virgule fixe.

Nom du type Partie entière Partie fractionnaire Utilisation
vocoder_data_t 2 bits 16 bits Échantillon audio en virgule fixe, en entrée ou en sortie d’un bloc de traitement
vocoder_data_vector_t 2 bits 16 bits Tableau de vocoder_data_t
vocoder_coef_t 2 bits 16 bits Coefficient d’un filtre ou valeur de sinus
vocoder_coef_vector_t 2 bits 16 bits Tableau de vocoder_coef_t
biquad_data_t 4 bits 21 bits Résultat intermédiaire de calcul mémorisé dans un filtre

Fonctions

Ces fonctions ont pour but d’améliorer la lisibilité du code lorsque vous devez redimensionner des valeurs pour les mettre au formet vocoder_data_t ou biquad_data_t. Le paramètre a est de type sfixed :

Fonction Utilisation
vocoder_resize(a) Redimensionner a et retourner un vocoder_data_t
biquad_resize(a) Redimensionner a et retourner un biquad_data_t

Constantes

Nom Type Utilisation
CHANNELS Entier Le nombre de bandes de fréquences du vocodeur
SINE_TABLE Tableau de valeurs en virgule fixe (vocoder_coef_vector_t) Table de valeurs de sinus précalculées, pour l’entité Oscillator
SINE_INDEX_MAX Entier L’indice du dernier élément du tableau SINE_TABLE
LOWPASS_* Virgule fixe (vocoder_coef_t) Coefficients des filtres passe-bas
BANDPASS_* Tableau de valeurs en virgule fixe (vocoder_coef_vector_t) Tableaux de coefficients des filtres passe-bande, pour chaque bande de fréquence