7 votos

Contrarrestar la tarjeta de sonido AC acoplamiento para la lectura de datos digitales

Descargo de responsabilidad: soy nuevo en los EE. Todo lo que he aprendido hasta ahora me han enseñado a mí mismo de la lectura en línea y la publicación de preguntas como esta mientras se trabaja en este proyecto. Me disculpo si he de hacer un buen trabajo de explicar mi problema, como yo, probablemente, la falta de los conocimientos técnicos para hacerlo correctamente.

Estoy tratando de leer dos medidores de flujo a través del puerto mic de un teléfono/tablet. Los medidores de flujo pulso pines alternar entre +0V y +5V como sus molinillos de girar.

Estoy utilizando el siguiente esquema para mezclar las señales de los dos medidores de flujo y enviar a través de un micrófono del puerto:

schematic

simular este circuito – Esquema creado mediante CircuitLab

Puedo mezclar los dos impulsos pines juntos utilizando un R-2R. Esto me permite ver por cambios de voltaje y saber que uno de los dos medidores de flujo cambia de estado basado en la magnitud del cambio de voltaje. Por ejemplo, si yo veo a un cambio de voltaje de 2.5 V, sé que el medidor de flujo 1 se ha convertido en. Si yo veo a un cambio de voltaje de -1.25 V, sé que el medidor de flujo 2 se ha apagado. Yo, a continuación, utilizar un divisor de voltaje a la caída de la tensión dentro de la tarjeta de sonido del rango de voltaje.

La tarjeta de sonido es de CA junto y convierte los cambios de tensión en un cambio de amplitud con una fórmula algo como amplitude change = (voltage change)/(voltage range). El acoplamiento CA lentamente tira de la amplitud de vuelta a 0 así. Así que si mi tarjeta de sonido de PC tiene un rango de voltaje de 2V, y los medidores de flujo que causa un cambio de voltaje de -1.5 V, he leído a través del puerto mic, un cambio de amplitud de la -1.5V/2V = -0.75. Mi algoritmo considera que este cambio de amplitud y, con base en algunos de los umbrales, determina si fue causada por el medidor de caudal de 1 o 2. Esto se puede ver en estas capturas de pantalla de mi programa Java que se ejecuta en mi PC:

Raw de la lectura de la señal de PC micrófono del puerto: PC flow meter signal

Programa resaltando detectado medidor de flujo de cambios de estado: PC flow meter signal state change detection

Como se puede ver, el programa es éxito la identificación de medidor de flujo de los cambios de estado; de menor amplitud cambios son causados por el medidor de flujo 1 y la mayor amplitud de los cambios son causados por el medidor de caudal de 2.


Los problemas comienzan cuando se envía la misma señal a mi Galaxy Note 8 tablet Android. Aquí es lo que la señal se ve como cuando se lee a través de la tablet micrófono del puerto: tablet flow meter signal

Tenga en cuenta que toda la amplitud del cambio que se ha visto anteriormente, son causados por el mismo cambio de voltaje (todos los cambios de estado son de la misma medidor de flujo). En solitario o poco frecuentes cambios de tensión aparecen como una amplitud muy pequeña cambios mientras estrechamente agrupados cambios de voltaje (de la misma magnitud) aparecen como de mayor amplitud de los cambios, y más cerca de lo que yo esperaría. Parece que cuanto más se acerca el cambio de voltaje es para otros cambios de voltaje, mayor será la amplitud del cambio que crea.

Aquí está lo que he leído de mi PC micrófono del puerto y de lo que yo esperaría. Observe que todos los de la amplitud de los cambios son de aproximadamente la misma magnitud: PC flow meter expected signal

Se esperaba: Un cambio de voltaje de 1.5 V o -1.5 V siempre debe provocar un cambio de amplitud de 0.75 o -0.75.
Real: Un solo cambio de voltaje de 1.5 V o -1.5 V provoca un cambio de amplitud de 0.1 o -0.1. Una serie de 10 cambios de voltaje de 1.5 V y -1.5 V en corto secesión causa de la amplitud de los cambios de 0,75 y -0.75.

Esta contradicción hace que sea imposible para mi algoritmo para identificar que el medidor de caudal de un cambio de amplitud fue causada por. ¿Por qué estos cambios de voltaje a causa de esas pequeñas amplitud de los cambios? Hay alguna manera de hacer que la amplitud de los cambios siempre son consistentes con los cambios de voltaje?

También, en lugar de la señal bajando lentamente de nuevo a 0 me gusta esperar de acoplamiento CA (y visto en la lectura de la señal a través de mi PC del puerto de audio), parece caer hacia 0 inmediatamente y oscila en un par de veces, antes de asentarse finalmente de nuevo a 0. La oscilación añade una gran cantidad de ruido a la señal y hace que sea difícil determinar si un cambio de amplitud fue causado por un cambio de voltaje o es simplemente una oscilación de volver a 0. Es allí una manera de eliminar estas oscilaciones?


Lo siento por la novela corta y gracias por cualquier consejo,
- Mike

5voto

Dwayne Reid Puntos 11286

La manera más fácil para superar el acoplamiento CA es convertir sus señales DC a AC. Parece lógico, ¿no?

Un método simple es simplemente cortar su señal de entrada en algunos frecuencia nominal. En algún lugar entre 500 Hz a 1 KHz parece razonable.

Lo que el viento es una señal de corriente ALTERNA (onda cuadrada) de cualquiera que sea la amplitud de su original de DC de la señal.

Hay varias maneras sencillas de hacer esto.

1) El método más simple es utilizar un CMOS de 555 temporizador de tales TLC555. No estoy en mi pc ahora mismo, pero voy a entrar en un esquema cuando llego a casa. Pero una descripción verbal de la siguiente manera:

Conecta los pines 2 y 6 juntos y su condensador de temporización. Temporización resistor se conecta entre los pines de 2/6 y el pin 3. Los pines 4 y 8 ir a la fuente de alimentación (de 5 a 15 Vdc). Pin 1 va al suelo.

Conecte su entrada DC de la señal a través de una resistencia de 4,7 k a 555 pin 7. Este pin también se alimenta de la entrada analógica en su ordenador.

Elegir el momento la red de RC para la frecuencia deseada.

Hecho. . .

Hay otro helicóptero métodos pero este es muy simple y barato.

[Editar]

En la re-lectura de la pregunta inicial y los posteriores comentarios y respuestas - voy a cambiar mi respuesta ligeramente.

Debido a que usted está enviando pulsos (no DC niveles) de la variación de la amplitud del smartphone / PC, voy a sugerir que usted desea para tratar el corte de la señal como un portador. Por lo tanto, se establece que picar una frecuencia bastante alta por encima de los 10 KHz, pero por debajo de 20 KHz. No sé cómo afilados los filtros anti-aliasing en moderno ordenador / smartphone entradas analógicas, pero creo que quieren estar bien claro de ellos. Tal vez usted puede conseguir el corte de frecuencia de hasta 16 o 18 KHz - sinceramente, no lo sé.

Luego simplemente hacer una detección de envolvente esquema en el software para recuperar el original de DC las amplitudes de la señal.

Aquí está el esquema que se lo he prometido anteriormente. Tenga en cuenta que esto funciona bien con un CMOS de 555 temporizador - no uno de los bipolar original de las piezas. TLC555 es mi estándar 555 temporizador.

Pin 7 obras para cortar la señal de entrada porque es un drenaje abierto de salida. Nos tomamos nuestro tiempo, de la retroalimentación de la salida (pin 3) - esto funciona bien porque el Pin 3 es simétrica CMOS de salida Vsal-HOLA a nivel aproximadamente igual a Vdd y Vsal-LO nivel sobre igualdad de Vss.

Ninguna de estas características es posible si se utiliza un bipolar original 555.

schematic

simular este circuito – Esquema creado mediante CircuitLab

0voto

brianpeiris Puntos 7693

Una pregunta excelente, la presentación y el contenido. Y su análisis de cómo conseguir lo que quieres de un mono canal de entrada es admirable.

Sospecho que el problema es que el filtrado de tiempo constante de que el teléfono es más corta que la de la PC (es decir. el teléfono de baja frecuencia de corte es superior a la de los PCs), y eso es probablemente porque acoplamiento CA topes de espectro completo 20-20kHz audio tienden a ser relativamente grande, más grande que probablemente iba a encajar cómodamente en un teléfono. Voy a apostar el dinero, el teléfono, o bien tienen una menor sensibilidad a la baja frec (una especificación probablemente nunca la verás publicada por teléfono), y que podrían hacer que algunos de gama baja impulso para tratar de compensar esta realidad.

Creo que estaría de vuelta en la pista para el primer proceso de su sensor de datos en una toma de CA compatible con el esquema de modulación, como Dwayne sugerido.

0voto

WhatRoughBeast Puntos 20870

La respuesta rápida es no. Usted está viendo dos efectos diferentes.

El Android de entrada de micrófono es, en efecto, CA acoplada, pero la frecuencia de corte es mucho mayor que el sensor de frecuencia. Ya que no proporciona ninguna información sobre el tiempo de bases para las diferentes trazas, es imposible dar cifras exactas en cuanto a lo que la respuesta en frecuencia de los Android de entrada es igual.

El PC también tiene una baja frecuencia de corte es demasiado alta, pero es un poco más cerca de su sensor de datos de Android. Además, tiene una impedancia de entrada de aproximadamente 1 kilohm, que es la carga de su red de resistores y causando la baja amplitud.

No hay manera práctica de trabajar en torno a los efectos de acoplamiento CA (se nota que me dijo práctico - se podría construir un preemphasis filtro, pero no creo que quiera ir allí.) El PC impedancia de entrada puede ser compensada por la construcción de un buffer con un amplificador de op amp.

0voto

Sarah Puntos 33

Si todo lo que se hace para que la señal es un controlador de filtro de bloqueo (es decir, un filtro de paso alto) que, en principio, puede recuperar la señal original por la integración. Este método es susceptible a la amplificación de ruido y puede divergir fácilmente si sus constantes no son cuidadosamente seleccionados, pero es teóricamente posible.

La buena noticia es que usted no tiene que reconstruir la señal original. Mientras que los pulsos pueden ocurrir con muy poca frecuencia, que son, en principio, sólo interesado en el flanco ascendente o descendente, que es en sí mismo un componente de alta frecuencia, y se graba bien, incluso si el voltaje cae a cero.

La mala noticia es que parece que a otros efectos que el de un simple bloqueo de DC filtro están en juego aquí. No puede ser de AGC (control automático de ganancia) o intentos de cancelación de ruido presentes, especialmente en el Android de la señal, lo cual podría explicar la lenta transmisión de la amplitud. Uno de StackOverflow respuesta sugiere que estas cosas no pueden ser apagados, mientras que un comentario a la respuesta sugiere que el VOICE_RECOGNITION constante se supone que dan la cruda flujo de audio, pero no siempre se puede hacer eso. Tal vez hay circuitos analógicos en la tablet que simplemente no se puede apagar.

Usted puede desear reconsiderar el esquema de modulación por completo. Similar a la de Dwayne de la respuesta, usted podría considerar la creación de un 555 o de otro circuito para producir un breve chirrido, o tren de pulsos, en cada pulso, a diferentes frecuencias para los dos sensores. Los pulsos pueden entonces ser detectado mediante el análisis de la señal en software usando filtros de paso de banda en las dos frecuencias seleccionadas. El detector, a continuación, busca un pulso en la frecuencia especificada más allá de un cierto umbral, y cuenta que como un pulso del sensor correspondiente. Este debería ser un esquema sólido, que no depende de la absoluta amplitudes de la señal.

Las frecuencias debería, idealmente, ser elegido tal que la parte superior de la frecuencia no es un armónico de la inferior, con lo que puede producir lecturas falsas. Un temporizador 555 se crean por defecto salidas de pulsos, pero los resultados podrían ser individualmente baja pasó a eliminar algunos de sus matices, si es necesario. DTMF , por ejemplo, utiliza frecuencias espaciadas por un factor de 1.1.

La frecuencia y la duración, además, deben ser escogidos para ser tal vez un orden de magnitud mayor, y menor, respectivamente, de la forma más rápida de salida del sensor, para evitar que un nuevo tren de pulsos se inicia antes, o demasiado cerca cuando el anterior se ha terminado.

Como alternativa, puede utilizar un esquema de modulación de frecuencia, una vez más similar a DTMF, donde el estado del sensor modula la frecuencia de un oscilador, que puede ser detectado mediante un filtro de paso de banda, como se sugirió anteriormente. Esto tiene el beneficio añadido de dar una onda portadora que está siempre encendido, lo que permite detectar si un sensor está conectado a todos.

Si usted va para un borde activa esquema, usted puede conseguir lejos con un solo disparo de un chirp en pulsos positivos, que deben recibir una ligeramente más sencillo circuito disparador, y una más de indulgencia en la frecuencia de elección, ya que los pulsos son ahora más lejos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X