Exemple de conception de filtre de décimation reconfigurable

Recommandé pour :

  • Périphérique : inconnu

  • Quartus® : v9.1

author-image

Par

Cet exemple démontre comment implémenter un filtre decimation à taux variable à canaux multiples dans le jeu de composants avancés Intel® DSP Builder. Un filtre de décimation reconfigurable est nécessaire pour de nombreux systèmes d’imagerie médicale, notamment l’irm et l’imagerie par résonance magnétique, afin de réduire la fréquence d’échantillonnage des données à l’aide de la technique de réassuration. Les données d’entrée ont un taux d’échantillonnage fixe . cependant, le taux de décmation des entiers doit être modifié en temps réel. De plus, la longueur totale de filtre s’accroît linéairement avec le taux de decimation. Des exigences similaires peuvent s’appliquer dans les applications de communications sans fil et autres systèmes. La structure polyphase est hautement optimisée pour ce type d’applications, car le nombre de multiplicateurs est fixé au moment de la compilation et ne s’accroît pas avec l’augmentation de taux. Les principales caractéristiques de cette conception sont les prises de retard de longueur variable et le stockage efficace à coefficient de filtre.

Fonctionnalités

Cet exemple de conception présente les caractéristiques clés suivantes :

  • Prise en charge des taux de décimation arbitraires des entiers, y compris les cas où le taux d’échantillonnage n’a pas été modifié
  • Prise en charge d’un nombre arbitraire de canaux, de fréquences d’horloge arbitraires et de taux d’échantillons d’entrées, tant que le taux d’horloge est suffisamment élevé pour traiter tous les canaux dans un même chemin de données, ou en d’autres termes, pas de duplication matérielle
  • Prise en charge de la reconfiguration du temps d’exécution des taux de décimation
  • Utilisation de deux bancs de mémoire pour le stockage à coefficient de filtre au lieu de pré-stocker les coefficients de tous les débits de la mémoire. Cette fonctionnalité permet de mettre à jour une banque de mémoire pendant que la conception mesure les coefficients de lecture de l’autre banque.
  • Contrôle en temps réel de la mise à l’échelle du chemin de données FIR (finite- en réinsérabilisation de l’FIR)

Description fonctionnelle

La conception utilise une structure de filtre de décimation polyphase directe et est illustrée dans la Figure 1. Le contrôleur d’adresse génère l’adresse de lecture de la mémoire à coefficient, un sélecteur de banque et l’adresse d’écriture des prises de retard variables. Les coefficients sont stockés dans des blocs de RAM sur puce. Les touches de retard variables sont également implémentées dans des mémoires à deux ports, et son pointeur est contrôlé par le taux de décimation actuel. Un nombre fixe de multiplicateurs est utilisé.

Figure 1. Diagramme de blocs du décimateur de taux variable.

Les blocs de retard de prises variables de cet exemple ont une profondeur de temps d’exécution reconfigurable. Par conséquent, ils sont mis en œuvre comme des mémoires élastiques à l’aide de blocs de RAM sur puce. Chaque prise de retard est allouée en fonction du pire des cas. Le nombre réel de retards par le biais d’un bloc de prises de retard est basé sur le taux de décimation actuel. Un signal de pointeur ou d’adresse unique est utilisé pour les opérations de lecture et d’écriture dans la prise de retard. Vous lirez et écrivez donc au même emplacement de mémoire. La RAM à deux ports est configurée pour lire le contenu de la mémoire ancienne, réalisant ainsi un retard d’un certain nombre de cycles.

Cette conception n’utilise que deux bancs de mémoire, l’un étant mis à jour pendant que l’autre est lu. Une interface de processeur est nécessaire pour réaliser un chargement à coefficient au moment de l’exécution.

Dans le script d’installation de cette conception, nous avons défini la fréquence d’horloge, le taux de décimation, la longueur de filtre, le moteur multiplicateur, etc. La gestion de la largeur du bit est également scriptée pour la paramétration. Les paramètres clés et leurs définitions sont indiqués dans le tableau suivant.

Tous les paramètres peuvent être modifiés pour cibler différents modèles. Les nouveaux codes HDL seront générés en fonction des paramètres mis à jour.

Pour plus d’informations sur la conception des filtres de resamplage dans le jeu DSP Builder Advanced Blockset, reportez-vous à AN 623 : Utilisez le jeu de composants avancés DSP Builder pour implémenter des filtres de resamplage (PDF).

Téléchargez les fichiers utilisés dans cet exemple :

Les fichiers se déroulant dans ce téléchargement zip comprennent :

  • vardownsampler.mdl – Banc de test et fichier de conception de haut niveau pour le filtre de décimation reconfigurable DSP Builder
  • setup_vardownsampler.m – Script MATLAB* pour configurer l’initialisation et les paramètres de vardownsampler.mdl
  • vardownsampler_bare.mdl – Fichier de conception basé sur vardownsampler.mdl. Certains blocs de banc d’essai non synthétables sont supprimés pour la génération du niveau de transfert de registre (RTL)

Pour plus d’informations sur les fonctionnalités connexes utilisées dans cet exemple de conception dans votre projet, consultez :

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.