Détection de phase entre des signaux d'onde carrée et sinusoïdale

9

J'ai un circuit qui a une entrée numérique carrée (générée par PLD, 1,8 Vp) et une sortie sinusoïdale (0,5 - 3,5 Vp). Les deux signaux ont une fréquence de 100 kHz, mais la phase est différente.

Quelle est la bonne façon de détecter la différence de phase entre ces deux signaux? Les détecteurs de phase que j'ai vus jusqu'à présent sont pour tous les signaux numériques ou analogiques? Y en a-t-il un pour le circuit de signaux mixtes comme celui que j'ai?

Mise à jour

Connaître la différence de phase avec 1 degré est suffisant pour mon application. Les fréquences sont toujours verrouillées les unes par rapport aux autres et ne changent jamais. L'onde carrée pilote l'électronique analogique et les analogues produisent l'onde sinusoïdale qui contient un signal modulé AM. L'amplitude du signal est cependant très faible par rapport à l'amplitude de la porteuse. En raison de la variabilité de la production, les analogues (y compris certains inducteurs à remontage manuel) ont une variabilité élevée de l'unité à l'unité de la phase, et j'essaie de trouver une méthode de réglage automatique pour le DSP qui traite l'onde sinusoïdale de sortie.

udushu
la source
2
Avec quelle précision avez-vous besoin de connaître la différence de phase? Et avez-vous besoin de le faire comme une expérience unique ou dans le cadre de la fonction continue de votre circuit? Les deux parties sont-elles réellement verrouillées en fréquence (ou dérivent-elles leur fréquence d'une référence commune) ou sont-elles simplement toutes les deux nominalement à 100 kHz?
The Photon

Réponses:

11

La détection de phase est la plus simple pour les signaux numériques; c'est fondamentalement une porte XOR. Je convertirais le sinus en une onde carrée. Alimentez un comparateur avec le sinus sur une entrée et le sinus moyen (LPF) sur l'autre, de sorte que le comparateur donne une onde carrée de rapport cyclique de 50%. Utilisez ensuite un détecteur de phase numérique.

stevenvh
la source
J'ai envisagé d'utiliser un comparateur pour créer une onde sinusoïdale à partir d'une onde carrée, mais le problème est que l'amplitude de l'onde sinusoïdale peut varier dans une plage de 0,5 à 3,5 V. Il s'agit d'une variabilité de la production et je ne peux rien y faire. Cependant, la détection de croix croisée peut être une solution dans ce cas ... Peut être utile d'envisager.
udushu
1
@udushu - La moyenne LPF résout cela. Il prendra soin de varier l'amplitude et le décalage CC.
stevenvh
@stevenvh, je ne pense pas que le LPF soit suffisant pour garantir que l'amplitude du signal d'entrée n'affecte pas la mesure de phase. Les comparateurs ont une propriété appelée dispersion qui signifie que le retard de propagation change à mesure que l'amplitude d'entrée change. Il ressemble à un comparateur qui peut répondre aux besoins d'OP pour l'erreur de phase (environ 40 ns) sans autre compensation devrait également avoir une dispersion suffisamment faible; mais ce sera une chose importante à vérifier lors du choix d'un comparateur pour cette utilisation.
The Photon
@ThePhoton - Vous avez raison, mais OP n'avait pas encore mentionné sa précision de 1 ° lorsque j'ai répondu. OTOH il existe des comparateurs avec une dispersion bien inférieure à 100 ps, ​​ce qui est de quelques ordres de grandeur mieux que le 1 °.
stevenvh
@ThePhoton - Il semble que le comparateur à croisement zéro soit une solution. Merci à tous pour la discussion.
udushu
4

Puisque vous dites que vous avez un DSP traitant l'onde sinusoïdale, vous pouvez utiliser une transformée de Fourier complexe pour mesurer la phase (il vous suffit d'évaluer la DFT à la fréquence connue).

Ceci est en fait étroitement lié à ce que Curd a suggéré à propos du mélange - un DFT à un seul point est un type de mélangeur suivi par des intégrateurs ou des filtres passe-bas. La différence est qu'en le faisant dans le domaine complexe (ou en utilisant un mélangeur IQ dans le domaine analogique), vous pouvez déterminer l'angle de la sortie complexe. En utilisant uniquement les composants réels ou un seul mélangeur, vous ne pouvez pas distinguer le plomb du décalage et la sensibilité à l'amplitude serait plus difficile.

Chris Stratton
la source
J'espère que je pourrais. Cela aurait résolu beaucoup de problèmes que j'ai actuellement. Malheureusement, le DSP que je dois utiliser est loin d'avoir la puissance nécessaire pour faire des DFT en temps réel sur un signal de 100 kHz.
udushu
Vous n'avez qu'à calculer une fréquence bin - pas les # bins = # échantillons normaux que les gens associent à une transformée de Fourier. De plus, à quelle fréquence devez-vous mesurer la phase? Si ce n'est pas fréquent, la vraie question est de savoir si votre système peut échantillonner et stocker à ce rythme, et non s'il peut y traiter.
Chris Stratton
Le DSP est actuellement configuré pour échantillonner à 20 kHz et seul le signal démodulé est échantillonné, pas la porteuse à 100 kHz. Je ne pense pas que l'humble dsPIC33 que j'utilise pourra échantillonner un signal à 100 kHz.
udushu
@udushu une recherche rapide suggère que le dsPIC est capable de faire environ un méga-échantillon / seconde. Mais si la bande passante analogique est suffisante et que vous connaissez la fréquence, vous pouvez également intentionnellement sous-échantillonner et exploiter l'aliasing.
Chris Stratton
0

En supposant que les amplitudes des deux signaux d'entrée sont constantes (sinon elles pourraient être rendues constantes par un circuit AGC), vous pouvez utiliser un mélangeur (multiplicateur) comme détecteur de phase:

Si les signaux sont en phase, la sortie sera positive.
Si les signaux sont déphasés de 180 °, la sortie sera négative.
Pour les autres différences de phase, la sortie sera quelque part entre ces valeurs.

Par exemple, la détection de phase est mentionnée dans la fiche technique comme l'une des applications du multiplicateur analogique IC AD633 .

fromage blanc
la source