Quelqu'un peut-il m'expliquer cette banque de filtres polyphasés MDFT?

9

J'ai trouvé un morceau de code très intéressant pour la banque de filtres polyphasés MDFT ici . Malheureusement, il ne semble pas y avoir de document décrivant la théorie. Quelqu'un connaît-il une référence pour le code? Je suis particulièrement intéressé par ces 3 sujets:

  1. Quelles sont les données dans les canaux exactement? Sont-ils censés être réels, imaginaires ou complexes?

  2. Le code ne calcule que la moitié du nombre de bandes. Est-ce dû à l'utilisation de signaux à valeur réelle?

  3. Le résultat de l'étape de synthèse est construit comme une différence canal par canal du résultat des deux bancs de filtres de synthèse. Pourquoi est-ce fait comme ça? Je ne trouve aucun article décrivant cette idée.

Pascal
la source

Réponses:

2
  1. Il est indépendant des entrées, tout fonctionnera comme il le ferait avec tout autre filtre prototype de valeur réelle. J'ai mis en œuvre des banques de filtres polyphasés sur les systèmes radar dans la pratique, où nous fonctionnons sur des données complexes, à la fois compressées par impulsions et non compressées. Les banques de filtres comme celles-ci ont de nombreuses applications en raison de la conception inhérente et de la vitesse théorique.

  2. Les bancs de filtres polyphasés créent généralement une "copie" déphasée de la version originale pour obtenir une meilleure reconstruction. De la simple analyse du code, il semble que c'est ce qu'il fait avec ses vecteurs X1 et X2. Vous remarquerez que si vous parcourez le code et vérifiez le spectre, les sous-bandes n'auront aucun chevauchement de bande passante. C'est encore plus évident si vous regardez les versions décalées de la réponse en fréquence du filtre. Étant donné que la "copie" du signal d'origine a été déphasée, elle comportera également des segments qui ne se chevauchent pas, mais l'original et la copie se combinent pour couvrir entièrement de -pi à pic sur une échelle de fréquence normalisée.

En règle générale, la chaîne de traitement est la suivante: obtenir une entrée, créer une copie, déphaser la copie (tout pour ici sur est fait deux fois, un pour l'original et un pour la copie déphasée; appelons-les supérieur (original) et inférieur ( copie)), appliquez un prototype de filtre polyphasé aux signaux supérieur et inférieur, appliquez un DFT pour faire la magie polyphasée, et maintenant vous êtes tous canalisés. La synthèse est à peu près juste cela à l'envers.

La partie avec laquelle les gens luttent est généralement les filtres polyphasés et l'utilisation des signaux supérieur et inférieur, ce qui semble être le cas pour cette question. La banque de filtres elle-même n'est pas compliquée, mais le calcul derrière la polyphase peut être si vous n'avez pas de fond de traitement de signal à plusieurs taux. Le filtre prototype est généralement conçu pour faire dire 32 sous-bandes, mais comme nous avons des signaux supérieurs et inférieurs qui ont chacun 32 sous-bandes, nous en avons vraiment 64. Je laisserai le calcul derrière pourquoi les filtres polyphasés fonctionnent dans un manuel puisque ce n'était pas dans votre question.

  1. Voir ci-dessus, concerne le déphasage. Faites également quelques lignes et vous verrez une négation. Découvrez ces indices. La soustraction que vous voyez peut ne pas faire exactement ce que vous pensez qu'elle fait. Essayez de parcourir le code et de le vérifier.
matthewjpollard
la source
1
  1. La série temporelle d'entrée qu'il crée est un gazouillis LFM complexe . En général, les données d'entrée peuvent être réelles ou complexes. Si le PFB (banc de filtres polyphasés) est utilisé directement après un ADC, les données peuvent être réelles.
  2. De quelle ligne du code parlez-vous? Je ne le vois pas calculer seulement la moitié du nombre de bandes.
  3. Pas certain.
random_dsp_guy
la source