Señal a la toma de audio de un teléfono inteligente

2

Tengo una onda cuadrada de 3.3 V que consiste en grupos de 5 pulsos a 12.5 kHz y 15.625 kHz. Cada grupo de 5 pulsos representa un 1 o un 0. Me gustaría que esta señal se transmita a un teléfono inteligente a través de la entrada del micrófono.

Por lo que he leído (corríjame si me equivoco), el voltaje tendrá que bajar a unos pocos mV, la señal deberá estar conectada a CA. ¿Podrá el teléfono diferenciar constantemente entre las frecuencias o será necesario algún tipo de cambio de frecuencia?

¿Qué circuitos se recomendarían para realizar esta tarea?

    
pregunta Fikes

2 respuestas

0

Un simple divisor de voltaje reducirá el voltaje, aunque exactamente qué valores de resistencia usar para ser óptimos para su teléfono dependerá - los niveles de entrada de los teléfonos están lejos de ser estandarizados. Usaría un potenciómetro y lo giraría hasta que estuviera dentro del rango.

Para detectar los pulsos de entrada, puede usar técnicas basadas en FFT como se explica en otros comentarios y respuestas. Aquí hay una introducción detallada sobre cómo hacer eso con C código.

Sin embargo, exijo precaución con este enfoque, ya que está detectando altas frecuencias, necesitará una alta frecuencia de muestreo, lo que resultará en una alta sobrecarga de cómputo. Este problema se puede resolver con algoritmo de Goertzel en lugar de la FFT, pero todavía tiene un problema que con solo 5 5 pulsos Necesitas una buena resolución de tiempo. Esto también se puede resolver con la superposición frecuente de sus ventanas, pero al final creo que debería usar una técnica diferente:

  1. contando el número de veces que la señal cruza cero. Con un poco de preprocesamiento (un filtro de paso de banda sintonizado en el rango de sus frecuencias esperadas) esperaría que fuera más fácil obtener resultados sólidos con esa técnica más simple.

  2. Otro enfoque, que imita cómo se haría esto en el dominio analógico, es simplemente diseñar dos filtros de paso de banda y monitorear la salida de esos. Esto puede requerir un poco de procesamiento posterior, pero creo que esto produciría excelentes resultados.

Es difícil decirlo con seguridad, pero probablemente me inclinaría hacia la técnica # 2. Depende de algunas cosas que no quede clara en su pregunta, por ejemplo, ¿es probable que los tonos aparezcan al mismo tiempo (en caso afirmativo, use el número 2), siempre escuchará un tono u otro, o algunas veces? silencio, etc. Si era probable que la especificación cambiara y tuviera que diferenciar entre los tonos que estaban muy cerca en frecuencia, me inclinaría hacia el # 1.

Si necesita ayuda para diseñar filtros, este podría ser un buen lugar para comenzar .

    
respondido por el Bjorn Roche
0

La provisión de circuitos de audio en los teléfonos tiene el ancho de banda / frecuencia de muestreo para tratar con > 15.625 kHz, y suponiendo que su código de detección de frecuencia esté bien, entonces la detección de tonos tan alejados no debería ser un problema en absoluto. Hay un montón de fragmentos de código y la teoría detrás de ellos alrededor de la red si miras a tu alrededor un poco. Un buen lugar para comenzar su búsqueda de código sería el firmware de tono de tono (DTMF, por sus siglas en inglés); en teoría, busque cosas como correlación y FFT.

Asegúrese de confirmar el ancho de banda de su teléfono en particular, es posible que deba reducir las frecuencias involucradas si esto es una posibilidad para su proyecto.

Hay un buen ejemplo introductorio de una técnica simple de detección DTMF de Olin en esta pregunta . Cualquier libro DSP decente tendrá mucho más sobre el tema.

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas