¿Existe una distorsión no lineal limitada en la banda?


12

Entonces, si genera una onda cuadrada simplemente cambiando una señal entre dos valores, en los límites de la muestra, produce una serie infinita de armónicos, que alias y producen tonos por debajo de su fundamental, que es muy audible. La solución es la Síntesis de banda limitada , ya sea usando síntesis aditiva o pasos de banda limitada para producir formas de onda que son las mismas que si hubiera limitado la banda de la onda cuadrada matemática ideal antes de muestrearla:

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

ingrese la descripción de la imagen aquí

Pero me di cuenta de que si aplica una amplificación grande a una onda sinusoidal digital y luego la recorta digitalmente, producirá la misma forma de onda cuadrada, sin las ondas del fenómeno Gibbs. Entonces, también está produciendo productos de distorsión con alias, ¿verdad? Entonces, ¿ cualquier distorsión no lineal en el dominio digital que produzca armónicos fuera de los límites de Nyquist producirá productos de distorsión con alias? (Editar: he hecho algunas pruebas y he confirmado que esta parte es cierta).

¿Existe una distorsión de banda limitada para simular (en el dominio digital) los efectos de la distorsión (en el dominio analógico) antes de la limitación de banda y el muestreo? Si es así, como lo haces? Si busco "distorsión ilimitada de banda", encuentro algunas referencias a los polinomios de Chebyshev, pero no sé cómo usarlos o si solo funcionan para ondas sinusoidales o qué:

Este instrumento no intenta generar una distorsión de banda limitada. Los interesados ​​en la distorsión de banda limitada deben investigar el uso de polinomios de Chebyshev para generar el efecto. Distorsión de la tangente hiperbólica

 

"Chebyshev polinomio" - dar forma a las funciones con la importante propiedad de que son intrínsecamente de banda limitada, es decir, que no introducen armónicos espectrales espurias debido a la superposición etc. Wave Shaper


No estoy seguro de lo que estás preguntando. Si realiza una operación que genera la generación de contenido de frecuencia fuera de la región de Nyquist en la que está operando, verá alias, independientemente de cómo generó dicho contenido. ¿Qué tipo de distorsión analógica estás tratando de simular? Un enfoque podría ser aumentar la muestra de la señal a una frecuencia de muestreo lo suficientemente alta, luego usar la región Nyquist más amplia para realizar el procesamiento de la señal. Luego, puede reducir la muestra a la tasa original una vez que haya terminado.
Jason R

@JasonR: Sí, para generar ondas cuadradas, puede hacer un método verdaderamente limitado por banda como la síntesis aditiva, o puede aproximarse mediante muestreo ascendente primero, generando la onda cuadrada de la manera ingenua y luego disminución de resolución (pero aún habrá algunos alias, solo en un nivel inferior). Del mismo modo, puede aproximar la distorsión como ha dicho al muestrear primero, pero ¿hay alguna forma de generarla directamente, con alias cero, análoga al método de síntesis aditiva para la generación de onda cuadrada?
endolito

@JasonR: Estoy preguntando sobre cualquier distorsión no lineal, en general, pero algo como emular el circuito de distorsión de un amplificador de guitarra analógico sería un buen ejemplo. Si lo entiendo correctamente, hacerlo ingenuamente en el dominio digital produciría productos de distorsión que no existen cuando se distorsiona en el dominio analógico, algunos de los cuales pueden ser claramente audibles a frecuencias inferiores a la fundamental, etc.
endolito

2
Los polinomios de @endolith Chebyshev pueden ser lo que quieres.
datageist

@datageist: ¿Puedes escribir una respuesta sobre cómo usar los polinomios de Chebyshev? Incluso uno corto.
endolito

Respuestas:


5

La aplicación de una función no lineal siempre introducirá armónicos, y la combinación de funciones no lineales con versiones muestreadas de señales continuas agrega la arruga que notas arriba (donde los armónicos de alta frecuencia tienen un alias a bajas frecuencias).

Se me ocurren algunas formas de proceder:

  1. Puede usar un factor de sobremuestreo lo suficientemente alto como para capturar los armónicos adicionales (hasta una precisión arbitraria, por ejemplo, su piso de ruido),
  2. Puede usar una función de recorte "más suave" (consulte, por ejemplo, aquí ) que tiene armónicos que se extinguen antes que el cortapelos duro. Esto es más fácil de modelar, pero introduce su propia distorsión a bajas frecuencias.
  3. Sobre la base del enfoque que sugirió anteriormente, interpole su señal muestreada (por ejemplo, utilizando un interpolador Lagrange o Chebyshev) para construir un modelo de tiempo continuo. Luego, aplique el cortapelos duro y pase bajo en un dominio de tiempo continuo simulado. Muestra el resultado.

Puedes combinar (1) y (2). El tercer enfoque es complejo, pero le brinda el mejor control sobre la cantidad de distorsión que debe admitir, y probablemente escalará mejor a requisitos de muy alta fidelidad.

f(x)

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

f(x)x=g(t)g(t)xng(t)nnnnveces la de tu señal. Para completar la imagen, debe calcular la amplitud asociada con cada término y decidir cuántos términos en la suma son relevantes.

(Con un poco de reflexión, también podría usar este formulario directamente para aproximar la no linealidad filtrada. Eso requeriría una buena representación en serie para el clipper).


Para aclarar, el # 3 no es solo sobremuestreo con interpolación, ¿es encontrar parámetros de un polinomio continuo de Chebyshev que se ajuste a los puntos muestreados y luego trabajar con esos parámetros y un modelo del polinomio?
endolito

1
Me estoy imaginando una secuencia de interpoladores polinómicos que están activos en un rango corto de muestras. Entonces, a medida que llega un lote de nuevas muestras, construiría un interpolador que solo está activo en un intervalo definido. Su aproximación de tiempo continuo a la señal muestreada consiste en estos polinomios. (Estoy pensando en Lagrange, pero Chebyshev es probablemente lo mismo. No recuerdo si los interpoladores de Chebyshev coinciden exactamente con los puntos de muestra. Si no, obtendría discontinuidades al cambiar entre interpoladores.)
Graeme

4

Algunos enfoques para la distorsión no lineal sin alias (en orden creciente de dificultad):

  1. fs2NffN+1

  2. N2N

  3. f:RRf:RNRMNM>N

  4. Restringir el diseño algebraico basado : en el elemento anterior, ha visto que la distorsión no lineal antialiasing conduce a filtros no lineales. Por supuesto, no todos los filtros no lineales están libres de alias, pero algunos pueden estarlo. Entonces, la pregunta obvia es un criterio para hacer que dicho filtro sea estrictamente libre de alias y cómo diseñarlo. Como resultado, una afirmación equivalente a estar libre de alias es que el filtro no lineal conmuta con traducciones de submuestra. Por lo tanto, debe asegurarse de que no haga una diferencia si traduce primero y luego filtra, o filtra primero y luego traduce. Esta condición conduce a restricciones de diseño muy estrictas.para filtros no lineales, pero depende de cómo realice la traducción de la señal. Por ejemplo, la traducción ideal requeriría infinitos coeficientes para el filtro no lineal. Por lo tanto, debe aproximar la traducción de la señal a un orden finito para obtener un filtro no lineal finito. La ausencia de alias se escala con la aproximación que usa, pero tiene un muy buen control sobre ella. Después de haber trabajado con las matemáticas de este enfoque, puede diseñar cualquier función de transferencia no lineal (no solo suave) como un modelo digital casi ideal en forma de filtro no lineal. No puedo bosquejar los detalles aquí, pero tal vez puedas encontrar algo de inspiración en esta descripción.


y[t]=x[t]k

O, otra pregunta (quizás relacionada): si utiliza el enfoque finito local que mencionó, obtendrá un mapa de series de potencia truncadas a series de potencia truncadas. Cuando luego intentas pasar a la serie de potencia truncada, que normalmente sería convolucional con una función sinc, ¿obtienes alguna expresión simple para el resultado? ¿Se puede expresar el resultado nuevamente como una serie de potencia truncada y, de ser así, cómo se ve?
Mike Battaglia

1
@MikeBattaglia, tal vez puedas crear una nueva pregunta para que pueda dar una respuesta completa allí. Para responder a su segunda pregunta, no utiliza un kernel SINC sino, en el caso más simple, un kernel boxcar. Los núcleos de orden superior funcionan, pero para obtener un resultado analítico, debe restringirse a ciertos núcleos.
Jazzmaniac

Gracias: creó una nueva pregunta aquí para la pregunta de diseño del filtro: 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).

Los propios polinomios se pueden generar fácilmente utilizando la siguiente relación de recurrencia :

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

Aquí están los primeros:

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).

Al calcular una serie de Chebyshev

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

nf(x)


¡Gracias! Para formas de onda que no sean una sola sinusoide, ¿qué sucede? Intermodulación de banda ilimitada o no?
endolito el

1
xn

1

@ robert-bristow-johnson explica esto muy claramente en comp.dsp :

tienes que sobremuestrear hasta cierto punto. si representa la no linealidad (sin memoria, supongo) como un polinomio de orden finito (que se aproxima a la curva que está tratando de implementar), entonces cualquiera que sea el orden del polinomio es el mismo factor de sobremuestreo necesario y no se producirán alias. luego filtro de paso bajo (a esa frecuencia sobremuestreada) para deshacerse de todos los componentes de frecuencia más altos que su Nyquist original, luego disminuya la muestra y no tendrá alias.

En otras palabras, si su no linealidad es un polinomio, la frecuencia más alta que puede producir la distorsión será la frecuencia más alta en su señal multiplicada por el orden N del polinomio. (La no linealidad polinómica está multiplicando la señal por sí misma N veces, por lo que su espectro se enreda consigo mismo y se extiende por la misma relación).

Entonces conoce la frecuencia máxima (ya sea Nyquist o algún límite inferior para su aplicación), y conoce el orden del polinomio, por lo que puede sobremuestrear lo suficiente para evitar el aliasing, hacer la distorsión y luego el filtro de paso bajo y la disminución de la muestra.

De hecho, puede reducir la tasa de sobremuestreo permitiendo que ocurra algún aliasing, siempre que esté contenido en la banda que se eliminará antes de la disminución de muestreo:

Otro pequeño truco es que no necesita preocuparse por los alias que se pliegan hacia el área que LPF eliminará. por lo tanto, un polinomio de quinto orden solo necesita tener una relación de sobremuestreo de 3. esos 2 armónicos superiores pueden tener alias, pero no volverán a la banda base. al reducir la resolución, filtra los armónicos con alias. así que creo que la regla dura y rápida es

relación de sobremuestreo = (orden polinomial + 1) / 2


2
NN+12fs

@robert vi y agregué esa parte mientras comentabas. Si reescribe esto como tu propia respuesta, la eliminaré y aceptaré la tuya
endolith

1
Oh querido. para vestir una buena respuesta requiere trabajo.
robert bristow-johnson

@ robertbristow-johnson Bueno, los puntos imaginarios de internet son tuyos si los quieres
endolith
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.