J'essaye de programmer un DSP (TMSF28335) en utilisant l'écriture de codes C dans Control Studio V6.02.Comment puis-je déplacer un signal de 90 degrés en utilisant un tampon circulaire
Dans ce projet, j'ai besoin de faire un déphasage de 90 degrés sur un signal AC que je mesure par les capteurs. On m'a conseillé d'utiliser un tampon circulaire afin de faire un tel déphasage. Mais malheureusement, je ne suis pas très familier comment écrire un tampon circulaire en langage C. Selon le concept, je sais que la "tête" du tampon doit être le signal d'entrée (signal AC mesuré) et la "queue" est le signal d'entrée décalé qui est utilisé comme signal de sortie du tampon circulaire.
La période d'échantillonnage du système est réglée sur 3.84599989e-5 (s) et une période sur 0.02 (s) (50 Hz). Donc 1/4 d'une période constitue (0,02/4) /3,84599989e-5=130 échantillons. Dans l'autre mot, j'ai besoin de faire un retard de 130 échantillons.
Je vous serais reconnaissant si vous pouvez me dire comment écrire le tampon circulaire en C pour mon contrôleur et en conséquence je peux faire un retard de phase.
Recherchez un didacticiel sur les tampons circulaires. Apprenez à les mettre en œuvre et utilisez-les sur des exemples simples. Ensuite, découvrez la période exacte de votre signal. Ensuite, maintenez un quart de cela comme la distance entre l'entrée et la sortie. Alternativement (en cas de période non constante), vous devrez déterminer dynamiquement ce que signifie "90 degrés" pour votre signal à un moment donné. – Yunnosch
Vous avez besoin d'un [filtre numérique] (https://en.wikipedia.org/wiki/Digital_filter) (soit FIR ou IIR) et de mettre en œuvre que vous devez utiliser un tampon circulaire qui est juste jusqu'à présent. J'utiliserais un filtre hilbert car cela transformerait 'cos (ωt)' en sin (ωt) 'qui est un décalage de 90 °. Voir: https://en.wikipedia.org/wiki/Hilbert_transform pour l'explication mathématique, vous avez besoin de connaissances sur les nombres complexes pour cela. Cette question devrait être mieux ici: https://dsp.stackexchange.com/. En outre, je recommanderais de former des choses telles que le traitement du signal numérique à Matlab. C'est génial pour ça! –
Mais pour répondre à votre question sur les tampons circulaires c'est très général: https://stackoverflow.com/a/827749/8051589. Voici en un pour une implémentation de filtre FIR: https://stackoverflow.com/questions/22749058/circular-buffer-implementation-for-fir-filter-in-c. Il y a beaucoup de choses à trouver sur internet. –