desktop

¿Por qué balancear una señal RF?

Si pones un tono de 6kHz, AM comercial no lo puede reproducir, FM, si. La fidelidad de un sistema de audio se define como su capacidad para reproducir todos los tonos de 20 a 20kHz, no podes comparar un tono en una freq. determinada. Mas aun, en AM, el ruido a la salida es directamente proporcional al ruido en el canal. En FM, hay un rechazo del ruido en el canal, por el cual pagas con mucho mayor ancho de banda... pero incluso un tono de 1kHz es reproducido con mayor fidelidad en FM que en AM (por arriba del umbral de FM).

Por otra parte, para volver al tema de modulaciones y protocolos, encontre este otro reporte sobre comparacion de OOK, ASK y FSK, usando Manchester!

http://www.atmel.com/Images/doc9174.pdf

El tema no es nada simple, ya que por un lado, ASK tiene mucha mejor sensibilidad que FSK. Por otra parte, FSK entrega el mismo BER que ASK, pero para niveles de sensibilidad mucho menores.

Ahora, si cosme tiene modulos que solo implementan OOK o ASK, segun el informe de Atmel, usar Manchester en ASK deberia mejorar muchisimo la sensibilidad (en unos 6dB), y si no me equivoco, si aumenta la sensibilidad... aumenta el alcance del enlace.
 
Última edición:
Eso que vos definís es alta fidelidad, y está referido música. Pero no voy a entrar en discusiones intrascendentes que no ayudan en nada al tema.
La sensibilidad de un receptor es una cualidad del hardware, no del software. La sensibilidad con respecto al BER es otra cosa.
Pero como dije, ya no tengo más ganas de discutir cosas que no vienen para nada al caso.
 
No veo cual es el problema en discutir, justamente para eso es un foro.

Los puntos que trato de subir para mi son muy trascendentes, estamos hablando de alcance de un enlace, y para mi ese alcance esta determinado por muchos factores, que incluyen el tipo de modulacion y al parecer, tambien el protocolo, segun el informe de Atmel. Los ejemplos que di de AM y FM fueron solo para mostrar una aplicacion casi obvia hoy en dia del teorema de Shannon, que permite lograr mayor distancia en el enlace "gastando" mas ancho de banda en la transmision, sin aumentar la potencia de transmision.

Y si estamos hablando de transmitir datos digitales, una manera de evaluar el alcance del enlace es ver a que distancia logro un determinado BER.

En conclusion, y segun el informe de Atmel, usar AFK con Manchester podria mejorar el alcance del enlace... que es justamente lo que queria cosme (y que era tambien su idea original).
 
...

Por otra parte, para volver al tema de modulaciones y protocolos, encontre este otro reporte sobre comparacion de OOK, ASK y FSK, usando Manchester!

http://www.atmel.com/Images/doc9174.pdf

El tema no es nada simple, ya que por un lado, ASK tiene mucha mejor sensibilidad que FSK. Por otra parte, FSK entrega el mismo BER que ASK, pero para niveles de sensibilidad mucho menores.

Ahora, si cosme tiene modulos que solo implementan OOK o ASK, segun el informe de Atmel, usar Manchester en ASK deberia mejorar muchisimo la sensibilidad (en unos 6dB), y si no me equivoco, si aumenta la sensibilidad... aumenta el alcance del enlace.

Muy interesante esa nota de aplicación.

¿Donde menciona que mejoras la sensibilidad con el código Manchester?

No me termina de quedar en claro la explicación de la sensibilidad vs la ventana de Jitter.
 
Última edición:
La mencion de que usar el codigo Manchester mejora la sensibilidad es indirecta, fijate la figura 6.2 que compara la sensibilidad de OOK y de ASK, en la que se muestra que ASK es mucho mejor. Por otro lado, la sensibilidad sola no te cuenta toda la historia, hay que ver los graficos de BER vs. sensibilidad.

Tene tambien en cuenta que las pruebas las hicieron con transmision sincrona, o sea usaron el Manchester para no solo lograr amplitud de portadora constante, sino tambien clock recovery. Por eso, como estas enviando clock, es importante analizar el jitter del clock regenerado.

Como tengo la suerte de conocer a uno de la oficina local de TI que se especializa en los modulos de RF de baja potencia, campo en el que TI esta ahora invirtiendo mucho, lo llame y le pregunte.

Me dijo que en su opinion FSK y mas aun, PSK, son mejores porque es mas facil filtrarlos y pasar las exigencias de los standards, segun el ASK desparrama mucho ruido y no es facil filtrarlo y que funcione, siendo que GPSK por ejemplo, es una tecnologia probada y sin demasiado ruido de banda ancha.

Pero como ya sabes, tres expertos, cuatro opiniones... asi que tomalo como una opinion mas.
 
La mencion de que usar el codigo Manchester mejora la sensibilidad es indirecta, fijate la figura 6.2 que compara la sensibilidad de OOK y de ASK, en la que se muestra que ASK es mucho mejor. Por otro lado, la sensibilidad sola no te cuenta toda la historia, hay que ver los graficos de BER vs. sensibilidad.

Claro, de lo que entendí ahí es que un ASK es mejor que un OOK y en mi caso tengo Tx y Rx tipo OOK, pero por usar Manchester no significa que mejoraría 6dB.

Lo que me di cuenta de esa nota, es que al tener OOK, la senoidal viene con una señal continua (yo pensaba que era solo alterna), por lo que en el espectro me quedará también las armónicas de la señal digital en baja frecuencia, no le veo sentido a eso, es una perdida de potencia. :unsure:
 
No sé bien a qué te referís con continua. Acá tenés las gráficas de las 3 señales, OOK, ASK, FSK:
64598_fig01_inline.gif;pv489284c1846673fa

Te recomiendo que leas estas pruebas de laboratorio:
http://www.rfm.com/corp/appdata/ook.pdf
 
No sé bien a qué te referís con continua. Acá tenés las gráficas de las 3 señales, OOK, ASK, FSK:
http://www.electronicdesign.com/content/content/64598/64598_fig01_inline.gif;pv489284c1846673fa
Te recomiendo que leas estas pruebas de laboratorio:
http://www.rfm.com/corp/appdata/ook.pdf

Así es como me imaginaba que funcionaba, pero en la nota de aplicación de Atmel que subío chclau, la senoidal del OOK está levantada Vcc/2, yo creo que se equivocaron, sino es una perdida de potencia sin sentido.

Otra cosa, fijate en el link que pusiste, en la pag. 3 muestran el circuito que se encarga de pasar la señal demodulada en una señal digital y menciona que para su funcionamiento la señal deberá estar razonablemente balanceada en DC.
 
Última edición:
Eso está referido a ése esquema de demodulador. No sé que demodulador usan en el receptor del módulo que tenés.
Sea como sea, en tú caso, yo probaría ubicando el receptor a una distancia razonable (o atenuar la salida del emisor) hasta que haya errores y luego con esa configuración, enviar paquetes de datos y verificar si hay mejora o no tomando en cuenta la velocidad de la transmición y la tasa de error.
 
Eso está referido a ése esquema de demodulador. No sé que demodulador usan en el receptor del módulo que tenés.
Sea como sea, en tú caso, yo probaría ubicando el receptor a una distancia razonable (o atenuar la salida del emisor) hasta que haya errores y luego con esa configuración, enviar paquetes de datos y verificar si hay mejora o no tomando en cuenta la velocidad de la transmición y la tasa de error.

Ok voy a tener en cuenta eso, no parece una mala idea hacerlo (y).
 
Esa técnica se utiliza dentro de la certificación de plantas terrenas de satélite. Se le conecta un transmisor receptor de datos en forma contínua (para llegar a cumplir con tasas de 10-12 la prueba tarda cerca de 1 día).
 
Yo tambien supongo que lo de la componente de continua en OOK debe ser un error. Y tambien me doy cuenta que mezcle las cosas y tenes razon, usar Manchester o no, no tiene nada que ver con OOK o ASK. Lo unico que te garantiza Manchester es que, si usas OOK, nunca pase que no tengas portadora durante el tiempo de una tira larga de ceros.

A todo esto, como se llaman los modulos que estas usando?
 
Última edición:
Después de mucho.... mucho tiempo hice la prueba :LOL:.

Las pruebas que realizamos fueron las siguientes:

- Comunicación UART a 2400bps (máxima velocidad declarada por el receptor)
- Comunicación UART a 1200bps (tratando de buscar más sensibilidad)
- Comunicación Manchester a 2400bps (requiere 2 bits para mandar 1 bit de dato)
- Comunicación símil al Manchester, pero con duty 75% (requiere 4 bits para mandar 1 bit de dato).

En todas las pruebas la comunicación era unidireccional y con una trama similar a esta:

Código:
Preambulo (para estabilizar el receptor, varios bytes) - Código del mensaje (1 byte) - Dirección Destino (1 byte) - Dirección Origen (1 byte) - Mensaje (array de bytes) - CheckSum (1 byte)

El mensaje en las pruebas solo era un Byte. Dicha trama se enviaba durante 8 min. aproximadamente en forma continua hasta llegar a las 10000 tramas.

Antenas utilizadas:

  1. Antena comercial de 12 a 13 cm aprox. con conector SMA
  2. Cable coaxil de 35cm (media lambda) conectado a lo cabezón.

Resultados:

- Comunicación UART a 2400bps (máxima velocidad declarada por el receptor)
  1. A 15Mts de distancia (con pared en el medio)-> 980 paquetes (usando Antena comercial en receptor y Cable coaxil en transmisor), pero no era del todo constante, a veces llegaban menos.
  2. A 15Mts de distancia (con pared en el medio)-> 300 paquetes (usando Antena comercial en receptor y Antena comercial en transmisor), pero no era del todo constante, a veces llegaban menos.
  3. A 15Mts de distancia (con pared en el medio)-> 0 paquetes (usando Cable coaxil en receptor y Antena comercial en transmisor).
  4. A 4 pisos de diferencia (30mts aprox) -> 0 paquetes (usando Antena comercial en receptor y Cable coaxil en transmisor)
  5. A 4 pisos de diferencia (30mts aprox) -> 0 paquetes (usando Antena comercial en receptor y Antena comercial en transmisor)
  6. A 4 pisos de diferencia (30mts aprox) -> 600 a 300 paquetes (usando Antena comercial en transmisor y Cable coaxil en receptor)

- Comunicación UART a 1200bps (se empleó las mejores antenas obtenidas en 2400bps)
  1. A 15Mts de distancia (con pared en el medio)-> 700 paquetes (usando Antena comercial en receptor y Cable coaxil en transmisor), pero no era del todo constante, a veces llegaban menos.
  2. A 4 pisos de diferencia (30mts aprox) -> 300 a 150 paquetes (usando Antena comercial en transmisor y Cable coaxil en receptor)

- Comunicación Manchester a 2400bps (requiere 2 bits para mandar 1 bit de dato)
  1. A 15Mts de distancia (con pared en el medio)-> 1100 paquetes (usando Antena comercial en receptor y Antena comercial en transmisor), era bastante constante.
  2. A 4 pisos de diferencia (30mts aprox) -> 300 a 150 paquetes y después caía y dejaban de llegar paquetes (usando Antena comercial en transmisor y Antena comercial en receptor)
  3. A 4 pisos de diferencia (30mts aprox) -> 0 paquetes (usando Antena comercial en transmisor y Cable coaxil en receptor)

- Comunicación símil al Manchester, pero con duty 75% (requiere 4 bits para mandar 1 bit de dato)
  1. A 15Mts de distancia (con pared en el medio)-> 500 a 600 paquetes (usando Antena comercial en receptor y Antena comercial en transmisor), era bastante constante.
  2. A 3 pisos de diferencia (20mts aprox) -> 200 a 150 paquetes y después caía y dejaban de llegar paquetes (usando Antena comercial en transmisor y Antena comercial en receptor)
  3. A 3 pisos de diferencia (20mts aprox) -> 0 paquetes (usando Antena comercial en transmisor y Cable coaxil en receptor)

Como verán los resultados son bastante ambiguos y varían mucho según la antena usada en dicha distancia. Lo que pude sacar en limpio:

- El receptor de alguna forma tiene que saturar, ya que en la prueba uart de 2400bps, al usar las antenas con las que se obtuvo mejor distancia en distancias menores, la cantidad de paquetes disminuye mucho.

- Bajar la velocidad a 1200bps no trajo muchos beneficios, siempre se recibía la mitad de paquetes por un tema de velocidad y era poco constante como a 2400bps, por lo tanto no hubo beneficio alguno.

- Con Manchester se obtiene la mejor comunicación en distancias cortas, estable y con mayores paquetes recibidos.

- Con Manchester se pudo recibir paquetes usando las 2 antenas comerciales a largas distancias.

- A pesar de recibir paquetes en forma constante a 15mts usando Manchester y usando las antenas comerciales, a mayor distancia se vuelve muy inestable, empieza a recibir bien y después cae hasta no recibir nada.

- Con el código para obtener un duty del 75% no parecía a haber grandes cambios en referencia al Manchester, estable a cortas distancias e inestable a grandes distancias.

La conclusión de momento es que tanto el Manchester como el código con duty aplicado al 75% no dieron mejores resultados que usar una UART a secas, pero de todas formas vamos a repetir las mediciones en otro entorno.

Sobre el código Manchester, usé la UART para realizar la codificación y decodificación, ya que mi mayor interés era ver que pasaba cuando tenía un duty constante durante el envío del mensaje (y no tanto el tema de la sincronización). Subo el PDF que usé para basarme en la codificación/decodificación y les dejo el código que usé, tal vez le sea útil.

Códificación Manchester usando UART (en C):

PHP:
int enviar_cod_manchester(u8 dato)
{
	u8 cont1,cont2,aux,byte_cod;
	
	aux = dato;
	for (cont1=0; cont1<2; cont1++) 
		{
			byte_cod = 0; // Byte codificado
			for (cont2=0 ; cont2<4; cont2++) 
				{
					byte_cod =(byte_cod >>2);
					if (aux&0x01)
						byte_cod |= 0b10000000; // 1 Logico => 1->0 
					else
						byte_cod |= 0b01000000; // 0 Logico => 0->1
					aux=(aux>>1);
				}
				
			if(envia_dato_rs232(byte_cod)<0)
				return -1;
		}
		
	return 1;
}

Decodificación Manchester usando UART (en C):

PHP:
int recibe_manchester()
{
	u8 cont1,cont2,byte_decodificado,aux;
	
	byte_decodificado = 0;
	
	for(cont1=0;cont1<2;cont1++)
		{
			if(recibe_dato_rs232()<0)
				return -1;
			
			aux = dato_rx;
			
			if (aux == 0xf0) // Comienzo o fin de trama -- Preámbulo
				return -1;
			
			for (cont2=0; cont2<4; cont2++) 
				{
					byte_decodificado=(byte_decodificado >>1);
					
					switch(aux & 0x03)
						{
							case 0x01:{ byte_decodificado&=0x7f;   break;}
							case 0x02:{ byte_decodificado|=(1<<7); break;}
							default:{return -1;}
						}							
						
					aux=(aux>>2);
				}
	
		}			
	dato_rx=byte_decodificado;
	
	return 1;
}
 

Adjuntos

  • Manchester_encoding_using_RS232.pdf
    111.8 KB · Visitas: 7
Última edición:
Buenas!

Gracias por compartir tu experiencia cosmefulanito04.

Ya se que talves no tenga tanto que ver pero aca les comparto un enlace sobre BPSK. Ya se que no exactamente lo que andan buscando pero con suerte ilumine a gente tan brillante como ustedes :)

http://4hv.org/e107_plugins/forum/forum_viewtopic.php?10352

No bajen los brazos!!!! ( a menos que tenga mucho mal olor bajo la axila :D)

saludos!

Muy interesante ese proyecto, el flaco esta diseñando el receptor de cero :eek:

Si el receptor se satura, lo único que me queda muy claro, es que el diseño del mismo un un poquitito mejor que el peor

¿Me estás queriendo decir que mi receptor es mejor perderlo que encontrarlo? :cry:

Incluso no lo mencione, pero si pongo los 2 equipos cerca (digamos 2 o 3 mts), sin antena el tipo recibe perfecto y si uso cualquier tipo de antena dejan de recibir o recibe muy pocos paquetes.

Otra cosa que se me olvidó mencionar, de los paquetes recibidos que puse arriba, eso se da c/1 minuto, es decir no es que recibo solo 900 paquetes (o lo que fuera) de los 10000 que mandé, sino que recibo 900 paquetes/minutos.
 
Busqué algunos datos más, y ahora entiendo un poquito más el "problema". El módulo que vos usás es un receptor regenerativo sin AGC. O sea lo más elemental que hay.
Compará las especificaciones con el RWS-434N-LV, que es superheterodino y con AGC. No sé si hay gran diferencia de precio entre ambos y si se consigue acá.
 
Atrás
Arriba