Comment estimer une fonction de transfert à partir d'une réponse en fréquence de magnitude uniquement?

11

É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?

hotpaw2
la source
Essayez-vous d'approximer une réponse en fréquence arbitraire en tant que spectre rationnel? C'est-à-dire (b [0] + b [1] z ^ -1 ...) / (1 + a [1] z ^ -1 ...)? Si tel est le cas, cela est généralement appelé modélisation ARMA. C'est plus difficile que la modélisation AR parce que l'autocorrélation d'un signal a tendance à être liée de façon non linéaire aux coefficients de moyenne mobile (les b [] ou les zéros). Si mon hypothèse est correcte, je peux écrire une réponse plus formelle.
Bryan
@Bryan: Oui. J'ai essayé de suggérer qu'en énonçant une solution «pôle et zéro» (une fonction de transfert rationnelle) convenait (de préférence seulement si elle était meilleure qu'une solution tout pôle ou entièrement nulle / estimation du même degré).
hotpaw2
Quelle signification attache-t-on à la réponse en fréquence ? Certaines personnes font la distinction entre la fonction de réponse en fréquence ou H ( f ) et la fonction de transfert H ( s ) et certaines personnes ne le font pas. Voir, par exemple, la discussion qui suit cette réponse à une question précédente. H(ω)H(f)H(s)
Dilip Sarwate
@Dilip Sarwate: Étant donné H (w) uniquement pour le cercle unitaire (est-ce redondant?), Résolvez / estimez une représentation complète du plan z. J'espère que cela correspond à ma déclaration originale de la question.
hotpaw2
1
Votre ajout change les choses. Les pôles et les zéros peuvent changer avec la réponse en amplitude restant la même. L'exemple le plus courant est celui de la conception d'un filtre de phase minimum. Cela implique généralement de prendre un système existant et de refléter les pôles et les zéros à l'intérieur du cercle unitaire. Cela ne fait que modifier la réponse de phase, pas la réponse d'amplitude.
Bryan

Réponses:

14

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.

N

H(ω)=H(z)|z=ejω

H(z)z

H(z)=k=0Nbkzk1+k=1Nakzk

La réponse en fréquence est donc:

H(ω)=k=0Nbkejkω1+k=1Nakejkω

Réorganisez ce qui précède pour obtenir:

k=0NbkejkωH(ω)(1+k=1Nakejkω)=0

2N+1bkakH(ω)ω

ωm[0,2π),m=0,1,,M1M>2N+1M2N+1)ωk

k=0NbkejkωkH(ωk)(1+k=1Nakejkωk)=0

H(ωk)ωkbkakH(ω)

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.

  • ak

  • La technique est très simple à mettre en œuvre et est facilement paramétrable en fonction de l'ordre système souhaité.

  • N

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

Jason R
la source
1
Excellente réponse !! L'art de faire des conceptions de filtres avec une erreur carrée minimale consiste à définir correctement ce qu'est exactement l '"erreur". Ceci est contrôlé en choisissant la bonne grille de fréquences, en pondérant les facteurs à des fréquences spécifiques et en ajoutant plus de contraintes pour le comportement hors bande et aussi pour garder vos pôles à l'intérieur du cercle unitaire.
Hilmar
Le problème avec cette solution potentielle est que si la phase est inconnue au sujet d'une fonction de transfert existante, FDLS peut converger vers la mauvaise solution si la mauvaise phase est supposée, quelle que soit la précision avec laquelle l'ordre est correctement deviné ou la réponse en amplitude est mesurée.
hotpaw2
@ hotpaw2: C'est normal. Si vous ne savez rien de la réponse de phase, alors il existe un nombre infini de solutions qui sont également valables (c'est-à-dire qu'elles auraient la réponse d'amplitude correcte). Vous allez avoir besoin d'informations pour vous orienter vers ce que vous jugez être la solution la plus appropriée.
Jason R
@JasonR: Les seules solutions correctes devraient être les permutations de retournement des pôles / zéros à l'intérieur / à l'extérieur, qui est un nombre fini pour tout système d'ordre fini (existant).
hotpaw2
6

Mes collègues ont obtenu d'excellents résultats avec l' ajustement vectoriel :

L'ajustement vectoriel est une méthode numérique robuste pour l'approximation rationnelle dans le domaine fréquentiel. Il permet d'identifier des modèles d'espace d'états directement à partir de réponses en fréquence mesurées ou calculées, à la fois pour des systèmes d'entrée / sortie simples ou multiples. L'approximation résultante a garanti des pôles stables qui sont réels ou qui se présentent sous forme de paires conjuguées complexes.

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 invfreqset à mesure invfreqz.

nibot
la source
0

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

G Heydt
la source