Étant donné une réponse en fréquence arbitraire, quelles méthodes de traitement du signal pourraient exister qui pourraient deviner, estimer ou déterminer une fonction de transfert (pôle et constellation zéro) qui donne une approximation "raisonnablement bonne" (pour certains critères de qualité d'estimation donnés) à cette réponse en fréquence donnée? Quels moyens existe-t-il pour estimer le nombre de pôles et de zéros requis pour une fonction de transfert donnée plus une tolérance d'erreur d'approximation donnée? Ou comment déterminer si ces contraintes ne peuvent pas être respectées, si possible?
Si la réponse en fréquence donnée a été effectivement produite par une fonction de transfert connue, l'une de ces méthodes convergera-t-elle vers cette fonction de transfert d'origine? Et si la réponse en fréquence donnée était sujette à des erreurs de mesure (supposées gaussiennes)?
Supposons de travailler dans le plan Z avec un spectre échantillonné, bien que les réponses de domaine continu puissent également être intéressantes.
Ajouté: Les méthodes de résolution sont-elles différentes si seule l'amplitude de la réponse en fréquence est donnée (par exemple, une solution avec une réponse de phase est autorisée)?
Ajouté: Ce dernier problème est ce qui m'intéresse le plus, étant donné une réponse d'amplitude connue autour du cercle unitaire, mais une réponse de phase inconnue / non mesurée, le système mesuré peut-il être estimé, et si oui dans quelles conditions?
Réponses:
Une approche consisterait à utiliser la méthode des moindres carrés dans le domaine des fréquences (FDLS) . Étant donné un ensemble d'échantillons (complexes) de la réponse en fréquence d'un système à temps discret et un ordre de filtrage choisi par le concepteur, la méthode FDLS utilise l' optimisation des moindres carrés linéaires pour résoudre l'ensemble des coefficients (qui correspondent directement aux ensembles de pôles et zéros) pour le système dont la réponse en fréquence correspond à la réponse souhaitée avec une erreur quadratique totale minimale.
La réponse en fréquence est donc:
Réorganisez ce qui précède pour obtenir:
Cette technique présente quelques avantages:
Toute réponse en fréquence arbitraire complexe (amplitude et phase) peut être utilisée comme modèle. Si vous n'avez qu'une contrainte d'amplitude, vous pouvez simplement choisir une réponse de phase, telle qu'une phase linéaire.
La technique est très simple à mettre en œuvre et est facilement paramétrable en fonction de l'ordre système souhaité.
Vous pouvez étendre un peu cette méthode pour utiliser l'optimisation des moindres carrés pondérés si nécessaire; cela vous permettrait de spécifier des régions de la réponse en fréquence dont l'erreur d'approximation est plus pondérée que les autres. Cela vous permet de contrôler plus étroitement les zones de bande passante / bande d'arrêt tout en permettant plus de pente dans les zones "peu importantes".
la source
Mes collègues ont obtenu d'excellents résultats avec l' ajustement vectoriel :
Nous l'utilisons pour la conversion FIR en IIR.
Pour les applications moins exigeantes, vous pouvez simplement utiliser des moindres carrés non linéaires adaptés à un nombre fixe de pôles et de zéros. Ceci est implémenté dans Matlab au fur
invfreqs
et à mesureinvfreqz
.la source
Une autre approche: tracer la réponse en fréquence et ajuster le mieux possible un tracé de Bode. Cela pourrait être fait très rapidement pour une solution approximative, ou dans un sens élaboré des moindres carrés pour un meilleur ajustement. GTH
la source