Quiero comparar dos señales o curvas.
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.
resampling
Nelson Naranja
fuente
fuente
Respuestas:
En breve:
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:
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.
fuente
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.
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.
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.
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.
fuente
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.
fuente
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"
fuente
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
fuente