Skip to content
This repository has been archived by the owner on Jan 4, 2025. It is now read-only.

Summer 2013: Data Collection and Analysis

lemonnish edited this page Dec 30, 2013 · 10 revisions

Return to Summer 2013 home page

Jump to sections:

Techniques for Data Collection

Radio Transmission

Data was collected using both the 219MHz Holohil radio collar transmitter and a constant software-defined radio (SDR) transmitter. Initial analysis of the radio collar source showed that the signal was incredibly hard to characterize, since it varied in length and shape depending on exactly how the receiver was tuned. To remove a major source of uncertainty when debugging the system, GNURadio was used to create an SDR signal with a constant content frequency, that was frequency modulated using the same carrier frequency of the radio collar transmitters.

comparison of different radio collar transmitter signals

One of the GNURadio functions included in the program install was slightly edited before being used to transmit a constant frequency signal using a specified frequency modulation.

Antenna Driver

An FPGA was used to turn on successive antennas in the array at a reliable frequency. The particular FPGA that was used was an Altera Cyclone IV GX (EP4CGX150DF31C7) that was part of the DEV2i-150 board. To simulate rotating a single antenna in a circle, a 25% pulse train was sent to each antenna, where each antenna driving signal is phase shifted by 90 degrees relative the signals sent to its neighbors.

oscilloscope image of two adjacent signals used to drive the antenna rotations

FPGA

The rotation frequency can be changed by toggling the positions of switches 10 through 17, as shown in the above image. Multiplying the binary value of the eight switches by 100Hz gives the rotation frequency to within less than 1Hz. Any discrepancy is due to division rounding errors. Changing the positions of switches 1 through 3 allows the user to change a number of different output characteristics:

  • whether the antenna array is rotating at the designated frequency or whether only one antenna is on
  • whether all antennas are turned on
  • whether the antennas are assumed to be active low or active high by inverting all signals

Data Collection

Data was collected using a variety of tools. Initially, the National Instruments box in SeaLab was used to collect data, but because the setup was immobile, a Tektronix oscilloscope was used when collecting data from the SDR signal.

The National Instruments box contained an 8-bit digitizer (NI PXIe-5186, 5GHz, 12.5GS/s) and a controller (NI PXIe-8135, 2.3 GHz quad-core) in a 9-slot chassis (NI PXIe-1078). Data was collected using the pre-installed Soft Front Panel, and the visible scope data was saved to a single .lvm file. The filename had a user defined format of antX.Y.lvm, where X was the antenna in front of which the radio collar transmitter was situated, and Y was the test number. The Tektronix oscilloscope (TDS 1012C-EDU, two channel, 100MHz, 1GS/s) saved two-channel data as two individual .csv data files, accompanied by a .bmp image of the oscilloscope front panel and .set oscilloscope setup file. All four of these files were contained in a single folder of name ALLxxxx, where xxxx was the 4-digit test number automatically generated by the oscilloscope.

Techniques for Data Analysis

Eventually, all data analysis in this project will occur on a microcontroller or in hardware (such as switched capacitor filters and integrated chips. However, for ease of testing purposes, this summer all data was processed using Matlab. This processing included several distinct sections:

Data Import

In order to read the data files output by the various testing devices, the data files were opened and any meaningful information was extracted. In order to reduce the amount of time users spent personalizing the same main function for different file types, several helper functions were written to identify the type of file being opened, and to determine what information stored within was important.

Frequency Analysis

In order to show that there the rotating antenna array produced a receiver output with a significant frequency content that matched the doppler shift, the Finite Fourier Transform (FFT) was performed on the raw receiver output.

Bandpass Filtering

In order to simulate a series of switched capacitor bandpass filters of decreasing frequency width, a series of bandpass filters were designed. By changing an array of numbers in the main Matlab function, the number and order of filters, and the frequency width of the bandpasses can be varied.

Zero-Crossings

In order to determine the phase shift between the filtered signal and one of the pulse trains used to rotate the antennas, the zero-crossings of the two signals were compared. This was accomplished by counting the number of samples between each zero-crossing in the filtered signal and the most recently occurring zero-crossing in the pulse train. The ratio of that number and the length of the pulse train period was used to determine the ratio of some number of degrees to 360, or the total number of degrees in one full rotation. The calculated number of degrees was then determined to be the phase shift, or zero-crossing angle, for that data point.

The average of the zero-crossing angles was calculated in order to determine whether a correlation existed between the angle of approach of the transmitted signal and the phase shift. This was accomplished by taking the average of all zero-crossings for a sample several times, each time with the minimum value of the samples set at a different position. All data points that fell below that minimum were increased by 360 degrees. The average and standard deviation of the data was calculated for each situation, and the average that corresponded to the situation with the smallest standard deviation was deemed to be the most accurate representation of the data set's true average. In this way, the problems associated with performing statistical analysis on cyclical data (recall that 360 degrees is the same as 0 degrees) were avoided and the true mean of the data was determined.

Data Visualization

After each of these stages, graphs of the data output were produced using Matlab's plot functionality. These plots were then saved as .fig files, or Matlab editable figures, in order to preserve the ability to edit figure characteristics. All figures were also exported as .png images to remove the need to open Matlab to view results; this was accomplished using Oliver Woodford's export_fig function family.

All figures attempt to name the analysis techniques that were used to derive the results. This information includes the doppler shift frequency (which is the same as the center frequency of the bandpass filters), the width of all bandpass filters used on the data, the name of the original data file, and in front of which antenna the transmitter was approximately situated.

Results

Signal Generated Using GNURadio

When the antennas were rotating, a visible frequency peak at the doppler shift frequency was observed; using the pseudo doppler method is a viable method for determining angle of approach.

Raw data and frequency content of signal generated using GNURadio

After neglecting the initial data point discrepancies due to signal filtering, the phase shift can be calculated for different collections of data. The phase shift is relatively constant when the data was collected from a GNURadio defined transmission.

zero crossing plot for GNURadio transmission

However, a correlation between the angle of approach of the transmitting signal and the calculated phase shift has not yet been realized, as shown in the following screenshot. This data set was collected using a constant transmitted signal produced by GNURadio.

comparison between different zero crossing plots

Each column of plots shows the zero-crossing for three different data sets taken with the antenna in the exact same position. Each successive column shows the results with the antenna array rotated by 90 degrees relative to the transmitting antenna. The expected results would show each column having the same average phase shift, and adjacent columns have average phase shifts that were off by 90 degrees from their neighbors. Although no statistical analysis has been performed yet to test the linearity of the angle of approach versus the average phase shift, the lack of visual correlation in the above plot does not look promising.

Signal Generated Using the Holohill Radio Collar Transmitter

The signal output by the radio collar transmitter varies greatly depending on how the receiver is tuned and whether there is any RF noise in the environment, as shown at the top of the page.

Frequency analysis (FFT analysis and a series of bandpass filters of different widths, all centered around the doppler frequency) was performed for one of the signals. This signal can be divided into several different sections. Frequency analysis of the different sections reveal that the noisiest portion of the signal contains the doppler frequency with the largest amplitude. The doppler frequency can be isolated using successive bandpass filters of width 12Hz and 0.5Hz.

LEFT: frequency content after successive bandpass filters; RIGHT: raw signal

LEFT: successive bandpass filtering performed on the entire signal minus the tail; RIGHT: successive bandpass filtering performed on the entire signal

LEFT: successive bandpass filtering performed on the noisiest portion of the signal; RIGHT: successive bandpass filtering performed on the both the noisiest portion of the signal and the tail end

The phase shifts for the radio collar transmission show substantially less correlation than for the GNURadio transmission. Some pulse samples contain a linear trend for a portion of the signal, and some contain no visible correlation.

zero crossing plot of filtered data; note the absence of a trend

zero crossing plot of filtered data; note the linear trend