¿Cómo 'blanquear' una señal de dominio de tiempo?


12

Estoy tratando de entender cómo implementar exactamente lo que se conoce como un filtro de "blanqueamiento previo" o simplemente un filtro de "blanqueamiento".

Entiendo que el propósito es hacer que tenga un delta como su función de autocorrelación, pero no estoy seguro de cómo hacer esto exactamente.

El contexto aquí es el siguiente: se recibe una señal en dos receptores diferentes y se calcula su correlación cruzada. La correlación cruzada puede verse como un triángulo, o alguna otra forma olvidada de Dios. Debido a esto, se hace difícil encontrar el pico de la señal de correlación cruzada. En este caso, escucho sobre tener que 'blanquear' las señales antes de que se realice una correlación cruzada en ellas, de modo que la correlación cruzada ahora sea más delta.

¿Cómo se hace esto?

¡Gracias!


Tenga en cuenta que, en el contexto de los sistemas de comunicaciones, lo que su pregunta describe como un blanqueador es esencialmente realizar la función de un ecualizador. A mí me suena igual; podría ser una nomenclatura diferente.
Jason R

Sí, la nomenclatura mal definida hace que sea aún más confuso lo que intentan hacer a veces.
Spacey

Respuestas:


7

Suponga que tiene señales e cuya función de correlación cruzada no es algo que le guste; desea que sea ​​como un impulso. Tenga en cuenta que en el dominio de frecuencia, Así que filtrar las señales a través de filtros lineal y , respectivamente, para obtener , , y , , y ahora su función de correlación cruzada es cuya transformada de Fourier es x(t)y(t)Rx,y(t)Rx,y

F[Rx,y]=Sx,y(f)=X(f)Y(f).
ghx^(t)=xgX^(f)=X(f)G(f)y^=yhY^(f)=Y(f)H(f)Rx^,y^
F[Rx^,y^]=Sx^,y^(f)=[X(f)G(f)][Y(f)H(f)]=[X(f)Y(f)][G(f)H(f)]=[X(f)Y(f)][G(f)H(f)],
es decir, es la correlación cruzada de con . Más importante aún, que desea elegir y de modo que la densidad espectral cruzada de y es la inversa multiplicativa de la densidad espectral cruzada de eRx^,y^Rx,yRh,ggh G(f)H(f)gh X(f)Y(f)xy, O algo cercano. Si solo tiene una señal y un filtro, entonces obtiene el resultado dado por Hilmar (con la enmienda tal como lo indica mi comentario allí). En cualquier caso, el problema de compensar los nulos espectrales, o en general, las bandas de frecuencia donde las señales tienen poca energía aún permanece.

Gracias por la respuesta: ¿puede explicar las longitudes involucradas aquí? Por ejemplo, ¿cuál es la longitud de la función de transferencia de potencia de X, si x [n] es de longitud N? (Lo mismo con y ...)
Spacey

Ok, aceptaré la respuesta, pero escribiré una nueva pregunta sobre esto en algún momento de esta noche y podemos responderla desde allí. Gracias de nuevo.
Spacey

7

El blanqueamiento previo se puede realizar mediante el filtrado con una función de transferencia que es aproximadamente la inversa del espectro de potencia de la señal. Digamos que tiene una señal de audio que es más o menos rosa. Para blanquear eso, aplicaría un filtro rosado inverso (la respuesta de frecuencia aumenta en 3 dB por octava).

Sin embargo, no estoy seguro de si esto ayudará con su problema. El blanqueamiento previo tiende a amplificar las partes de baja energía en la señal, que pueden ser ruidosas y, por lo tanto, aumentar el ruido general en su sistema. Si está tratando de determinar si dos señales están alineadas en el tiempo (o cuál es la alineación en el tiempo), entonces hay algo de confusión inherente en el problema relacionado con el ancho de banda de la señal. Eso se representa exactamente en la forma del dominio del tiempo de la función de autocorrelación. 


Gracias por su respuesta - sí invirtiendo el espectro como bien dice probablemente no funcionará aquí ... el uso de 'pre-blanqueadores' parece tan omnipresente tiendo a pensar que hay muchas maneras de hacerlo, además de que ...?
Spacey

2

Existe un método generalmente simple de blanquear un vector dado un conjunto de datos de ejemplo. No está claro a partir de su pregunta si la dimensión de sería 2 o si está incluyendo una ventana temporal deslizante. De todos modos, desea decorelacionar los componentes de . Hacerlo en el dominio de la frecuencia para un problema tan simple es arduo.xxx

Suponiendo que comience con un conjunto de datos de ejemplo que consiste en muestras de los vectores de datos, este podría ser un conjunto de muestras de las dos señales en diferentes momentos. Resta la media del conjunto de datos para que la media de sea ​​cero. Luego debe calcular la matriz de covarianza de los datos donde es el número de ejemplos de datos e son índices de los componentes de , que si hay 2 señales simplemente van de 0 a 1. La matriz de covarianza en este caso solo será 2x2.C i j = 1xNi,jxCij=1NxDataxixjNi,jx

Una vez que tenga esta matriz de covarianza, puede calcular una transformación de blanqueamiento en forma de matriz para multiplicar los datos y obtener la versión blanqueada. La covarianza de estos nuevos datos blanqueados es la matriz de identidad.

Los datos blanqueados serán . Esta es solo una versión matricial de calcular la varianza sobre un conjunto de datos de ejemplo y luego dividir cualquier dato nuevo por la raíz cuadrada de la varianza para normalizar su desviación estándar.y=C1/2x

Se puede calcular utilizando la descomposición de Cholesky, donde . Para una matriz de 2x2 es muy fácil usar álgebra simple . Los datos blanqueados están dados por , que dado que es triangular inferior puede ser eficientemente calculado por solucionadores comunes sin formar el inverso. C = L L T Y = L - 1 x LC1/2C=LLTy=L1xL


0

Si solo se trata de cómo filtrar las partes de baja energía en la señal, ¿podría usar un filtro de paso bajo? Hay algunas implementaciones sobre esto.

Si esto es útil: este artículo de Karjalaien et. Se trata del filtro de blanqueamiento y el método de predicción lineal deformada, que utiliza el filtro.

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.