DEMODULACIÓN AM · INTRODUCCIÓN Ahora que estamos más familiarizados con el software GNU Radio, en esta práctica realizaremos una demodulación AM. Vamos a recordar primero que la modulación AM, consiste básicamente en variar la amplitud de una señal sinusoidal, denominada portadora, de frecuencia relativamente alta de acuerdo con la amplitud de una señal moduladora. La modulación en amplitud es de tipo lineal, esto quiere decir que utiliza la amplitud instantánea de la señal modulada como medio para transportar la información. Este tipo de modulación se usa en radiodifusión comercial y en algunas bandas de ciudadana, abarcando desde 535 a 1605 kHz. Estas señales rebotan en la ionosfera debido a su gran longitud de onda, pudiendo viajar grandes distancias. Esto requiere una alta potencia para ser emitidas, ya que dicha modulación consiste en variar la amplitud. · DEMODULACIÓN CON GNURADIO Y HACKRF Cuando demodulamos una onda AM, la portadora y la porción de la envolvente que lleva la información se trasladan del espectro de radio frecuencia a la fuente original de información. Dicha demodulacón la podemos realizar de dos métodos: - El detector de envolvente es un método muy simple de demodulación que consta de un rectificador y un filtro paso bajo. - Hay señales AM en las que la portadora se reduce o suprime totalmente. Dichas señales requieren una demodulación coherente. Para ello se utiliza un detector de fase PLL. Respecto a la implementación de la demodulación AM, lo primero que necesitamos hacer en GNU Radio es crear el bloque Osmocom Source para poder recibir la señal que nos envía el HackRF: 1 Creamos una variable denominada samp_rate (frecuencia de muestreo) para asignar un valor definido al span visualizado en la FFT, además de la variable estática base_freq (frecuencia base). De este modo el bloque Osmocom Source queda configurado de la siguiente manera: 2 Cremos un slider para la variable freq_corr definida en el bloque Osmocom. Esto nos permitirá movernos con mayor precisión en la banda de frecuencias AM. Ahora vamos a utilizar el bloque WX GUI FFT SINK para observar lo que está ocurriendo. Este bloque lo unimos con nuestra fuente, así veremos la señal que captamos y podremos modificar los parámetros en caso necesario. 3 Si recordamos lo visto en clase, ahora necesitamos filtrar la señal paso bajo para quedarnos con la parte que nos interesa. En GNU Radio tenemos el acceso a diferentes bloques de filtros que vienen predefinidos, pero en este caso haremos uso del bloque Frequency Xlating FIR Filter que nos permite diseñar cualquier tipo de filtro con los parámetros deseados, junto a un bloque de control de nivel AGC2. Sabemos que el HackRF recoge la señal y la modula en banda base, y que las emisoras AM ocupan un ancho de banda de 10 kHz. Esto implica que tenemos un espectro de 5 kHz en frecuencias positivas y 5 kHz en frecuencias negativas, por lo que en nuestro caso, escogeremos una frecuencia de corte de aproximadamente 25 kHz para captar toda la información y tener una mejor calidad de la señal, ya que en AM las emisoras se encuentran a una distancia elevada. Para saber que parámetros definir a la hora de diseñar nuestro filtro paso bajo, utilizamos la siguiente guía donde nos especifica los diferentes tipos de filtros que podemos implementar: http://gnuradio.org/doc/doxygen/classgr_1_1filter_1_1firdes.html Vamos a utilizar el filtro paso bajo low_pass 2 definido por los siguientes parámetros; ganancia, variable sample_rate declarada al inicio, frecuencia de corte, ancho de banda y la atenuación de banda. Para poder movernos a través de las emisoras AM vamos a definir un nuevo bloque denominado WX GUI SLIDER que nos permitirá desplazarnos a lo largo del ancho de banda de AM. Dicho bloque lo definiremos con una variable denominada offset_frec evaluada entre un mínimo y un máximo (total del ancho de banda), donde la colocaremos en el parámetro Center Frenquency dentro de los parámetros del filtro. 4 Propiedades del Slider que nos permitirá desplazarnos a través de las emisoras AM: Por tanto el filtro queda definido de la siguiente manera: 5 6 Resulta útil hacer uso de las variables creadas al inicio para definir los parámetros de cada bloque. Esto nos servirá si nos equivocamos o queremos modificar una determinada frecuencia, únicamente habrá que cambiar el valor de la variable y de este modo no tendremos que ir bloque por bloque ajustándolo. Por último, vamos a utilizar una serie de bloques que nos servirán para demoduar nuestra señal. Usaremos el bloque AM Demod que incorpora un filtro paso bajo de audio, seguido de los bloques Multiply Const y Audio Sink. El bloque Multiply Const nos aplica una cierta ganancia debido a la atenuación de la señal que recibimos. Por ello, definimos una variable llamada volume que nos permitirá subir y bajar el volumen de nuestra radio. Para poder variar el volumen crearemos otro bloque WX GUI SLIDER, donde indicaremos como ID volume para que corresponda con el parámetro del bloque Multiply Const. 7 Multiply Const quedará configurado de la siguiente manera: El bloque que nos queda, Audio Sink nos permitirá escuchar si hemos sintonizado correctamente las emisoras de AM. Muchas tarjetas de sonido requieren un sampleo de 44.1 kHZ como mínimo, por lo que poniéndolo a 48 kHz evitaremos problemas. 8 9