Existe-t-il une distorsion non linéaire à bande limitée?

12

Donc, si vous générez une onde carrée en commutant simplement un signal entre deux valeurs, aux limites de l'échantillon, cela produit une série infinie d'harmoniques, qui alias et produisent des tonalités en dessous de votre fondamentale, ce qui est très audible. La solution est la synthèse à bande limitée , utilisant soit la synthèse additive soit des étapes à bande limitée pour produire des formes d'onde qui sont les mêmes que si vous aviez à bande limitée l'onde carrée mathématique idéale avant de l'échantillonner:

http://flic.kr/p/83JMjT

entrez la description de l'image ici

Mais je viens de réaliser que si vous appliquez une grande amplification à une onde sinusoïdale numérique, puis la coupez numériquement, elle produira la même forme d'onde carrée, sans les ondulations du phénomène Gibbs. C'est donc aussi produire des produits de distorsion aliasés, non? Donc, toute distorsion non linéaire dans le domaine numérique qui produit des harmoniques en dehors des limites de Nyquist produira des produits de distorsion crénelés? (Edit: j'ai fait quelques tests et confirmé que cette partie est vraie.)

Existe-t-il une distorsion à bande limitée, pour simuler (dans le domaine numérique) les effets de la distorsion (dans le domaine analogique) avant la limitation de bande et l'échantillonnage? Si oui, comment faites-vous? Si je recherche "distorsion à bande limitée", je trouve des références aux polynômes de Chebyshev, mais je ne sais pas comment les utiliser ou s'ils ne fonctionnent que pour les ondes sinusoïdales ou quoi:

Cet instrument n'essaie pas de générer une distorsion à bande limitée. Les personnes intéressées par la distorsion à bande limitée devraient étudier l'utilisation des polynômes de Chebyshev pour générer l'effet. Distorsion tangente hyperbolique

 

"Polynôme de Chebyshev" - fonctions de mise en forme avec la propriété importante d'être intrinsèquement limitées dans la bande, c'est-à-dire qu'elles n'introduisent pas d'harmoniques spectrales parasites en raison du chevauchement, etc. Wave Shaper

endolith
la source
Je ne sais pas trop ce que vous demandez. Si vous effectuez une opération qui provoque la génération de contenu de fréquence en dehors de la région de Nyquist dans laquelle vous opérez, vous verrez un alias, quelle que soit la façon dont vous avez généré ledit contenu. Quel type de distorsion analogique essayez-vous de simuler? Une approche pourrait être de suréchantillonner le signal à une fréquence d'échantillonnage suffisamment élevée, puis d'utiliser la région de Nyquist plus large pour effectuer votre traitement du signal. Vous pouvez ensuite sous-échantillonner à nouveau le taux d'origine après avoir terminé.
Jason R
@JasonR: Oui, pour générer des ondes carrées, vous pouvez soit faire une méthode véritablement à bande limitée comme la synthèse additive, soit vous pouvez approximer en suréchantillonnant d'abord, en générant l'onde carrée de manière naïve, puis en sous-échantillonnant (mais il y aura toujours certains alias, juste à un niveau inférieur). De même, vous pouvez approximer la distorsion comme vous l'avez dit en suréchantillonnant d'abord, mais existe-t-il un moyen de la générer directement, avec un repliement nul, analogue à la méthode de synthèse additive pour la génération d'ondes carrées?
endolith
@ JasonR: Je pose des questions sur toute distorsion non linéaire, en général, mais quelque chose comme émuler les circuits de distorsion d'un ampli de guitare analogique serait un bon exemple. Si je comprends bien, le faire naïvement dans le domaine numérique produirait des produits de distorsion qui n'existent pas lorsqu'ils sont déformés dans le domaine analogique, dont certains pourraient être clairement audibles à des fréquences inférieures à la fondamentale, etc.
endolith
2
@endolith Chebyshev polynomials peut être ce que vous voulez.
datageist
@datageist: Pouvez-vous écrire une réponse sur la façon d'utiliser les polynômes de Chebyshev? Même une courte.
endolith

Réponses:

5

L'application d'une fonction non linéaire introduira toujours des harmoniques et le mélange de fonctions non linéaires avec des versions échantillonnées de signaux continus ajoute la ride que vous notez ci-dessus (où les harmoniques haute fréquence sont aliasées aux basses fréquences).

Je peux penser à quelques façons de procéder:

  1. Vous pouvez utiliser un facteur de suréchantillonnage suffisamment élevé pour capturer les harmoniques supplémentaires (jusqu'à une précision arbitraire, par exemple votre bruit de fond),
  2. Vous pouvez utiliser une fonction d'écrêtage "plus douce" (voir, par exemple, ici ) qui a des harmoniques qui s'éteignent plus tôt que la tondeuse dure. Ceci est plus facile à modéliser, mais introduit sa propre distorsion aux basses fréquences.
  3. En vous appuyant sur l'approche que vous avez suggérée ci-dessus, interpolez votre signal échantillonné (par exemple en utilisant un interpolateur Lagrange ou Chebyshev) pour construire un modèle à temps continu. Ensuite, appliquez le clipper dur et passe-bas dans un domaine en temps continu simulé. Goûtez le résultat.

Vous pouvez combiner (1) et (2). La troisième approche est complexe, mais vous donne le meilleur contrôle sur la quantité de distorsion à admettre, et sera probablement mieux adaptée aux exigences de fidélité très élevées.

f(x)

f(x)=n=0[f(n)(0)n!xn]

f(x)x=g(t)g(t)xng(t)nnnnfois celle de votre signal. Pour compléter l'image, vous devez déterminer l'amplitude associée à chaque terme et décider combien de termes dans la somme sont pertinents.

(Avec un peu de réflexion, vous pourriez également être en mesure d'utiliser ce formulaire directement pour approximer la non-linéarité filtrée. Cela nécessiterait une bonne représentation en série pour le clipper.)

Graeme
la source
Pour clarifier, # 3 n'est pas seulement un suréchantillonnage avec interpolation, c'est trouver des paramètres d'un polynôme de Chebyshev continu qui correspond aux points échantillonnés et travailler ensuite avec ces paramètres et un modèle du polynôme?
endolith
1
J'imagine une séquence d'interpolateurs polynomiaux qui sont chacun actifs sur une courte gamme d'échantillons. Ainsi, lorsqu'un lot de nouveaux échantillons arrive, vous construisez un interpolateur qui n'est actif que dans un intervalle défini. Votre approximation en temps continu du signal échantillonné se compose de ces polynômes. (Je pense à Lagrange, mais Chebyshev est probablement la même chose. Je ne me souviens pas si les interpolateurs Chebyshev correspondent exactement aux points d'échantillonnage. Sinon, vous obtiendrez des discontinuités lors du passage d'un interpolateur à l'autre.)
Graeme
4

Quelques approches de la distorsion non linéaire sans alias (par ordre croissant de difficulté):

  1. fs2NffN+1

  2. N2N

  3. f:RRf:RNRMNM>N

  4. Conception algébrique basée sur des contraintes : dans l'article précédent, vous avez vu que la distorsion non linéaire d'anticrénelage conduit à des filtres non linéaires. Bien sûr, tous les filtres non linéaires ne sont pas exempts d'alias, mais certains peuvent l'être. La question évidente est donc pour un critère de rendre un tel filtre strictement sans alias et comment le concevoir. En fait, une déclaration équivalente à l'absence d'alias est que le filtre non linéaire commute avec les traductions de sous-échantillon. Vous devez donc vous assurer que cela ne fait aucune différence si vous traduisez d'abord, puis filtrez, ou filtrez d'abord, puis traduisez. Cette condition conduit à des contraintes de conception très strictespour les filtres non linéaires, mais dépend de la façon dont vous réalisez la traduction du signal. Par exemple, la translation idéale nécessiterait une infinité de coefficients pour le filtre non linéaire. Vous devez donc approximer la traduction du signal en ordre fini pour obtenir un filtre non linéaire fini. Les échelles sans alias avec l'approximation que vous utilisez, mais vous en avez un très bon contrôle. Après avoir étudié les mathématiques de cette approche, vous pouvez concevoir n'importe quelle fonction de transfert non linéaire (pas seulement lisse) comme un modèle numérique presque idéal sous la forme d'un filtre non linéaire. Je ne peux pas esquisser les détails ici, mais vous pouvez peut-être vous inspirer de cette description.

Jazzmaniac
la source
y[t]=x[t]k
Ou, une autre question (peut-être liée) - si vous adoptez l'approche finie locale que vous avez mentionnée, vous obtenez une carte de la série de puissance tronquée à la série de puissance tronquée. Lorsque vous essayez ensuite de passer la série de puissance tronquée, qui serait normalement convolutive avec une fonction sinc, obtenez-vous une expression simple pour le résultat? Le résultat peut-il être à nouveau exprimé sous forme de série de puissance tronquée, et si oui, à quoi ressemble-t-il?
Mike Battaglia
1
@MikeBattaglia, vous pouvez peut-être créer une nouvelle question afin que je puisse y répondre en profondeur. Pour répondre à votre deuxième question, vous n'utilisez pas un noyau SINC mais dans le cas le plus simple un noyau boxcar. Les noyaux d'ordre supérieur fonctionnent, mais pour obtenir un résultat analytique, vous devez vous limiter à certains noyaux.
Jazzmaniac
Merci - a créé une nouvelle question ici pour la question de conception de filtre: dsp.stackexchange.com/q/51533/18276
Mike Battaglia
2

Tn(x)=cos(narccos(x)).

Tn(x)

(1)Tn(cos(kx))=cos(narccos(cos(kx)))=cos(nkx).

Les polynômes eux-mêmes peuvent être facilement générés en utilisant la relation de récurrence suivante :

T0(x)=1T1(x)=xTn(x)=2xTn1(x)Tn2(x).

Voici les premiers:

T0(x)=1T1(x)=xT2(x)=2x(x1)=2x21T3(x)=2x(2x21)x=4x33xT4(x)=2x(4x33x)(2x21)=8x48x2+1

(1)T2cos(x)

2cos2(x)1=2(eix+eix2)21=24(ei2x+2eixeix+ei2x)1=(ei2x+ei2x2)+221=cos(2x).

En calculant une série Chebyshev

f(x)=n=0anTn(x)

nf(x)

datageist
la source
Merci! Pour les formes d'onde autres qu'une seule sinusoïde, que se passe-t-il? Intermodulation illimitée ou non?
endolith
1
xn
1

@ robert-bristow-johnson l' explique très clairement sur comp.dsp :

vous devez suréchantillonner dans une mesure finie. si vous représentez la non-linéarité (sans mémoire, je suppose) comme un polynôme d'ordre fini (qui se rapproche de la courbe que vous essayez d'implémenter), alors quel que soit l'ordre du polynôme est le même facteur de suréchantillonnage nécessaire et aucun alias ne se produira. puis filtre passe-bas (à ce taux de suréchantillonnage) pour se débarrasser de toutes les composantes de fréquence supérieures à votre Nyquist d'origine, puis sous-échantillonner et vous n'aurez pas de repliement.

En d'autres termes, si votre non-linéarité est un polynôme, la fréquence la plus élevée qui peut être produite par la distorsion sera la fréquence la plus élevée de votre signal multipliée par l'ordre N du polynôme. (La non-linéarité polynomiale multiplie le signal par lui-même N fois, de sorte que son spectre se convolutionne avec lui-même et se propage dans le même rapport.)

Donc, vous connaissez la fréquence maximale (que ce soit Nyquist ou une limite inférieure pour votre application), et vous connaissez l'ordre du polynôme, vous pouvez donc suréchantillonner suffisamment pour éviter le repliement, faire la distorsion, puis filtre passe-bas et sous-échantillonnage.

En fait, vous pouvez réduire le taux de suréchantillonnage en laissant un certain aliasing se produire, tant qu'il est contenu dans la bande qui sera supprimée avant le sous-échantillonnage:

une autre petite astuce est que vous ne devez pas vous soucier de l'aliasing qui se replie vers la zone que vous allez LPF. donc un polynôme du 5ème ordre n'a besoin que d'avoir un rapport de suréchantillonnage de 3. ces 2 harmoniques les plus importantes pourraient être alias, mais ne reviendront pas dans la bande de base. lors du sous-échantillonnage, vous filtrez ces harmoniques aliasées. donc je pense que la règle dure et rapide est

rapport de suréchantillonnage = (ordre polynomial + 1) / 2

endolith
la source
2
NN+12fs
@robert J'ai vu et ajouté cette partie pendant que vous commentiez. Si vous réécrivez ceci comme votre propre réponse, je le supprimerai et accepterai la vôtre
endolith
1
Oh cher. habiller une belle réponse demande du travail.
robert bristow-johnson
@ robertbristow-johnson Eh bien, les points Internet imaginaires sont à vous si vous les voulez
endolith