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