¿Qué es mejor: muestreo ascendente o descendente?


13

Quiero comparar dos señales o curvas. una curva muestreada a 30 Hz una muestra de curva a 2000 Hz

Lamentablemente tienen diferentes frecuencias de muestreo. El primero se muestrea a 30 Hz, el segundo a 2000 Hz. Matlab tiene la función 'resample' y pensé que esto facilitaría mucho la comparación.

Mi pregunta es: ¿es más inteligente reducir la segunda curva o aumentar la primera?

Editar: hice lo que me dijeron. En la imagen de la izquierda están las curvas originales. Las curvas de la derecha se vuelven a muestrear. Arriba a la derecha se muestra arriba, abajo a la derecha se baja la muestra.

Sé que las curvas son de diferente longitud, cuando se vuelven a muestrear. Sin embargo, la segunda señal se recortará a la longitud de la primera señal. comparación


1
Voté tu pregunta. ¿Cuál crees que es más sabio?

si es muy alta precisión no importa (en este caso creo que no), entonces usted puede disminuir la resolución, sobre todo si se hace el proceso mucho más rápido y el valor de su tiempo en el trabajo
user1306322

@Stanley Pawlukiewicz, claramente, pierdo todos los pequeños picos por disminución de resolución. Por lo tanto, el muestreo puede ser el camino a seguir. Por otra parte, no necesito los picos pequeños. Incluso pensé en suavizar la segunda señal. Entonces, en mi caso, tal vez realmente no importe si tomo muestras de arriba o abajo.
NelsonOrange

¿Se requieren más comentarios y respuestas?
Laurent Duval

Respuestas:


18

En breve:

  • Upsampling : pierde / no debe perder información (si se hace con prudencia), luego es más seguro ,
  • Reducción de la resolución : puede perder información (si se hace imprudentemente), pero más eficiente computacionalmente .

Entonces, si compara los datos a diferentes velocidades, y en una fase de evaluación cuando uno intenta definir cómo se debe hacer la comparación (qué características se comparan, con qué métrica, con qué elementos externos, como precisión, eficiencia, robustez, etc.), un El primer enfoque muy básico sería muestrear ambas señales por un factor entero para conciliar su muestreo . Aquí, esto está bastante bien, 6000 Hz podría funcionar para ambos.

Las razones podrían ser, para la práctica de DSP:

  • con el muestreo ascendente de enteros, no está obligado a utilizar técnicas de filtrado complicadas, y la interpolación lineal simple es fácil. Sin embargo, recuerde que el muestreo superior agrega información.
  • con señales de la misma escala, puede extraer características y compararlas: ruido, variabilidad, pendientes, derivadas, etc. Puede aplicar la corrección correcta de escala / desplazamiento (no tienen la misma amplitud), usar lineal o no transformaciones lineales (Fourier, etc.) para verificar si existen características de similitud en diferentes dominios
  • en esta etapa, debería poder calificar y cuantificar las características / métricas necesarias para construir su algoritmo. Y puede estimar lo que puede perder de ambos datos. Por ejemplo, puede crear su algoritmo y ver qué tan robusto es señalar señales y qué tan lejos puede llegar. Aquí, su algoritmo comienza a ser más eficiente.

Una vez que haya dedicado algo de tiempo a eso, estará más listo para comenzar desde cero de nuevo y decidir si debe reducir la muestra o no, con qué método, etc. para alcanzar la seguridad y la eficiencia .

Para proporcionar alternativas, si decide comparar datos en el dominio de Fourier, puede emitir fácilmente dos señales con diferente longitud y frecuencia de muestreo al mismo número de coeficientes de Fourier, lo que ayuda a una comparación en el dominio de frecuencia.


14
La disminución de resolución casi siempre perderá información, incluso si no se realiza de manera imprudente. Sin embargo la información de perder podría ser en realidad una cosa sabia, así que ...
leftaroundabout

@leftaroundabout ¿En qué casos extremos el muestreo descendente no puede perder información?
Willem el

2
@leftaroundabout No estoy de acuerdo. La pérdida de información siempre es peor que conservarla. Lo único inteligente es saber qué información desechar para una mejor representación de la señal, no la pérdida de información en sí.
AlexTP

55
@Willem: como un caso extremadamente obvio, una señal de CC se puede reducir a una sola muestra. En general, cualquier señal que no tenga componentes por encima del (nuevo) límite de Nyquist puede reducirse de forma segura.
MSalters

1
Se puede argumentar que no se pierde información de una señal de CC a una señal de 1 muestra ya que puede volver a convertirla en una señal idéntica a la original de 1 muestra. Se puede argumentar que la información se pierde porque si le da la señal de 1 muestra a una persona sin más información y pregunta "¿Esto representa una señal de CC?" la respuesta será "No sé, no hay suficiente información con una muestra".
SE infringe los derechos de autor el

7

Si usa una función como plot (x, y), la forma más fácil de mostrarlos en el mismo gráfico es simplemente no volver a muestrear ninguno de ellos, sino simplemente llenar cada vector x con los valores adecuados para cada señal, de modo que ambos aparezcan donde quieres en la pantalla.

También puede configurar el gráfico para que tenga dos ejes x diferentes (uno para cada curva) con diferentes etiquetas y leyendas si lo desea.

Ahora, sobre remuestreo. Usaré Fs para la frecuencia de muestreo.

Una señal muestreada no puede contener componentes de frecuencia por encima de Fs / 2. Es ilimitado de banda.

Además, una señal que solo contiene componentes de frecuencia hasta una frecuencia F puede representarse con precisión a una frecuencia de muestreo de 2F.

Tenga en cuenta que esta representación "precisa" es matemática, no visual. Para una buena representación visual, tener 5-10 muestras por período (por lo tanto, no hay componentes de frecuencia notables por encima de Fs / 10 más o menos) realmente ayuda al cerebro a conectar los puntos. Vea esta figura: misma señal, la curva más baja tiene una frecuencia de muestreo más baja, no hay pérdida de información porque la frecuencia es más baja que Fs / 2 pero todavía parece una mierda.

ingrese la descripción de la imagen aquí

Sin embargo, es exactamente la misma señal. Si sobremuestrea (reconstruye) el que está en la parte inferior con un filtro de sinc, obtendrá el que está en la parte superior.

La decimación (disminución de resolución) plegará todos los componentes de frecuencia más altos que el nuevo Fs / 2 en la señal. Es por eso que generalmente ponemos un filtro de paso bajo pronunciado antes del decimador. Por ejemplo, para reducir la muestra de Fs = 2000 Hz a Fs = 30 Hz, primero aplicaríamos un paso bajo de alto orden con un corte un poco por debajo de 15 hz y solo luego diezmaríamos.

Sin embargo, este filtro introducirá problemas de respuesta transitoria, tendrá un retraso de fase a ciertas frecuencias y puede cambiar el aspecto visual de su señal, lo que no desea hacer si la idea es compararlos visualmente. La regla anterior se aplica, no reduzca demasiado la muestra, mantenga siempre Fs como 5-10x la frecuencia más alta de interés si desea que la forma de la señal signifique algo. Es por eso que un alcance de 200MHz necesita muestrear a 1-2 Gsps.

Mi pregunta es: ¿es más inteligente reducir la segunda curva o aumentar la primera?

Como se dijo anteriormente, lo más inteligente es no meterse con los datos y simplemente presentarlos con su propio eje x en el mismo gráfico.

La conversión de la tasa de muestreo sería necesaria en algunos casos. Por ejemplo, para reducir el número de puntos, reducir el uso de memoria, hacerlo más rápido ... o hacer que ambas señales usen las mismas coordenadas "x" para realizar cálculos en ellas.

En este caso, también puede usar un Fs intermedio, reducir la señal con Fs altas y aumentar la muestra con Fs bajas. O simplemente reduzca la muestra con una F alta.

Tenga en cuenta los criterios de Nyquist, y no elija una frecuencia de muestreo demasiado baja o perderá la fidelidad de la forma de onda en la señal Fs alta, obtendrá cambios de fase debido al filtro de paso bajo, etc. O si conoce el contenido de alta frecuencia es insignificante, puede tomar una decisión informada. yo

Si usa la interpolación lineal para hacer coincidir las coordenadas "x", recuerde que también necesita una Fs bastante alta. La interpolación funcionaría en la señal superior de la gráfica anterior, no funcionaría en la de abajo. Lo mismo si estás interesado en min, max y tal.

Y ... tenga en cuenta que el sobremuestreo / sobremuestreo también alterará la respuesta transitoria, al menos visualmente. Por ejemplo, si sobremuestrea un paso, obtendrá muchos timbres debido a la respuesta al impulso del filtro de sinc. Esto se debe a que obtienes una señal de banda ilimitada, y un buen paso con esquinas cuadradas en realidad tiene un ancho de banda infinito.

Tomaré una onda cuadrada como ejemplo. Piensa en la señal muestreada original: 0 0 0 1 1 1 0 0 0 1 1 1 ... Tu cerebro ve una onda cuadrada.

Pero la realidad es que debes imaginar cada muestra como un punto, y no hay nada entre los puntos. Es todo el punto de muestreo. No hay nada entre las muestras. Entonces, cuando esta onda cuadrada ha sido sobremuestreada usando una interpolación sinc ... parece graciosa.

ingrese la descripción de la imagen aquí

Esto es simplemente la representación visual de una onda cuadrada de banda ilimitada. Los meneos existen ... o tal vez no. No hay forma de saber si estaban allí en la señal original o no. En este caso, la solución hubiera sido adquirir la onda cuadrada original con una frecuencia de muestreo más alta para obtener una mejor resolución en el borde, idealmente desea varias muestras en su borde para que ya no se vea como un paso de ancho de banda infinito. Luego, al sobremuestrear dicha señal, el resultado no tendrá artefactos visuales.

De todas formas. Como puedes ver ... solo juega con los ejes x. Es mucho mas simple.


4

La disminución de resolución pierde información. El muestreo ascendente no tiene pérdidas cuando el factor es un entero (tomado también recuerda el factor), pero parte de la información se pierde cuando el factor no es un entero. El muestreo ascendente podría perder teóricamente más información que el muestreo descendente, para factores de muestreo muy específicos.

¿Cuál deberías usar? Depende del nivel de certeza que necesite.

Si no necesita certeza matemática y solo desea una heurística, la disminución de muestreo es más rápida y el muestreo superior es más preciso .

Si necesita poner límites a la precisión de su cálculo: es posible pero no puedo ayudarlo con eso.


+1, porque logró exprimir algunos datos importantes en una respuesta muy concisa.
dsp_user

3

Depende de lo que quieras decir con "comparar" y "más sabio". Lo mejor, que no es difícil en Matlab, es hacerlo en ambos sentidos y decidir por ti mismo.

En realidad, si modificara su pregunta con los resultados de ambos enfoques, votaría su pregunta y más personas lo encontrarían interesante, y muy probablemente ayudaría a descubrir "comparar"


1

Me gustaría señalar un problema que tiene lugar al realizar el muestreo ascendente que podría ser crucial en esta operación. Cuando se muestrea una señal y los puntos finales de los datos están lejos de los valores cero, se produce el efecto de borde . En experiencias prácticas, este efecto no deseado debe ser eliminado. Comparto con esta comunidad un breve ensayo con imágenes y código que escribí sobre él que podría ayudar a comprender.

https://medium.com/@davidpinyol91/edge-effects-when-resampling-a-signal-on-matlab-how-to-solve-it-cc6458ab1306

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.