Transmisión de voz con PIC (PCM)

El proyecto consiste en trasmitir voz de un pic a otro pic!!! :unsure:
primero debemos de tener claro la trasmicion, en este caso digital.

PROCESO MODULACIÓN PCM

Codificación Analógica-Digital Modulación de Amplitud de Pulso(PAM)
Modulación PCM
Tasa de prueba

la trasmicion digital es la trasmicion de pulso digitales, entre dos puntos, en un sistema de comunicación, la información de la fuente original debe estar ya sea en forma digital o en señales analógicas que deben convertirse a pulsos digitales.

la modulación de pulsos incluye muchos métodos diferentes para convertir información a forma de pulsos para transferir pulsos de una fuente, los cuatro métodos predominantes son modulación de ancho de pulso(PWM) modulación de amplitud de pulsos(PAM) y modulación de pulsos codificados(PCM)

PAM:
Esta técnica recoge información análoga, la muestra (ó la prueba), y genera una serie de pulsos basados en los resultados de la prueba, es un tipo de modulación de impulsos en los que la información está codificada en la amplitud de un pulso.
Dibujo11.bmp


PCM modifica los pulsos creados por PAM para crear una señal completamente digital. Para hacerlo, PCM, en primer lugar, cuantifica los pulsos de PAM. La cuantificación es un método de asignación de los valores íntegros a un rango
000056192.png


Muestreo Técnica mediante la cual se toma valores instantáneos de una señal análoga a intervalos de tiempo como las señales análogas tienen información redundante por esa razón se pueden tomar muestras que son las que se trasmiten.

Teorema de Nyquist o teorema de muestreo: lo primero que se debe hacer es limitar la frecuencia de la señal que se va a muestrear con un filtro pasabajo esto se denomina limitar la señal en banda para obtener la frecuencia máxima de la señal, podemos recuperar la señal limitada en banda a partir de sus muestras si estas se toman a intervalos de tiempo ts(tiempo de muestreo) y se debe cumplir:

ts<=1/2fm
fm = frecuencia máxima de la señal de información
fx>=2fm
para garantizar el funcionamiento
fs<2fm+25%fm
en resumidas cuentas el teorema demuestra que la reconstrucción exacta de una señal periódica continua en banda base a partir de sus muestras, es matemáticamente posible si la señal está limitada en banda y la tasa de muestreo es superior al doble de su ancho de banda. Es un error frecuente y extendido creer que una misma señal muestreada con una tasa elevada se reconstruye mejor que una muestreada con una tasa inferior.

Tendiendo los conceptos claros podemos empezar por la parte de adquisición de la señal con lo que utilizaremos un eletret. el circuito es muy fácil como se observa en la gráfica.
circuito.gif

V+ en este caso sera 5V, ya que los necesitamos tambien para el pic ;)

FILTRO
segun lo anteriormente dicho, el siguiente paso es limitar la señal en banda, :aplauso: para lo cual necesitamos conocer la frecuencia de la voz, dicha frecuencia tiene un máximo aproximado de 3.4Khz en telecomunicaciones se suele filtrar la señal de voz con un filtro pasabajos a 4Khz especialmente en las comunicaciones telefónicas, por ello vamos a diseñar un filtro a esta frecuencia :apreton:
para el filtro pasabajos vamos a utilizar un operacional LF353 alimentado con +12 y -12, los +12 se conectan a el pin8 y los -12 al pin4 este integrado cuenta con dos operacionales donde el pin 1 es la salida del primero, el pin 2 es la entrada inversora del mismo y el pin 3 la entrada no inversora, por el otro lado tenemos que el pin 7 es la salida, el pin 6 es la entrada inversora y el pin 5 la entrada no inversora, teniendo esto claro pasamos al diseño del filtro inversor. donde
R1=R2=2K
R3=1K
C1=22nF
C2=10nF
images


en este punto es donde nos preguntamos, como metemos la señal al pic si la señal tiene parte negativa, con esto nos cargamos el pic ademas de que la amplitud puede superar los 5 voltios del pic :eek:

bueno por ahora la señal es bastante baja ya que el filtro no tiene una ganancia como tal.:confused:

si entendieron sabrán que la señal va entrar por el conversor análogo-digital del pic.

Amplificación
en esta parte vamos a hacer una amplificación para que la señal nos quede con una buena amplitud para que esta entre en el pic, es un circuito muy simple donde utilizaremos el otro operacional del LF353 colocaremos una resistencia a la entrada de 1K y un potenciómetro, como resistencia variable de maximo 500K entre el pin de entrada inversora y la salida y el pin de entrada no inversora lo ponemos a tierra, esto nos sirve para cuadrar que tan cerca se esta del eletret.

Ahora si tenemos una señal que va a ser capturada en un mayor rango, ya que con esto podemos hacer que la señal ocupe todos los bits del conversor análogo-digital pero tenemos el problema que tiene una parte negativa y que aun así la amplitud puede aumenta. para esto vamos a usar un operación LM358. cual es la diferencia con respecto al otro? pues nada :LOL: bueno la diferencia mas importante es que este se puede alimentar con +5 y tierra, la distribución de los pines es la misma, para que lo alimentamos con +5 y tierra, pues para que este no pueda generar una salida mayor a 5 ya que esa es la alimentacion en caso de ser mayor se saturaría y la salida seria 5V y en caso de ser menor pasaria lo mismo la señal no bajaría menos de 0V.

con esto solucionamos el problema de no ir a dañar el pic, pero aun asi la señal tiene una parte negativa, para esto simplemente usamos este operacional como sumador:aplauso:
necesitamos que la señal no este sobre 0V si no que este sobre 2.5V.

Tenemos que la formula del sumador es
-Vo=RF/R1+R/R2+R/RN
AO+6.png

vale la pena aclarar que si la salida esta invertida no tendrá ningún efecto sobre el sonido.

vamos a usar RF=R1=R2=1K
por una resistencia entra la señal de audio y por la otra conectamos un trimmer o potenciometro entre 5v y 0V y lo configuramos para que el voltaje sea 2.5 entre el pot y la resistencia de 1K.
como tenemos un operacional sin usar, a este le podemos dar algún uso, como por ejemplo colocar un filtro pasivo y un seguidor de voltaje, no es necesario pero nos ayudaría a eliminar ruido.

CAD
en esta parte ya tenemos la señal lista para ser ingresada por ADC del pic. que va a hacer la que muestre la señal. el dato tiene que llegar al otro pic a una frecuencia superior a 8Khz por el teorema de muestreo, para este proyecto en particular decidí usar un conversor a 10bits con el fin de obtener el mejor sonido posible y pues para cumplir con dicho teorema voy usar un pic18f4550 un cristal de 20Mhz porque no tengo de ningún otro ;) y configurar el pic con un reloj de 48Mhz esto lo hago no por superar los 8Khz ya que como vimos no importa si es mayor al doble la señal va a ser la misma, solo lo hago porque no voy a hacer los cálculos que demora la captura del dato el envio y todo eso, con esto garantizo que se cumpla el teorema. (adjunto el codigo). hecho en picc compiler

La comunicación entre los pic es I2C los dos pic son 18F4550 ambos a 48Mhz de igual manera se puede usar otros y otras frecuencias de reloj siempre y cuando se cumpla el teorema.

RECEPCIÓN
en esta parte en la que el dato nos esta llegando constantemente, vamos a convertir esa señal analógica en una señal digital, lo que seria un conversor digital-análogo, la forma mas simple y efectiva de hacer esto es con un sumador!!! en el programa podemos ver que el dato es mostrado por dos puerto.

usamos un sumador inversor como ya lo hicimos antes, el porque solo utilizo inversores, es porque en la practica he visto que responden mejor que los no inversores para este sumador usamos las siguientes resistencias
1K 2k 4k 8k 16k 32k 64k 128k 256k 512k
si no tenemos estas resistencias pues usamos trimmers, la rs es aconsejable usar un trimmer y cuadrar que cuando el pic envie 5V la salida sea 5V y por ultimo podemos usar otro sumador y bajar la seña para que quede sobre 0V esto hace que tenga mejor sonido igualmente no es necesario en esta parte ya solo queda amplificar la señal!! :)

por ultimo podemos colocar un filtro pasivo pasabanda, un filtro pasaaltos en serie con uno pasabajos, que viene dado por la ecuacion Fc=1/2pi*C*R
con esto tenemos que el pasaaltos seria mas o menos un condensador de 100 nF en serie con una resistencia de 51K y el pasabajos una resistencia de 3.8K en serie con un cap de 10nF, esto con el fin de que nuestra señal quede lo mas sinusoidal posible

Este proyecto fue montado y probado funciona 100% desde Bogotá
U. Distrital PTE
 

Adjuntos

  • Trasmicion de Voz.zip
    97.6 KB · Visitas: 558
Última edición:
Hola, tengo una duda, sobre el tema voz con pic, muy interesante.
Te pregunto, se podria hacer un modulo que se contecte al celular y poder contectar con otro celular y este tambien con su modulo

modulo = comunicacion(pic)

hablar <------------------------------> hablar
modulo1 --> celular 1 <--> celular 2 <-- modulo2

Es decir utilizar el modulo como medio para hablar haciendo uso del celular.
Sabes si hay modulos hechos o para montar kits ?
Muchas gracias de antemano y saludos desde Sevilla.
 
el compilado es pic c, y en cuanto a los modulos si se puede siempre y cuando se respete teorema de nyquist, para este caso yo use solo i2c por facilidad, pero hubiera sido mas interesante usar algo inalambrico, como modulos rf, entre otros aunque no se bien a que modulos te refieres o mejor que es lo que pretendes jeje ;)
saludos!!!
 
Hola muy bueno tu post yo estoy haciendo tambien un transmisor de voz pero quiero hacer una comunicacion full duplex, se puede hacer una comunicacion full duplex de voz entre dos pics?? alguien que tenga un ejemplo de esto aglun link se lo agradezco. Saludos
 
Sugiero una idea para reducir la cantidad de componentes y poder hacer todo más pequeño.
El circuito modificado queda como muestro en la figura.
La resistencia del preset es un poco menos de 10 k por la caída entre emisor y colector.
Para medir el valor exacto se debe poner la entrada en corto (o simplemente no hacer ruido)
e ir moviendo el tornillo del preset hasta medir V/2 en la salida.
Una vez logrado esto se mide la resistencia del preset y se lo reemplaza por una R fija de
ese valor.
Si la salida se toma del emisor se obtiene una señal idéntica a la de colector pero con la fase contraria.
 

Adjuntos

  • Circuito2.JPG
    Circuito2.JPG
    9.5 KB · Visitas: 123
Última edición:
Hola ASherar.

segun entiendo el diseño original es utilizar un pre con el BJT 2n3904-> filtro con el LF353->Amplificador con LF353->Sumador con LM358->ADC Pic

con la mejora que propones que es lo que se reduce?
 
Claro. Además del circuito que propuse habrá que poner el filtro que convenga.
Aparte de eso, se obtiene una señal lineal entre 0 y 5 V, perfecto para el pic.
No recuerdo el LF353 pero algunos operacionales no dan el rail-to-rail.
En estas aplicaciones se suele trabajar con pequeña señal, por lo que
perder 0.5 V de rango dinámico en cada extremo no es grave.
 
Última edición:
La forma de polarización del circuito inicial, hace que el circuito sea menos sensible a las
variaciones de temperatura debidas al funcionamiento normal.
En el circuito que propuse la polarización es fija, y entonces ya no autocompensa las
derivas térmicas.
Ahora, si estas variaciones térmicas son pequeñas el punto de trabajo se mueve poco y
se mantiene en la zona lineal del transistor.
Si el punto de trabajo se corriera demasiado, o si se tuviera señal de entrada con mucha
amplitud, se produciría distorsión.
Pero para un mic. electret no creo que sea el caso.

Yo he usado ese circuito para señal no acústica (frecuencia < 100 Hz).
En ese rango da un punto medio perfectamente ajustable, que es lo que propuse.
No me puse a jugar con otras variables.

EDITADO:
La resistencia que puede sacarse es la de base a tierra de 100k, ya que de base a emisor
hay una tensión fija Vbe, y entonces Vb se puede ajustar solamente desde el preset.
 
Última edición:
Muy buen proyecto; Ademas, lo bueno de todo esto, es que distes los pies para arrancar otros proyectos con esta misma base teorica... Por ejemplo, se me ocurre que se puede emplear para armar un pequeño chip corder... puliendo un poco la manera de guardarlo en una meoria serial y luego como sacarlo creeria que no estaria muy lejos el tema... Saludos
 
Este circuito es ideal para centrar y amplificar una señal de audio de baja amplitud.

Vsal = 2.5 V + G x Vin

G es aprox. de 30.000 veces

Tomado del "Libro de cocina de CMOS" de Don Lancaster.

The Hardware Hacker Library

Asherar, imagino que ese amplificador podria funcionar, pero... no estaria mejor si se aprovechara y se diseñara un filtro no inversor con alguna ganancia y asi quedar el pre->Filtro->ADC Pic.
o quizas el filtro con la señal invertida tomada del emisor del pre y amplificarlo con el mismo AO del filtro. si no me doy a entender subo un esquema.:D

P.D. Disculpa si lo que digo es una burrada pero estoy en mis primeros pasos en cuestiones de audio.
 
Última edición:
y como quedaria el circuito final de todo este proyecto???
Eso quedará según tus necesidades. Nadie va a terminar el proyecto aquí.

Asherar, imagino que ese amplificador podria funcionar, pero... no estaria mejor si se aprovechara y se diseñara un filtro no inversor con alguna ganancia y asi quedar el pre->Filtro->ADC Pic.
o quizas el filtro con la señal invertida tomada del emisor del pre y amplificarlo con el mismo AO del filtro. si no me doy a entender subo un esquema.:D

P.D. Disculpa si lo que digo es una burrada pero estoy en mis primeros pasos en cuestiones de audio.
El ampli que subí es una joyita. Anda perfecto para la etapa de entrada. Luego acondicionas (amplificas y filtras) la señal como más convenga.
 
Última edición:
compañero también soy de la distrital y también tengo que hacer el modulador pcm sera que me puedes pasar información que te haya sido útil al momento de desarrollar este laboratorio.!
 
buenas saludos, no soy bueno en programación y le planteo mi problemática: realice el acondicionamiento de adquisición de voz desde (80hz a 4khz), de allí usando pic c compiler tengo que convertir esa señal analógica a digital usando un micro-controlador 18f4550 a su vez quiero tener dos frecuencia de muestreo, es decir ver las dos desde el micro controlador (11.025khz que son 88kbps y 22.050khz que son 166kbps), de allí procesar todo esto a través del protocolo rs232 y observar esas muestras en tiempo real en matlab? gracias por su atención espero me colaboren para finiquitar este proyecto lo mas pronto posible.
les mando la etapa en de acondiconamiento en proteus y lo poco que he echo en pic c compiler

aquí los archivos adjuntos
 

Adjuntos

  • simulacion.rar
    111.1 KB · Visitas: 30
  • pic 450.rar
    113.8 KB · Visitas: 26
Última edición:
Atrás
Arriba