Joataman Webpages

Pulsar Detection Observations

A System for Observing Pulsar Emissions

System Design

The system is designed to receive pulsar signals in the 70 cm amateur radio band.  The bandwidth achieved by using the inexpensive RTL-SDR dongle as receiver is about 2.4 MHz.

According to calculations, the aperture of a 19 dBi antenna should be sufficient for a positive result in a detection of the Vela pulsar - but only marginally.  The effects of RFI and other noise sources will further degrade the signal quality.

The antenna setup and bandwidth utilised is probably the minimum sufficient to detect Vela at this location @ 430 MHz.

Hardware Block Diagram

The block diagram below describes the hardware system used for the detection of the Vela Pulsar.  Click on the image to view a larger size image.

The individual components in the block diagram are described below.


Commercial circularly-polarised 42-element crossed Yagi. Circular polarisation via 1/4 lambda offset.

Manufacturer: M2 Antenna Systems

Model ...................................... 436CP42UG
Frequency Range ....................... 430 To 438 MHz
Gain ........................................ 18.9 dBic
Front to back ............................ 25 dB Typical
Elipticity .................................. 1.5 db Typical
Beamwidth ............................... 21° circular
Feed type ................................. Folded Dipole
Feed Impedance. ....................... 50 Ohms Unbal.
Maximum VSWR ........................ 1.5:1
Input Connector ........................ “N” Female 
Boom Length / Diameter............. 18’ 10” / 1-1/2” To 1”

The aperture is theoretically roughly equivalent to a 2.8 metre diameter dish antenna @ 50% efficiency - but be warned: expert opinion and experience holds that the theoretical gain of small dishes (say < 5 metre diameter) is not achieved in practice @ 400 MHz.

First Low Noise Amplifier

A short 2 m length of LMR400 coaxial cable connects the antenna to the first low noise amplifier (LNA).  The LNA is a commercial design purchased from...


Model................... LNA 70cm - EME
Noise Figure.......... 0.3 dB
Gain..................... 16 dB
OIP3.................... 33 dBm
3 dB Bandwidth..... 20 MHz

To stabilise impedances, the output of the LNA is connected to the following LNA via an inline 3 dB attenuator.

Second LNA

A second LNA purchased from RF Bay Inc (model: LNA-1800) further raises the signal level before driving 25 m of RG213/U coaxial cable run into the observatory desk.

Frequency Range..... 1KHz-1800MHz
Gain...................... 30dB @ 1000MHz
P1dB..................... +8dBm
IP3....................... +20dBm
Noise Figure........... 2.2dB
Reverse Voltage Protected
SMA Connector

Both LNAs are powered individual 12 V 9 AH SLA batteries and covered by an up-turned plastic tub weighed down with a sandstone block.


Third LNA

The third LNA is located inside the observatory and is the same model 0.8 dB NF 20dB gain unit bought on eBay from 'Kitmanlaw'.  This LNA is primarily used to amplify the signal to a level where gain settings of around 30 dB can be used on the following RTLSDR dongle to ensure enough bits of digitisation occur.

To stabilise impedances another 3 dB pad is added to the output path.

At this point in the RF chain an LNA is not needed (as a higher noise figure general purpose amplifier will not degrade the noise figure significantly), but it was available and so was used.  The LNA could be replaced by an MMIC amplifier (ERA-5) without significant NF penalty.


The ubiquitous RTLSDR dongle is actually a DVBT USB-based receiver re-purposed by some clever people.  They have made available a range of software which allows access to the 8-bit IQ RF data stream.  This system uses a modified (by the author) version of the provided 'rtl_sdr.exe' console application.

The dongle itself has been modified to accept an external TCXO 28.8 MHz input - improving the stability of the sampling rate.

A piece of tinplate (from the lid of a salmon tin) fin has been soldered to the pad below the RTL2832U chip onto which a small 5V fan blows air.  The provision of this heatsink has been shown to improve the stability of the data stream - especially at the higher sampling rates.

An unmodified unit is shown in the foreground.

Data Acquisition Computer

For data acquisition (and also for data analysis) a Windows 10 PC is used with the following specifications...

Software Architecture

The PC runs a GUI multi-threaded application written in C# which performs various tasks - observation scheduling, data acquisition, data format conversion, de-dispersion, impulse RFI excision (6σ clipping), scaling of data to 8-bit, epoch folding and results display.

Click on the above graphic to view a larger size.

Data Processing Chain

Data is acquired and stored in a file in IQ 8-bit unsigned format.  After the observation run, this data file analysed by being converted to FILTERBANK format, de-dispersed, combined into into a Time Series (TIM) format file, impulse RFI excised, scaled and converted to 8-bit data format and then epoch-folded.  A search is performed for a range of periods (&plusmn;5 ppm) to find the best SNR period and a final fold is performed at that period. Offsets between the predicted and the observed period are calculated and plotted.  Over time it is hoped that a glitch in the Vela data will be detected.

Data Stream Hardware Interface

The IQ data is acquired via a USB interface connected to the RTLSDR dongle.  General wisdom says that the dongle should not be plugged in directly into the PC USB port, but connected by a good-quality cable of a few metres in length.  This is to reduce the level of RFI induced from the PC.   The dongle is a USB 2.0 device, so any port capable of supporting that speed should suffice.  If an external USB hub is used it is strongly recommended that it be a self-powered hub.  Ideally a dedicated internal USB card would be used, with only the dongle plugged in to ensure unfettered access to bandwidth and power.

Installation instructions for the RTLSDR dongle drivers can be found here This is left as an exercise for the reader to achieve. That is, please do not ask the author for help with this - a non-response may offend...   Remember - Google is your friend...

If you can get your dongle to work with SDRSharp then it should work with the console applications which can be used to capture data from the dongle and save to a file.

Details about RTLSDR and available applications can be viewed here and here.

RTLSDR Dongle Software

The data acquisition consists of a special version of the standard console application 'rtl_sdr.exe'.  The author has modified the source code and recompiled to produce a version of 'rtl_sdr.exe' which uses 64-bit variables - necessary to handle files > 4 Gb in size.  At a nominal sampling rate of 2.4 Mspssthe data size produced is about 17the data size produced is about 17 Gbytes/hour.

The modified 'rtl_sdr.exe' console application is called from within the Windows GUI application with parameters set via the GUI.  The IQ data is saved in a binary unsigned 8-bit file identified by a number of parameters in the filename.

These filename parameters are used by the following data analysis software to identify the conditions under which the data was acquired - e.g., centre frequency, sampling rate, Dopplercorrection, time of acquisition, hardware configuration, target object - and is used to identify the correct analysis settings through the processing chain.  In particular it identifies the correct external observation parameters file with is used to generate header information for the FILTERBANK and Time Series (TIM) data files. Such parameters as the number of channels, the highest channel frequency and spacing between channels, the reference dispersion measure and sampling clock error correction.correction, time of acquisition, hardware configuration, target object - and is used to identify the correct analysis settings through the processing chain.  In particular it identifies the correct external observation parameters file with is used to generate header information for the FILTERBANK and Time Series (TIM) data files. Such parameters as the number of channels, the highest channel frequency and spacing between channels, the reference dispersion measure and sampling clock error correction.

Supervisory and Processing GUI Program

The original GUI program has been re-written to eliminate external calls to applications (except for the RTLSDR dongle drivers and the 'rtl_sdr.exe' data acquisition console program) and includes all steps in the data processing chain.

(Click for larger image)

NOTE: The software shown here is hard-coded specifically for the NRARAO hardware setup and is not available for general use. Please don't ask (unless a member of the Neutron Star Group) as a refusal may offend.

The GUI main panel is divided into sub-panels with the processing sequence going from left to right.  Each sub-panel is described below. The first column of sub-panels comprise the 'OBSERVATORY INFORMATION', 'VELA PULSAR INFORMATION' and 'TOPOCENTRIC PARAMETERS' sub-panels.

Observatory Information Sub-Panel

This sub-panel displays the observatory location, current local and UTC time and date, Greenwich and Local Sidereal Times and the Modified Julian Day.

Vela Pulsar Information Sub-Panel
This sub-panel displays Vela coordinates (RA & DEC) and its current hour angle (HA - zero for transit time), the time until the next transit and the next transit time.  The current azimuth and elevation is displayed.  The elevation is colour-coded as green if above the horizon and red below.
Topocentric Parameters Sub-Panel

The current topocentric parameters are displayed in this sub-panel.  Each velocity component of the observer's motion relative to the Local Standard of Rest (LSR) is displayed. The total topocentric velocity (which is the sum of the components) is displayed.  Note that a positive velocity is means the observer's velocity vector is pointing away from the pulsar, and vice-versa (v = ds/dt).  A velocity away from the pulsar causes its observed spin frequency to be lower than actual due to the Doppler effect - so a positive velocity gives a negative Doppler shift on the frequency, and vice-versa.

Acquisition Sub-Panel

This sub-panel contains the settings for the RTLSDR dongle as well observation parameters as well enables for scheduled data acquisition and test runs.

The 'Observation Parameters File' field contains the filename of the parameters file for the current batch of data files.  To ensure the correct marriage of the observation data with its observation parameters the filename of the data file is parsed and compared to relevant values in the observation parameter filename.

The 'Duration' field sets how long data is acquired for and the 'Offset' field is the time offset from a transit observation.

The 'Sample Rate' field is used to set the sample rate of the RTLSDR dongle and the 'Gain' field sets the RTLSDR gain.  Both are drop-down lists which are populated with valid values for both settings.

The 'RF Centre Frequency' field is used to tune the RTLSDR dongle to the required observation frequency.

The 'Configuration ID' field sets the hardware configuration number which, along with the MJD start of the observation, observation frequency, target pulsar ID, sample rate and is embedded into the filename of the data file.

The file size (in Gb) for the set sample rate and observation duration is calculated and displayed.  The constructed filename is shown.  The data save location is shown in the 'Data Directory Path' field.

The 'Digital AGC Enable' checkbox enables/disables this function on the RTLSDR dongle. It is normally set as it compensates for small drifts in system gain and test have shown that it does not affect the sensitivity.

The 'RFS 10Hz Cal.' checkbox flags that the current data run is for the simulated pulsar source.

The 'Save Settings' makes sure any settings on this sub-panel (and some on other panels) are restored next time the application is run.

The 'Scheduler Toggle' enables/disables the scheduler which starts data acquisition each day when Vela comes into the beamwidth of the antenna.

'Minutes to Next Data Run' and 'Start Time of Next Data Run' are just that.  The 'Estimated Finish Time' field value is calculated from the start time and the duration of the observation run.

The 'Record Now' button starts recording immediately for test runs according to the above set parameters and is only enabled when the scheduler is disabled.

Format Conversion Sub-Panel

In this sub-panel the selected raw IQ data filename is shown and the filename is parsed to calculate and populate the Observation Date, Observation Start Time (UTC) and MJD observation start time fields.

The number of samples is calculated and displayed as well as the sample rate and observation duration in seconds and minutes.

The Target Pulsar is read from the filename and displayed as well as the observation frequency and configuration ID.  The number of channels for the filterbank format is shown as well as the reference DM for de-dispersion.

The 'DM Scan' function is currently not implemented and therefore the 'DM Range' setting is unused.

The 'Filterbank Batch' button opens a multi-file select dialog which allows batch processing of a range of selected raw IQ data (filename.bin) files to filterbank format.

The larger 'Convert to FIL Format' button opens a single file select dialog for processing single raw IQ data files.

The 'De-disperse to TIM Format' button opens a single file select dialog for FILTERBANK format files (filename.fil) which converts a single FILTERBANK format file to a Time Series (filename.tim) format file.

Both FILTERBANK (filename.fil) and Time Series (filename.tim) format files can be input to SIGPROC and PRESTO applications for presenting data in a format familiar to professional astronomers.

Automatic Process EnableeSub-PanelSub-Panelb-PanelSub-Panelb-Panel

This sub-panel contains the enable/disable checkbox for the various stages of processing.  Checking these checkboxes enables the relevant processes to be performed sequentially after a data acquisition run (observation). Any disabled process will prevent that process and any the following processes to be disabled.

For autonomous operation of the complete process from automatic data acquisition to webpage update all checkboxes should be ticked.


Period Search Sub-Panel

In this sub-panel the final results are displayed.

The observation MJD is read from the filename and the predicted barycentric  frequency and period is calculated from the current ephemeris (marked as JLP in this example to designate the supplier as Jim L. Palfreyman from UTAS).

From the topocentric Doppler shift for this time, the topocentric frequency and period is calculated and displayed.

The 'Best SNR Scan' chart (small plot on the top-right) logs the result of epoch folding over a range of periods.  The thin light-grey trace is the plot of the SNR results at each period step, while the thicker white trace is a running average plot.  This trace is coloured green in the regions where the SNR exceeds 4σ and purple where it exceeds 6σ.  The search algorithm selects the peak of the moving average trace as the best SNR period.

The example graphic shows that this search was done in 100 steps in 0.1 ppm increments over a range of ±5 ppm of the predicted period.

At the end of the search the data is folded at the best SNR period and is taken as the observed period.

The time bins data is rotated automatically to place the peak of the pulse in the centre phase position of the graph if the 'Auto Centre Peak' checkbox is ticked.

The 'Best SNR Period Scan' checkbox enables the default mode of period searching (when disabled there is just one fold done at the predicted period for the observation date).

The 'Use Smoothed Peak' checkbox enables the choice of best SNR period to be the peak of the moving average plot.  When unticked the best SNR period is taken as the highest peak of the unsmoothed light-grey plot.

The 'Transit Doppler Track' checkbox enables/disables the algorithm for correcting the fold period during the traversal of the observation data to compensate for the change in Doppler shift during the observation period.  For Vela there is a Doppler shift change of about 0.4 ppm during the nominal 120 minutes observation as Vela transits due to the Earth's rotation on its axis.

The 'Half Bin Offset' checkbox enables/disables a half bin width offset in the epoch folding starting point to check if in either condition the peak falls between two adjacent time bins.  To do this autonomously would require two runs of epoch folding to find the better SNR and so, initially, this is left disabled by default.

The '10x Scan Step Zoom' checkbox enables/disables stepping through a very fine scan in terms of period increments.  At the level of SNR with the present antenna aperture this is not valid, so is left unchecked by default.

The '2x Period' checkbox enables/disables folding at twice the period.  This is a verification check as false peaks due to noise disappear (typically) when the data is folded at twice the period.  A true pulsar signal will show two pulse peaks when this function is enabled.

There are buttons for a period search on a single file and batch processing of period searches for a group of files labelled 'Period Search' and 'Period Search batch' respectively.

Lastly, there are spin-boxes to set the period search range, number of period search steps and number of profile time bins.

Glitch Monitor Sub-Panel

The 'Glitch Monitor' sub-panel displays an output result which is the scientific focus of the project - to detect a glitch in the Vela pulsar's spin frequency.

After each day's data has been analysed and a 'best SNR period' has been searched for and assigned, the offset of this spin frequency (period-1) from the predicted spin frequency is calculated in ppm.  The offset ppm for each day that data was collected is plotted in blue dots against the blue left-hand Y-axis scale.

The standard deviation (σ) and mean (μ) statistics for the daily spin frequency offsets in ppm is calculated and displayed in the blue box located in the bottom-left of the sub-panel.  Values for 4σ and 6σ levels for the offsets are calculated.  A green horizontal line marks the 4σ level, while a purple line marks the 6σ level.

The daily SNR in dB is plotting in yellow dots against the yellow right-hand scale.  The mean (μ) SNR is calculated and displayed.  Also the 'SNR Gate' level is shown.  This can be varied to exclude poor SNR results from the glitch statistics.

Status Message Window

Finally, the 'Status' message window presents bulk information about the progress of processing, including processing time, header information, results of intermediate calculations (i.e., I and Q channels ADC offsets), time series format data statistics, clipping levels as well as the final best SNR period and offset.

The message window is useful to view the current status, but also after processing is completed for the day, scrolling back through the messages provides information of its progress through processing the day's data.