Ce filtre passe-bas a-t-il une réponse impulsionnelle non causale?

8

Je fais des mesures avec ma carte son, j'ai un canal de sortie connecté à un canal d'entrée.

J'envoie ensuite à la carte son une impulsion unitaire, c'est-à-dire une valeur de signal 1 suivie de zéros.

La réponse enregistrée est indiquée ci-dessous.

Je sais que la transformée de Fourier d'une fonction Rect, ou LPF, entraînera une fonction Sinc - ce qui semble être la réponse ci-dessous. Mais je ne suis pas sûr de la raison de la pré-sonnerie dans la réponse.

impulsion de l'unité capturée

Lance
la source

Réponses:

11

Quelque part dans la chaîne entre l'entrée analogique de la carte son et les échantillons que vous tracez, il y a certainement un filtre passe-bas. Il existe probablement un filtre anti-aliasing analogique avant l'ADC; en outre, il y a probablement un ou plusieurs filtres passe-bas appliqués pendant les processus de rééchantillonnage sur la carte ou dans la pile de pilotes audio du système d'exploitation (résultant en un flux d'échantillons à la fréquence d'échantillonnage que vous avez demandée).

Comme vous l'avez noté, les filtres passe-bas ont souvent une réponse impulsionnelle qui ressemble à une fonction . Lorsque vous excitez un système linéaire avec une impulsion, la sortie résultante n'est qu'une copie de la réponse impulsionnelle du système (en raison du théorème de convolution ). Donc, le fait que le signal observé ressemble à une fonction est à prévoir. Cela ne semble pas non plus vous avoir surpris.sincsinc

Cependant : vous n'avez pas observé de comportement non causal. Si vous l'aviez fait, vous auriez dû vous présenter immédiatement à votre bureau local des brevets. Les systèmes non causals ne sont pas réalisables dans le monde réel. Rappelez-vous la définition: pour que la réponse d'un système ne soit pas causale, sa sortie doit conduire l'entrée dans le temps. Autrement dit, le filtre commencerait à produire sa réponse à l'entrée avant de mettre l'entrée. Évidemment, cela ne se produira pas.

Alors, quelle est la pré-sonnerie? Simple: le grand pic au milieu correspond au centre de la réponse impulsionnelle du filtre. Cependant, cette pointe ne correspond pas à , le moment auquel l'impulsion a été insérée dans le filtre. Considérez l'exemple MATLAB suivant:t=0

% generate a 250th order lowpass filter
b = fir1(250, 0.5);
% plot its impulse response
plot(0:250, b); grid on;

L'intrigue résultante ressemble à ceci:

entrez la description de l'image ici

Comme vous pouvez le voir, le pic dans le graphique n'est pas à l'indice d'échantillon zéro. Le filtre a un retard global de 125 échantillons (en effet, tous les filtres FIR à phase linéaire ont un retard global de échantillons, où est l'ordre du filtre), et les pré et post-sonneries sont centré sur ce retard. Ainsi, lorsque vous insérez l'impulsion, vous voyez initialement très peu de réponse. À mesure que l'impulsion se fraye un chemin à travers les prises de filtre, la sonnerie monte jusqu'à un pic au centre de la réponse impulsionnelle, puis redescend à zéro.N2N

Le point à retenir: Il n'y a pas de comportement non causal dans l'exemple que vous avez donné. Il est possible de simuler des filtres non causaux en pratique en ajoutant suffisamment de retard, similaire au retard indiqué dans la réponse impulsionnelle du filtre passe-bas ci-dessus.

Jason R
la source
Haha, je souhaite que ce soit un comportement causal, car je l'exploiterais pour jouer au loto et rouler dans l'argent! J'ai toujours un problème pour obtenir l'intuition d'un filtre analogique affichant la pré-sonnerie, avec un filtre numérique, je peux comprendre le signal se propageant à travers les robinets.
Lance
3
Un filtre analogique est très similaire au boîtier numérique. Au lieu de se propager à travers des prises, vous avez des tensions et des courants qui se propagent à travers des condensateurs et des inductances. Rappelez-vous que la tension aux bornes d'un condensateur ne peut pas changer instantanément; il rampe de façon exponentielle, ajoutant du retard à la réponse vue sur la sortie. De même, le courant traversant une inductance ne peut pas changer instantanément; il rampe également de façon exponentielle. Tous ces effets interagissent à l'intérieur d'un réseau de filtres analogiques pour donner la réponse impulsionnelle globale que vous observez.
Jason R
La pré-sonnerie et ce type de réponse sont encore plus typiques des filtres numériques, mais je ne suis pas surpris de voir cela ... Il n'est pas rare que les ADC et les DAC fonctionnent en interne à un taux d'échantillonnage plus élevé que celui qu'ils sont définis, et faire la conversion de fréquence d'échantillonnage dans le domaine numérique.
pichenettes
@pichenettes: Vous avez raison. Il est beaucoup plus facile de concevoir un filtre numérique qui se rapproche d'une réponse en fréquence de mur de briques et a donc une réponse impulsionnelle sincère que de créer un filtre analogique. Bon point.
Jason R
1

La fonction Sinc représente la transformation d'un filtre passe-bas "mur de briques" à phase linéaire, avec le pic centré au temps 0. La plupart des filtres passe-bas physiques ont une ressemblance plus étroite avec une réponse de phase minimale avec une réponse en amplitude moins parfaite / transitions nettes qu'un Sinc, et avec le pic de la réponse de phase minimale décalé dans le temps par un certain retard de propagation physique.

hotpaw2
la source