Freitag, 5. Mai 2017

Señal detectada de la Radio Galaxia Hércules A (3C348)

3C348 - Scanning the sky by 1420 MHz 


Señal detectada de la Radio Galaxia Hércules A (3C348)?


Durante la adquisición de datos para nuestro projecto de escaneo del cielo, hemos detectado un máximo el día 10 de Febrero del 2017 con coordenadas celestes RA 16h 50' y DEC alrededor de los 5° (la inexactitud procede del chip 10DOF que empleamos para la lectura de la altitud de la antena, descrito aquí). Este pico se detectó unos 50 KHz por debajo las primeras muestras de la linea de hidrógeno neutro procedente de la Vía Láctea a 1420.406 MHz. Hemos comparado nuestros datos con aquellos publicados en la base de datos de Vizier (site), lo que nos llevó a encontrar una discrepancia en la posición de nuestras señales detectadas alrededor de la frecuencia 1420.406 MHz, debido a un aparente ensanchamiento incorrecto de nuestro espectro a lo largo del ancho de banda de los 2 MHz detectables. La causa del error será investigada. De cualquier forma parece que la posición relativa de estas señales entre si y con respecto a la linea de 21cm sin corrimiento por efecto Doppler, sí sea correcta.


El siguiente gráfico muestra la señal detectada bajo observación en este blog:

Figura 1: Potencia de señal calculada y espectro de frecuencias a lo largo del día 10 de Febrero del 2017
Este gráfico en una composición con los datos calculados a partir de los escaneos a lo largo de un día. En la parte superior vemos la potencia de señal estimada (calculada por integración del área de espectro bajo la señal detectada y sin estar calibrada con la temperatura real recibida por la antena). Sobre los puntos del gráfico se puede leer el nombre de las fuentes de radio conocidas y cercanas al foco de la antena, cada una de ellas en el color correspodiente, que depende de la densidad de flujo de la fuente (información extraida de catálogo NRAO). La distancia del nombre de la fuente al punto del gráfico es proporcional a la distancia del foco de la antena a la fuente nombrada. Este texto en el gráfico es puramente informativo y no implica la detección de la señal por nuestra parte. En la parte inferior vemos el área de la señal detectada en turquesa y dentro -en color- el punto del pico/s detectado/s en este área, de nuevo codificado el color con dependencia de la amplitud del pico. 


Alrededor del instante del tránsito de Herc A vemos un segundo pico en el espectro y el gráfico de potencia estimada muestra también una pequeña pero detectable elevación. Ampliación:

Figura 2: Potencia estimada y picos detectados alrededor del momento de tránsito de 3C348

El siguiente gráfico muestra lo expuesto desde otro punto de vista. Es la proyección sobre el plano de la composición 3D de todos los escaneos a lo largo del día. Hemos reemplazado en el eje de ordenadas la hora local por las coordenadas RA. La información publicada en Wikipedia con respecto a las coordenadas RA-DEC de Herc A nos da RA 16h 51m 08.15s y DEC +04° 59' 33.32''. Este área ha sido ampliada y de nuevo de percibe el tránsito:  

Figura 3: Proyección de la superposición 3D de espectros del día 10 de Feb. 2017

Figura 4: Ampliación del área del gráfico anterior alrededor de la coodenadas de 3C348

El máximo fue detectado este día a las 7:00 horas (hora local para la zona +01 ) y una comparación con los datos extraidos del catálogo Vizier nos deja apreciar la similitud (teniendo en cuenta lógicamente el error comentado el inicio de este blog). 

Figura 5: Espectro registrado a la hora del máximo ( posiblemente 3C348 ? ) 

Figura 6: Espectro de 3C348 publicado en el catálogo Vizier


Otras comparaciones con datos del catálogo Vizier:

  • 3C138

Figura 7: Espectro registrado durante el tránsito de 3C138

Figura 8: Espectro de 3C138 publicado en el catálogo Vizier




























  • 4C13.67

Figura 9: Espectro registrado durante el tránsito de 4C13.67

Figura 10: Espectro de 4C13.67 publicado en el catálogo Vizier






Montag, 1. Mai 2017

Radio Galaxy Hercules A (3C348) detected ?

3C348 - Scanning the sky by 1420 MHz ( SPA  GE)


Radio Galaxy Hercules A (3C348) detected?


During the acquisition of data for our sky scanning map, a maximum on 10th February 2017 was observed for RA 16h 50' and DEC around 5° (little uncertainty due to the oscillation of the messed altitude value got from a 10DOF chip, see site ) about 50 KHz underneath the first vestiges of the neutral hydrogen emissions of the Milky Way by 1420.406 MHz Our records were compared with the data published through the Vizier Databank on this site. We found a mismatch by the position of all detected signals (perhaps also width) around the 1420.406 MHz, as if our
Spectrum was twice wider than it should. The source of error will be investigated and eliminated. Nevertheless it seems that the relative position of our detections to the 21cm not Doppler shifted frequency is correct. 


Following plots show the mentioned received signal under investigation in this report:

Figure 1: Calculated Power and Frequency of detected signals along the day 10th eb 2017
The plot is a composition with data calculated from the scans recorded along the day. In upper side we can see the estimated signal power (calculated via integration of detected signal area in the scan without calibration with the messed antenna temperature). Over the graph you find the name of known radio sources near antenna focus, every one of them in the corresponding color depending on its flux density (information extracted from NRAO survey) and with a distance to the belonging plot point, depending on its distance to antenna focus. The name of known sources does not imply that we also detected the transit of this object. On the lower side we see the area of detected signal in light blue and the position of found peaks inside this area with variable color, which depends on detected amplitude. The right side reveals the amplitude of peak, color-coded.


Around the expected time of Herc A transit there is a second peak on the scan and the estimated signal power graph shows also a little but perceivable rise. A zoom of this area:

Figure 2: Power of detected signal and peaks position around the supoused transit of 3C348

Next plot shows another point of view, the 2D-projection of all recorded scans (spectrums) along the day. The Y-axis was replaced by the scanned RA coordinate. The information published in Wikipedia about RA-DEC coordinates of Herc A gives us RA 16h 51m 08.15s and DEC +04° 59' 33.32''. This area was zoomed and the expected transit is again visible. 

Figure 3: 2D-Projection of spectrum superposition along the 10th Feb 2017

Figure 4: Zommed area from Plot 3 around the 3C348 coordinates

The maximum was found on this day at 7:00 local time and a comparison with the data extracted from Vizier Catalog lets us see, despite of the frequency mismatch mentioned before, an analogy. 

Figure 5: Recorded spectrum (possibly of 3C348) for time of maximum

Figure 6: Spectrum published in Vizier for 3C348

Other comparisons with Vizier data were made for following radio sources:


  • 3C138

Figure 7: Spectrum recorded during transit of 3C138

Figure 8: Spectrum of 3C138 found in Vizier Catalog































4C13.67

Figure 9:  Spectrum recorded during transit of  4C13.67

Figure 10:  Spectrum of 4C13.67 found in Vizier Catalog

Sonntag, 13. September 2015

Scanning the sky by 1420 MHz with FDM-S2

Searching for signals

Current scanned Sky

For this analysis logged data of some days of September 2015 were taken, with the purpose of finding out if there is any significant radio source detectable with the previously described (see older post) handmade radio telescope and a 4m diameter parabolic dish. A complete sky scan is being made, which will probably take some weeks (or even months). Within this post we take first a look on declination -2° 22'.


Declination -2° 22' 

The following plot shows the software detector data for the 7th September 2015.

24 Hours Plot of 7th September 2015 for DEC -2° 22'


The plot includes two different representations of the recorded data in these 24 hours. The X-axis contains the timestamp in local form. The Y-axis of the upper plot shows the calculated power in every scan on basis of a developed algorithm, which makes a conversion of the real scan (1420 to 1421MHz) to a flatted scan, tries to recognize the existence of a signal on it and integrates the area of the found signal as a result. For the current scanned sky position (RA-DEC) a possible detectable radio source extracted from 1420MHz catalogue in http://vizier.cfa.harvard.edu/ is logged and shown vertically (mostly not really readable on a 24 hours plot). The color of the text depends on the flux of the source, in Jy. The plot below shows in the left Y-axis the frequency band of found signal on scan, with his corresponding bandwidth on the right side.

For a better recognition of detected radio sources it is always necessary a comparison of data of different days, so that the expected time shifting of 4 minutes per day is obvious. The next picture includes the 7th and 9th September:

24 Hours Plot of 7th and 9th September 2015

00h 25min UTC, 3C29 ?
A catalogue of radio sources on 1420 MHz indicates for 3C29 (RA 00h 55min and DEC -01° 42') a Flux of 7Jy.

Radio Sources Catalogue extract with 3C29
The signal detected on 1420.5 MHz that produces the little broad peak on the detector curve is shown here. Time of Scan is 00h 25' 37'' UTC.

Scan 7th Sep 2015 at 00h25min19sec on RA 00h 25min DEC -2° 22'

Sky on 7th Sept 2015 at 00h 25' 37'' UTC for RA 00h 55' DEC -2° 22' (Antenna Focus)


02h 13in UTC, 3C71 ?
Observing the time period between 02:00 and 02:30 UTC we appreciate the peak caused by a signal centered on 1420.5 MHz. The sky view on this time for the scanned area shows several sources, being the starkest one 3C71 or M77 (NGC 1068). This source still lies more than 1° above the antenna focus. 

Zoom of plot for a better analysis around 04:13 local or 02:13 UTC

A search through the scanned area with planetarium software lets us guess it could be M77 or even 023507-040205, a very faint radio source, catalogued with just 1495.3 mJy. 

Sky on 7th Sept 2015 at 02h 13'  UTC for RA 02h 55' DEC -2° 22' (Antenna Focus)

PSK0336-01, 3C89 ?
A higher peak is observed around 03h UTC. This region of the sky contains many radio sources but trying to identify which one could be responsible for this fluctuation, we find two possible sources, named PKS0336-01 (2423mJy) and 3C89 (2200mJy). 

Little peace of Catalogue of radio sources near 1420 MHz with information about PKS0336 and 3C89

Plot of detector data with unshadowed area around 05h Local or 03h UTC

Sky at 03h UTC on 7th Sep 2015


3° above Orion
Scanning some degrees above Orion we still receive radiation from 3C145 (M42), very faint but perceptible. 

Transit of the area 3° above Orion
Sky on 7th Sept 2015 at 04h 40' UTC for RA 05h 57' DEC -2° 22' (Antenna Focus)


Milky Way transits


Following plots provide a view of the spectrum between 1420 and 1421 MHz The bottom X-axis contains the frequency values. The Y-axis shows the calculated signal power in decibel. The top X-axis shows the corresponding radial speed for every frequency value without correction. This correction should take into account the influence of several speed components coming from Earth rotation around own axis,  earth rotation around the solar system barycenter and solar system rotation around our galaxy barycenter. 

Around 5:50h UTC (7:50 Local) we detect the transit of the Milky Way by the galactic coordinates Lat 0° Long 214°.
Transit of Milky Way by Galactic Coordinate Lat 0° Long 215°
and around 18h UTC (20h Local) by Lat 0° Long 35°
Transit of Milky Way by Galactic Coordinate Lat 0° Long 35°

http://www.germersogorb.de/html/lbandlive.html

Sonntag, 28. Juni 2015

Radio astronomy with FDM-S2

FDM-S2 Support

Unfortunately the software supplied by ELAD for the FDM-S2 did not cover my need for radio astronomy. There is no option there for saving permanently scans, in for example csv files, therefore you are forced to work with wav file, what requires a great amount of storage. On the ELAD site http://sdr.eladit.com/FDM-S2%20Sampler/ you can find several DLLs for taking IQ samples, which you can posteriorly transform to frequency domain and finally save in csv files. This was the target of this software.

Block Diagramm of the software

Possible application

FMD-S2-Samples

This application controls the FDM-S2 and works as an interface for the Callback routine. Thanks to the document "SPECIFICATION FOR EXTERNAL USE of I/O DLLs TO COMMUNICATE TO FDM DEVICE" it was possible to implement a code for making all setting prior to calling the Callback function. This was compiled with Visual Studio Express VC10. Via config file and the option -c you can set following parameters:

Sampler  
Set the DLL for the sampling. Every DLL works with a fixed sampling rate. ELAD supplies six DLLs:
  • ExtIO_ELAD_FDMS2_192k_v3_04.dll for 192 k Sample output data rate.
  • ExtIO_ELAD_FDMS2_384k_v3_04.dll for 384 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_768k_v3_04.dll for 768 k Sample output data rate.
  • ExtIO_ELAD_FDMS2_1536k_v3_04.dll for 1536 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_3072k_v3_04.dll for 3072 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_6144k_v3_04.dll for 6144 k Sample output data rate.


Every DLL returns a fixed amount of samples:
  • For 192k DLL return value is 12288 complex samples.
  • For 384k DLL return value is 12288 complex samples.
  • For 768k DLL return value is 12288 complex samples.
  • For 1536k DLL return value is 12288 complex samples.
  • For 3072k DLL return value is 49152 complex samples.
  • For 6144k DLL return value is 49152 complex samples.

Scan Frequency
Initial sampling frequency. The bandwidth is determined by the chosen DLL and defines the end frequency.
Permanence
This value sets the amount of sets of complex samples we want to take for every scan. It means, for a value of 300 and DLL ExtIO_ELAD_FDMS2_6144k_v3_04.dll you get 300x49152=14.7 millions of samples.
Shift Counter
This parameter sets the amount of frequency shifting after having taken the required amount of samples for every given initial frequency (determined by permanence). The offset for shifting is just a part of the bandwidth and it is configurable in the file fdm-s2-samples.cpp under the struct fdm. All parameters associated with a DLL are defined in this structure.

Download






FFT of IQ Data: fdm_s2_fft.py

This application reads the IQ samples file/s, extracts all parameter set by fdb-s2-samples coded in a binary header and makes a DSP (Power Spectral Density, matlab), for getting finally the frequency spectrum. The FFT settings can be changed in the file fdm_s2_fft.py. After this, the spectrum will be plotted and all Frequency-Power pairs will be written in a csv file, for any posterior use.
The application was implemented with Python 2.7. Python supplies an easy way of installing packages by demand, so you just have to call the script and all needed modules not installed yet will print an information error. You can bit a bit get the required environment for this application.


Used variables are predefined but will be overwritten with the information found in the decoded binray header of the IQ samples file. Hier the variables:

FREQUENCY_DEFAULT = 30000000                            #30MHz
NFFT = 8192                                                                          # FFT Size
BLOCK = 12288                                                                   #FDM-S2
BANDBREITE_384K = 100000                                        #Hz
BANDBREITE_3M = 700000                                            #Hz
BANDBREITE_6M = 3000000                                         #Hz
PERMANENCE = 20                                                           # Permanence in fdm-s2-samples.cpp
SHIFT_CYCLE = 10                                                            # Shift Counter in fdm-s2-samples.cpp
BANDBREITE = BANDBREITE_6M          
SAMPLE_RATE = 384000                                                #With the FDM-S2 384K DLL for 32Bit
                                                                                                 # see "Sample output data rate" for every FDM-S2 DLL 
GAUSS_FILTER_FACTOR = 2                                        #Smoothing of Power Values. Factor 2 is very light.
PATH_OF_SAMPLING_FILES = ".\\RawFiles\\"          #Input Files
PATH_OF_OUTPUT_FILE = ".\\"                     
START_FREQ = 1419.6                                                    # Start Frequency for Output Data
END_FREQ = 1421.3                                                         # End Frequency for Output Data


Change the following code line. because this was implemented for taking into account the Down Converting shift on my own system
handle.write("{0},{1}\n".format((1392+freq/1000000), smooth_gauss[smooth_cnt]))


Download



Samstag, 27. Juni 2015

Radioastronomía con FDM-S2

FDM-S2 Support para Radioastronomía

El software suministrado por ELAD para el uso del receptor FDM-S2 no permite almacenar los espectros en forma de ficheros csv. Por lo tanto uno está limitado a trabajar con wav, lo que requiere mucho espacio de almacenamiento. En la página http://sdr.eladit.com/FDM-S2%20Sampler/ se encuentran diversas DLLs, con las que se puede utilizar el receptor para recoger muestras IQ, transformarlas al dominio de la frecuencia y finalmente almacenarlas en ficheros csv. Con este fin se implementó el software aquí descrito.

Diagrama de bloques del software para uso en Radioastronomía
Posible aplicación para los datos extraidos

FMD-S2-Samples

La aplicación controla el FDM-S2 y representa la interfaz para la función CallBack. Con ayuda del documento "SPECIFICATION FOR EXTERNAL USE of I/O DLLs TO COMMUNICATE TO FDM DEVICE" se pudo implementar un código que realiza las configuraciones previas a la llamada CallBack. El código ha sido compilado con Visual Studio Express VC10. El fichero de configuración se le pasa al ejecutable con la opción -c y proporciona configurabilidad para los siguientes parámetros:

Sampler  
Aquí indicamos qué DLL ha de emplearse para recoger las muestras IQ. Con el uso de una u otra DLL se decide la frecuencia de muestreo. ELAD proporciona las siguientes DLLs:

  • ExtIO_ELAD_FDMS2_192k_v3_04.dll for 192 k Sample output data rate.
  • ExtIO_ELAD_FDMS2_384k_v3_04.dll for 384 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_768k_v3_04.dll for 768 k Sample output data rate.
  • ExtIO_ELAD_FDMS2_1536k_v3_04.dll for 1536 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_3072k_v3_04.dll for 3072 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_6144k_v3_04.dll for 6144 k Sample output data rate.


La DLL escogida fija la cantidad de muestras extraibles:

  • For 192k DLL return value is 12288 complex samples.
  • For 384k DLL return value is 12288 complex samples.
  • For 768k DLL return value is 12288 complex samples.
  • For 1536k DLL return value is 12288 complex samples.
  • For 3072k DLL return value is 49152 complex samples.
  • For 6144k DLL return value is 49152 complex samples.

Scan Frequency
Frecuencia de muestreo inicial. El ancho de bada del muestreo está implicitamente determinado por la DLL escogida y determina así la frecuencia final.
Permanence
Este valor indica cuántos Sets completos de muestras IQ complejas queremos recoger por cada Scan. Por ejemplo un valor de 300 y la DLL ExtIO_ELAD_FDMS2_6144k_v3_04.dll resulta en 300x49152=14.7 millones de muestras.
Shift Counter
Este parámetro determina la cantidad de desplazamientos a partir de la frecuencia inicio tras finalizar un muestreo (determinado por Permanence). Cada desplazamiento se hará con un offset con respecto a la frecuencia inicial, que es una parte (configurable) del ancho de banda de la DLL escogida.
La definición completa de una DLL con todos los parametros previamente configurados pero editables se encuentra en el fichero fdm-s2-samples.cpp en la estructura fdm.

Download





FFT de muestras complejas: fdm_s2_fft.py

Esta aplicación lee el/los fichero/s Raw de muestras IQ, extrae los parámetros configurados y codificados en binario por fdb-s2-samples y realiza la DSP (Power Spectral Density, matlab), para generar finalmente el espectro de frecuencias, Los parámetros de la FFT se pueden cambiar en el archivo fdm_s2_fft.py. Después de esto se hace una representación gráfica del espectro y se guardan todos los pares Frecuencia-dB en un fichero csv para su uso posterior.
La aplicación da sido implementada con Python 2.7. Al ejecutar el script, todos los módulos requeridos que no hayan sido instalados previamente, producirán un mensaje de error. De esta forma es sencillo ir descubriendo poco a poco los paquetes necesarios para ejecutar el script.

Las variables empleadas tienen valores predefinidos, pero que se sobreescriben al leer la cabecera binaria de los ficheros de muestras complejas IQ. Los parámetros son los siguientes:

FREQUENCY_DEFAULT = 30000000                            #30MHz
NFFT = 8192                                                                          # FFT Size
BLOCK = 12288                                                                   #FDM-S2
BANDBREITE_384K = 100000                                        #Hz
BANDBREITE_3M = 700000                                            #Hz
BANDBREITE_6M = 3000000                                         #Hz
PERMANENCE = 20                                                           # Permanence in fdm-s2-samples.cpp
SHIFT_CYCLE = 10                                                            # Shift Counter in fdm-s2-samples.cpp
BANDBREITE = BANDBREITE_6M          
SAMPLE_RATE = 384000                                                #With the FDM-S2 384K DLL for 32Bit
                                                                                                 # see "Sample output data rate" for every FDM-S2 DLL 
GAUSS_FILTER_FACTOR = 2                                        #Smoothing of Power Values. Factor 2 is very light.
PATH_OF_SAMPLING_FILES = ".\\RawFiles\\"          #Input Files
PATH_OF_OUTPUT_FILE = ".\\"                     
START_FREQ = 1419.6                                                    # Start Frequency for Output Data
END_FREQ = 1421.3                                                         # End Frequency for Output Data


La linea del código donde se convierten los valores de la frecuencia, corrijen los desplazamientos de la senal procedentes del Down Converter y debe ser cambiada o eliminada según el uso. 
handle.write("{0},{1}\n".format((1392+freq/1000000), smooth_gauss[smooth_cnt]))


Download



Radioastronomie mit dem FDM-S2

FDM-S2 Support für Radioastronomie



Leider ist die mit der FDM-S2 mitgelieferte Software nicht für meine Radioastronomie Zwecke geeignet, da man kaum Daten sammeln kann, ohne einen riesigen Speicherplatz zur Verführung zu haben. Die auf der ELAD Seite zum herunterladen stehende DLLs (http://sdr.eladit.com/FDM-S2%20Sampler/lassen sich einfach nutzen und machen es möglich,Samples zu sammeln, zu transformieren und zu speichern in einer etwas günstigeren Variante. Die hier beschriebene Software macht das.
Blockdiagramm der Software


Mögliche Anwendung der CSV Files (hier gnuplot), nach dem Scan Falttener.


FMD-S2-Samples

Diese Applikation steuert den FDM-S2 und stellt die Schnittstelle für die CallBack Funktion dar. Mit Hilfe des Dokumentes "SPECIFICATION FOR EXTERNAL USE of I/O DLLs TO COMMUNICATE TO FDM DEVICE" wurde ein Code implementiert, mit dem die Voreinstellungen des Gerätes durchgeführt werden können, bevor die CallBack Funktion aufgerufen wird. Der Code wurde mit Visual Studio Express VC10 kompiliert. Ein Konfigurationsfile wird mit der Option -c eingegeben und stellt folgende Parameter zur Verführung:

Sampler  
Hier ist gemeint, welches DLL für die IQ Samples genommen werden soll . Mit der DLL legt man den Ausgang Sample Rate des FDM-S2 fest. ELAD stellt diese zur Verfügrung:

  • ExtIO_ELAD_FDMS2_192k_v3_04.dll for 192 k Sample output data rate.
  • ExtIO_ELAD_FDMS2_384k_v3_04.dll for 384 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_768k_v3_04.dll for 768 k Sample output data rate.
  • ExtIO_ELAD_FDMS2_1536k_v3_04.dll for 1536 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_3072k_v3_04.dll for 3072 k Sample output data rate. 
  • ExtIO_ELAD_FDMS2_6144k_v3_04.dll for 6144 k Sample output data rate.


Je nach dem welcher DLL genommen wird, ist die Menge Samples auch fest.

  • For 192k DLL return value is 12288 complex samples.
  • For 384k DLL return value is 12288 complex samples.
  • For 768k DLL return value is 12288 complex samples.
  • For 1536k DLL return value is 12288 complex samples.
  • For 3072k DLL return value is 49152 complex samples.
  • For 6144k DLL return value is 49152 complex samples.

Scan Frequency
Erste Frequenz, ab der das Signal abgetastet wird. Die Bandbreite ist vom jeder DLL abhängig und legt damit die letzte Frequenz fest.
Permanence
Der Wert sagt, wie viele komplette "Complex Samples" Sätze pro Scan gesammelt werden . Zum Beispiel, ein eingestellter Wert von 300 mit der ExtIO_ELAD_FDMS2_6144k_v3_04.dll entspricht 300x49152=14.7 Millionen Samples.
Shift Counter
Dieser Wert entspricht die Menge der Verschiebungen der Start Frequenz, nach dem Erreichen der gewünschten Anzahl von Samples. Der Offset bei jeder Verschiebung ist ein (einstellbarer) Prozentsatz der Bandbreite vom ausgewählten DLL. Die Eigenschaften jedes DLLs sind im File fdm-s2-samples.cpp mittels einer Struktur namens fdm definiert.

Download



FFT von IQ Data: fdm_s2_fft.py

Diese Applikation liest das/die Raw IQ-Data File/s, extrahiert daraus die binär codierten Einstellparameter und führt eine DSP (Power Spectral Density, matlab) durch, um aus den IQ Daten das Spektrum zu generieren, Die FFT Einstellungen können im File fdm_s2_fft.py geändert werden. Das Spektrum wird dann dargestellt und alle berechneten Frequenz-Leistung Paare werden in ein csv File geschrieben, für eine spätere Nutzung.
Die Applikation wurde mit Python 2.7 implementiert. Beim Ausführen des Python Skriptes, werden die benötigten und nicht vorinstallierten Module in Form von Fehlermeldungen angezeigt. Python bietet aber eine sehr bequeme Möglichkeit, um bei Bedarf Module online zu installieren.

Die im Skript verwendete Variablen haben voreingestellte Werte, die beim Lesen der IQ-Files je nach eingefügtem Binär Header (siehe oben fdm-s2-sampler) überschrieben werden.

FREQUENCY_DEFAULT = 30000000                            #30MHz
NFFT = 8192                                                                          # FFT Size
BLOCK = 12288                                                                   #FDM-S2
BANDBREITE_384K = 100000                                        #Hz
BANDBREITE_3M = 700000                                            #Hz
BANDBREITE_6M = 3000000                                         #Hz
PERMANENCE = 20                                                           # Permanence in fdm-s2-samples.cpp
SHIFT_CYCLE = 10                                                            # Shift Counter in fdm-s2-samples.cpp
BANDBREITE = BANDBREITE_6M          
SAMPLE_RATE = 384000                                                #With the FDM-S2 384K DLL for 32Bit
                                                                                                 # see "Sample output data rate" for every FDM-S2 DLL 
GAUSS_FILTER_FACTOR = 2                                        #Smoothing of Power Values. Factor 2 is very light.
PATH_OF_SAMPLING_FILES = ".\\RawFiles\\"          #Input Files
PATH_OF_OUTPUT_FILE = ".\\"                     
START_FREQ = 1419.6                                                    # Start Frequency for Output Data
END_FREQ = 1421.3                                                         # End Frequency for Output Data


* Die Korrektur der Frequenz Werten vor dem Speichern ins File, berücksichtigt die Frequenzverschiebung vom Down Converter und muss für jeden Anwender geändert oder ganz eliminiert werden
handle.write("{0},{1}\n".format((1392+freq/1000000), smooth_gauss[smooth_cnt]))


Download



Dienstag, 29. Juli 2014

Radiotelescopio sencillo para banda L con Arduino Mega2560

Radiotelescopio sencillo para banda L


La radioastronomía hace posible que todo aquel estusiasta de la astronomía disfrute su hobby también bajo la luz del sol o incluso en días nublados. Esta idea y la fascinación por el desarrollo de circuitos electrónicos es lo que nos llevó hace unos años a comenzar con la construcción de un radiotelescopio. A continuacion un diagrama general de nuestro radiotelescopio:

Imagen 1: Diagrama general del radiotelescopio para banda L

Aqui se aprecian dos partes relativamente diferenciadas por su funcionalidad. En primer lugar el receptor y en segundo lugar el elemento de control de la antena. Un Sketch intermedio en Processing permite la visualización de los datos recibidos así como control de la antena.

A continuación se expone un resumen del proyecto, descrito más exaustivamente en la página http://www.germersogorb.de/html/radiotelescopio_band_l.html.

1.  Receptor

En el foco de la antena dentro de una caja se encuentra el  LNA y el Down-Converter. La transmisión en banda L a la frecuencia de 1420MHz por una línea muy larga no es aconsejable debido a la baja relación señal-ruido SRN existente en estas señales tan débiles.  El Down-Converter baja el espectro de señales entre 1420 y 1422 MHz a 28-30 MHz. En el foco se encuentra también instalado un sensor de temperatura LM35. 

En el observatorio a unos 5m de distancia de la antena se encuentran el amplificador de frecuencia intermedia, el detector logarítmico conectado a la placa amplificadora DC y finalmente Arduino Mega2560, como interfaz entre radiotelescopio y ordenador. Paralelamente y a través de una splitter instalado tras el amplificador de IF se analiza la señal mediante una SDR. Una parte de los componentes es de fabricación propia. En la página http://www.germersogorb.de/html/circuitos_hf_.html se puede leer más detalles al respecto.

Con la incorporación de Arduino se nos ha abierto un espectro muy grande de posibilidades. Ahora podemos desarrollar nuestro propio software con arduino y processing para el registro y visualización de datos, ya que el único requisito es conocer C++.

Imagen 2: Diagrama de bloques del receptor. 

Software Defined Radio

La señal dividida y procedente del splitter se analiza con una SDR muy económica, un Stick USB para recepción de DVBT, que nos permite la visualización de la señal en el dominio de frecuencias de 1420 a 1422 MHz. Dado que la señal fue convertida al margen de 28 a 30MHz y el stick trabaja a partir de 62MHz, tenemos que volver a convertir la señal con un UpConverter a un margen de frecuencias detectable por el stick. Tras la conversión con un oscilador de 100MHz, encontramos nuestra señal entre 128 y 130 MHz. Tanto el stick como el UpConverter se pueden adquirir en Amazón o directamente en la página de NooElec.
 
   1420-1422MHz -> DownConverter 28-30MHz  -> Amplificador + Filtro 27-31MHz ->
 -> UpConverter 128-130MHz -> SDR Stick (62-1700MHz)

Visualización de datos

Con un Sketch en Processing podemos guardar los datos digitalizados y enviados por Arduino a través del puerto serie en ficheros de texto. Estos datos de visualizan utilizando para ello gnuplot:
Imagen 3: Representación gráfica de datos haciendo uso de gnuplot
Para visualizar los datos registrados por el Stick empleamos batch scripts y nuevamente gnuplot:
Imagen 4: Representación gráfica en 3D de un tránsito registrado con el DVBT-Stick.
X: Frecuencias 1420 - 1422 MHz
Z: Potencia (dB)
Y: Tiempo
Para más detalles y descarga de ficheros y código ver la página siguiente:
http://www.germersogorb.de/html/radiotelescopio_band_l.html.


Ejemplo de una observación diaria


https://www.youtube.com/watch?v=NL3YYqwJ0tA&feature=youtu.be

2.  Control de la antena con 10DOF-80GY

Sensor de aceleración ADXL345 (parte del 80GY)

El uso de este sensor es muy sencillo. A pesar de todo es indispensable llevar cuidado con la librería descargada para Arduino, puesto que contiene unos valores de Offset determinados que nosotros debemos de adaptar a nuestro sistema. Estos offsets corrigen los pequenos errores de posicionamiento del IC sobre la placa o de orientación de la platina con respecto a la caja. Es conveniente editar el archivo  ADXL345.cpp para visualizar el código. Hay métodos matemáticos que podemos emplear para calcular los valores exactos necesarios en nuestro aparato, pero jugando un poco con estos valores podemos quizá obtener en algunos minutos un resultado convincente.

Brújula digital HMC5883L (parte del 80GY)

Este y probablemente todos los sensores de campo magnético traen consigo mucho trabajo. La primera tarea a realizar es analizar la influencia ferromagnética a la que está sometido nuestro sensor, para así poder determindar la profundidad de nuestras compensaciones de Hard y Soft Iron. “Hard Iron Compenssation” es absolutamente indispensable cuando el sensor se encuentra certa de materiales ferrosos pero su posición con respecto a éstos no varía (tornillos en la platina o caja para la instalación, etc). Aquí se calcula un offset constante para cada uno de los ejes y los 3 offsets resultantes se consideran en todos los cálculos. “Soft Iron Compenssation” será necesaria cuando el entorno en el que se encuentra el aparato distorsiona el campo magnético y esto de forma variable dependiendo de la posición exacta del aparato. Esta compensación es más complicada, dado que aquí hemos de encontrar una matriz de offsets.
Finalmente determinamos las posible posiciones que puede tomar el sensor, puesto que en ciertos casos tendremos que realizar la compensacion de la inclinación. El motivo es que los headings (azimuth) calculados con el sensor de campo magnético solo son correctos cuando el chip está en posición exactamente horzontal.

Todas las calibraciones y compensaciones realizadas por nuestra parte están descritas en la página Calibración de HMC5883L.
Imagen 5: Datos de sensor no calibrado

Imagen 6: Sensor calibrado.

L298N Motor Drive

Con este componente y a través de Arduino podemos mover la antena por software. Tres pines son necesarios para determinar la dirección y velocidad con la que se controloará el motor. Un Sketch en Processing nos sirve de interfaz para realizar esto de forma gráfica y exacta (aunque no más exacta de lo que nos permite el sensor de aceleración, que es el nos proporcional el ángulo de altura).



Imagen : Sketch Processing para visualización de datos y control de la antena paralelamente. 

Código

Todo los Sketches de Arduino y Processing pueden descargarse de las páginas http://www.germersogorb.de/html/controlmotorconarduino.html y http://www.germersogorb.de/html/calibraciondesensores.html, donde además se encuentra una más amplia descripción del proyecto.