Comunicación de la línea eléctrica, cómo verificar si la frecuencia está presente

3

Estoy tratando de comunicarme en una línea eléctrica sin filtros externos (solo un filtro para 50 / 60Hz), porque quiero usar solo filtros digitales.
Mi procesador es un dispositivo Cortex-M3 que funciona a 24MHz.
Mi comunicación es muy simple, si la frecuencia de la portadora está presente, este es un 1; si no, es un 0. Obviamente, usaré un bit de inicio para la sincronización.
La frecuencia de la portadora es de 125 kHz.
En pocas palabras, quiero recrear el módem de línea de potencia TDA5051 ASK, con software.
Creo que hay 2 métodos válidos para hacer esto:
- Filtre la señal con una serie de filtros FIR o IIR y analice la señal resultante. - Haciendo FFT sin filtros la señal y verifique si el portante está presente. ¿Cuál es el mejor método? Hay una mejor manera?

    
pregunta Katte

2 respuestas

6

FFT es una exageración. Utiliza el algoritmo de Goertzel para detectar una sola frecuencia.

  

Esto implementa efectivamente un filtro IIR de segundo orden con polos en e + 2πiω y e - 2πiω , y requiere solo una multiplicación (suponiendo que 2cos (2πω) es pre -computado), una suma y una resta por muestra de entrada. Para entradas reales, estas operaciones son reales.

"Mi comunicación es muy simple, si la frecuencia del portante está presente, este es un 1; si no, es un 0."

Esto se denomina codificación on-off . No estoy seguro de si Goetzel es el método óptimo para demodular esto en digital, pero al menos una persona lo recomienda .

    
respondido por el endolith
4

Tal como lo entiendo, usted desea detectar la presencia de una sola frecuencia conocida. Supongo que "portante" significa algo como "transportista"?

Una FFT sería una gran sobrecarga computacional, y luego no te dará una buena respuesta. ¿Por qué calcular la amplitud de muchas frecuencias cuando lo único que realmente te importa es una sola? Algún tipo de filtro de paso de banda es mejor, pero se necesitarán muchos cálculos para ajustarlo. Un filtro FIR requerirá un kernel muy ancho para hacer un paso de banda ajustado, lo que significa mucho almacenamiento y cómputo.

Multiplique la señal entrante por el seno y el coseno de la frecuencia que desea detectar. El paso bajo filtra cada uno de estos para el ancho de banda de la señal que desea detectar, luego enumérelos y agréguelos. El resultado es el cuadrado del nivel de tensión de la portadora. Si necesita el verdadero nivel de la portadora lineal, entonces tiene que tomar la raíz cuadrada de esto. Sin embargo, si solo está detectando la activación / desactivación de la clave del operador, puede comparar el valor al cuadrado con un umbral.

Este método puede hacer filtros ajustados arbitrariamente alrededor de una frecuencia conocida particular. La tensión de la banda es una función del filtro de paso bajo que se aplica a los productos de seno y coseno.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas