Question

Je voudrais créer un signal numérique (carré) sur ma carte son. Il fonctionne très bien si je produis des hautes fréquences. Mais, étant donné que je ne peux pas sortie en courant continu sur une carte son, pour les fréquences inférieures les bits numériques qui en résultent seront tout lentement fondu à 0.

est ce que le passe haut fait soundcards à mon onde carrée: http://www.electronics-tutorials.ws/filter/fil39.gif

Quelle est la fonction mathématique d'un signal, qui, lorsqu'il est passé par un col deviendra carré?

Idéalement, la solution est mise en évidence dans gnuplot.

Était-ce utile?

La solution

Les coupures de la carte son sur les basses fréquences dans la forme d'onde, de sorte que vous devez augmenter ceux d'un certain montant dans ce que vous passez.

Une onde carrée contient de nombreuses fréquences (voir la section sur la série de Fourier ). Je soupçonne que la méthode la plus simple consistant à générer une onde carrée corrigée consiste à additionner une série de Fourier, augmentant les amplitudes des composantes à basse fréquence pour compenser le filtre passe-haut dans la carte son.

Afin de savoir combien pour stimuler chaque composante basse fréquence, vous devez d'abord mesurer la réponse des ondes filtre passe-haut dans votre carte son, en produisant sinusoïdales de différentes fréquences, mais une amplitude constante et de mesure pour chaque fréquence le rapport r(f) de l'amplitude de la sortie à l'amplitude de l'entrée. Ensuite, une approximation d'une sortie d'onde carrée peut être générée en multipliant la composante d'amplitude de chaque fréquence de la série f onde carrée de Fourier par 1/r(f) (le « filtre inverse »).

Il est possible que le filtre passe-haut dans la carte son permet également de régler la phase du signal. Dans ce cas, on pourrait être mieux modéliser le passe-haut en tant que filtre RC , (ce qui est probablement la façon dont la carte est en train de faire le filtrage), et inverser la fois l'amplitude et la réponse de phase de ce.

Autres conseils

Certaines des réponses précédentes ont souligné à juste titre qu'il est le filtre passe-haut (condensateur de couplage AC sur la sortie de la carte son) est ce qui empêche les ondes carrées basse fréquence de « rester sur » ils pourrissent rapidement.

Il n'y a aucun moyen de battre complètement ce filtre logiciel ou il ne serait pas là, serait-il maintenant? Si vous pouvez vivre avec des ondes carrées d'amplitude inférieures aux fréquences plus basses, vous pouvez les rapprocher en envoyant quelque chose comme un onde triangulaire. Du point de vue de l'analyse transitoire, la théorie de fonctionnement ici est que le condensateur de couplage se décharge (blocage de courant continu), vous augmentez la tension de polarisation pour contrer cette décharge maintenant ainsi le plateau de l'onde carrée pendant un certain temps. Bien sûr, vous avez fini par manquer d'espace libre PCM (vous ne pouvez pas continuer à augmenter indéfiniment la tension), donc une carte 24 bits est mieux à cet égard que un 16 bits car il vous donnera plus de résolution. Une autre, plus abstraite façon de penser est que le filtre RC fonctionne comme facteur de différenciation, de sorte afin d'obtenir les sommets plats de l'onde carrée dont vous avez besoin pour lui donner les pentes plates de l'onde triangulaire à l'entrée. Mais ceci est un comportement idéalisée.

Comme preuve rapide du concept, voici ce qu'un signal de triangle 60Hz ± 1V devient en passant par un bouchon d'accouplement 1uF sur une charge 1Kohm; il se rapproche d'une onde carrée ± 200mV entrer image description ici

Notez que l'impédance / résistance de la charge des questions un peu ici; si vous baissez à, disons, 100Ohm la diminution de l'amplitude de sortie de façon spectaculaire. Voici comment les bouchons de couplage bloc DC sur haut-parleurs / casque, car ces appareils ont une impédance beaucoup plus faible que 1Kohm.

Si je peux trouver un peu plus de temps plus tard aujourd'hui, je vais ajouter une meilleure simulation, avec un stimulus mieux en forme au lieu de la vague simple triangle, mais je ne peux pas obtenir ce à partir de votre logiciel de simulateur de circuit en ligne moyenne ...

Eh bien, si vous êtes chanceux, vous pouvez obtenir un de ces $ 0.99 cartes son USB où le fabricant a coins coupés tellement qu'ils n'ont pas installé bouchons de couplage. https://www.youtube.com/watch?v=4GNRzwfP7RE

Unfourtunately, vous ne pouvez pas obtenir une bonne approximation d'une onde carrée. matériel sonore est volontairement limité la vitesse de balayage et ne serait pas en mesure de produire un front descendant ou à la hausse au-delà de sa plage de fréquences prévue.

On peut se rapprocher d'une onde carrée mal déformé par une alternance de haut et bas du code PCM (+ max, -max) tous les n échantillons.

Vous ne pouvez pas produire en fait une véritable onde carrée, car il a une bande passante infinie. Vous pouvez produire une approximation raisonnable d'une onde carrée cependant, à des fréquences entre, par exemple 10 Hz et 1 kHz (en dessous de 10 Hz vous pouvez avoir des problèmes avec la partie analogique de votre carte son, etc., et au-dessus d'environ 1 kHz le rapprochement deviendront de plus en plus inexactes , puisque vous ne pouvez reproduire un nombre relativement faible d'harmoniques).

Tp générer la forme d'onde des valeurs échantillon juste alternent entre +/- une certaine valeur, par exemple pleine échelle, ce qui serait -32767 et 32767 pour un flux PCM 16 bits. La fréquence sera déterminée par la période de ces échantillons. Par exemple. pour un taux d'échantillonnage de 44,1 kHz, si vous avez par exemple 100 échantillons de -32767 puis 100 échantillons de 32767, soit la période = 200 échantillons, la fréquence fondamentale de votre onde carrée sera 44,1 kHz / 200 = 220 Hz.

Je trouve une application que je construis sur elle.

http: //www.blogger. com / blogger.g blogid = # 999906212197085612 éditeur / target = post;? postID = 7722571737880350755

vous pouvez générer le format que vous voulez et même le modèle dont vous avez besoin.

Le code utilise SlimDX .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top