Spectral Tweets: Dynamic Spectrum Sensing for Android...

21
Spectral Tweets: Dynamic Spectrum Sensing for Android Devices Advisor: Nikos Sidiropoulos Team Members: Martin Corbett, Michael Fiore, Alex Hulke, Grayson Malinowski, Michael Owczarek Submission Date: 12/17/2012

Transcript of Spectral Tweets: Dynamic Spectrum Sensing for Android...

Page 1: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

Spectral Tweets: Dynamic Spectrum Sensing for Android Devices

Advisor: Nikos Sidiropoulos

Team Members:

Martin Corbett, Michael Fiore, Alex Hulke, Grayson Malinowski, Michael Owczarek

Submission Date: 12/17/2012

Page 2: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

2

Table of Contents

Table of Contents ...........................................................................................................................2

Executive summary ........................................................................................................................3

Problem Definition .........................................................................................................................4

Background & Key Concepts ..............................................................................................4

Customer Needs ...................................................................................................................6

Product Design Specifications .............................................................................................6

Concept Design ....................................................................................................................6

Design Description .........................................................................................................................7

Android Application ............................................................................................................7

PC Client ..............................................................................................................................9

Detailed Description ..............................................................................................10

Assumptions & Simplifications .............................................................................10

Matlab Script ......................................................................................................................11

Design Evaluation ........................................................................................................................12

Android Application ..........................................................................................................12

PC Client ............................................................................................................................13

Matlab Script ......................................................................................................................13

Conclusions & Recommendations ..............................................................................................14

Product Design Specification .............................................................................................14

Ideas for Improvement .......................................................................................................16

Design Process ...................................................................................................................17

Budget ................................................................................................................................17

Schedule .............................................................................................................................18

References .....................................................................................................................................19

Appendix A ...................................................................................................................................20

Page 3: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

3

Executive Summary

Effective utilization of network resources is becoming increasingly more important as the

amount of network traffic grows. Dynamic Spectrum Sensing will prove to be an important tool

in advancing the cause of efficient network utilization. Our client needs a tool that can be used

to gather network information and process it into a useable form, which is to be utilized for

network mapping, network planning, spectrum analysis, and other applications. One of the main

goals of this project is to map wireless networks by determining the physical locations of access

points and interpolating WIFI signal strength in between them.

Our solution to our client’s needs involves three major components. The first component

is an Android application that periodically gathers GPS and WIFI information, encodes it in a

character string, and uploads it to the internet using Twitter. The second component is a

Windows program that will download the information from Twitter, parse the character string

into useful pieces of information, and save them all in a format readable by Matlab. The final

component is a Matlab script that will process the saved data and output it in a human readable

format, one possibility being a Google Maps overlay.

The current scope of this project is limited to wireless networks, but the concept could be

expanded to other types of radio signals, including cellular, Bluetooth, and others. There are two

major limitations that this project must currently deal with: communicating with GPS satellites

and maintaining an internet connection. These are both factors that would affect the

performance of the Android application.

An alternative to our solution method is to use a software radio to gather the information

and upload the information to a terminal. We chose the Android application and Twitter because

software radios are not as widely available or as portable as Android devices, both the Android

and Twitter API’s (Application Programming Interfaces) are well documented and widely used,

giving us a lot of code and information we can use to quickly get started and accomplish our

goals. For these reasons, we decided that the Android, Twitter, and Matlab solution we chose to

implement better fit our client’s needs and our relatively short timeframe.

In testing, we discovered a few bugs in the Android code, but we were able to work them

out. We also needed to tweak the Matlab code to correctly account for errors in the

approximations when we started using real data.

There are a number of improvements and advances that can be made to our finished product:

Page 4: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

4

Expanding to other types of radio signals

Improving the user interface to the Android application and the Windows program

Adding features to the Android application and the Windows program

This project should prove to be a useful starting point from which other individuals or groups

can expand and add functionality to accomplish even more complicated and rewarding

objectives.

Problem Definition

Background & Key Concepts

An Android Device, such as a cellular phone, can be an extremely robust tool. Because

of the built in Wi-Fi functionality, it is a simple task to locate and connect to available networks.

A big part of Wi-Fi signal strength is related to its proximity to a Wi-Fi access point, but since

these access points don’t contain GPS information an end user might have to randomly relocate

themselves several times in order to obtain a decent signal strength.

Our goal is to fix this by collecting data that will be used to gauge the locations of the

Wi-Fi access points which is a first step to gaining dynamic spectrum access and sensing

capabilities. Sensing refers to the ability to be able to take readings of the current spectrum (Wi-

Fi in this particular case) in real-time. Access is all about taking that data and dynamically using

the entire spectrum in order to utilize its bandwidth effectively.

We first programmed an Android App that takes periodic measurements of Wi-Fi signal

strength across the Wi-Fi spectrum and the device’s current GPS location. The data consists of

the signal’s channel number, MAC address, and signal strength and the current GPS location.

Then the data is then encoded to fit into a single Tweet and uploaded to a designated Twitter

account. A sample tweet contains the hashtag first, then each MAC address and signal strength

pair (one character for the strength measurement and the last nine characters of the MAC

address), and finally the latitude and longitude of the phone’s location.

Next, the data is periodically downloaded and decoded by a Windows Client on the back

end which will also save the data in Matlab format. This client assumes the data encoded in the

tweet is formatted as specified above, but it also contains some error checking to make sure we

won’t get unwanted results. Key components include: a 3rd

party program, the Archivist, which

downloads the tweets and a java-based parser decodes/encodes the tweet to be readable for

Page 5: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

5

Matlab. It is saved as a table where each row is one measurement. This table can easily be

sorted by MAC address, location, time at which it was taken, etc.

Finally, the data will be processed and converted into a dynamic spectrum sensing graph

which is the final product. Our Matlab script will work on one particular MAC address, process

all data for that address, and plot all data points with the proposed access point. The graph will

contain the location of taken measurements with a circle around it indicating that readings’

strength and the calculated location of an access point.

MatlabKeller Hall

Figure 1: Brief Overview of Design

The figure above displays our overall goal in graphical format. Following it in a

clockwise fashion, the end goal is to generate a heat map to pinpoint the location of an access

point in Keller Hall.

Page 6: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

6

Customer Needs

# Need Importance

1 Detect Wi-Fi signal strength, MAC address, and channel numbers 5

2 Detect Wi-Fi and phone GPS locations automatically 5

3 Use Android App to collect data and upload to Twitter 5

4 Download data from Twitter to a PC for analysis 5

5 Generate dynamic spectrum sensing graph for display on PC 5

6 GPS and Wi-Fi data come only from the Android App 5

7 Android App must run reasonably well on a cellular phone 3

8 Reasonable, competitive cost (FREE) 3

As one can see from the table above, most of the needs center around the Android device/app.

This is due to the fact that all the data-gathering will be done from this device, so it will need to

be efficient and reliable. Although the needs of the customer seem relatively simple, the

implementation is far tougher and will be discussed in detail later.

Product Design Specifications

Due to the fact that this project was largely based in computer programming, we felt that

any potential design specifications were better described as customer needs, which are above, or

as a design implementation, which will be discussed below.

Concept Design

Our advisor, Professor Sidiropoulos, had already done a lot of research on this topic

before handing it over to us to implement. Therefore, many design decisions had already been

made including: using an Android device to take measurements as there is great documentation

to program an Android app and devices were relatively cheap, using Twitter as our data storage

model since that, too, offered a lot of help to be able to implement transference of data from our

Android devices to Matlab, and the use of Matlab as our data processor since Prof. Sidiropoulos

already had extensive knowledge working with Matlab. That being said, many decisions still

needed to be made to successfully reach our goal. Most notable was deciding on how to

interface between the three parts of our overall design. This decision, as well as the choices we

made, will now be discussed at length.

Page 7: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

7

Design Description

Android Application

Figure 2: Android App Block Diagram

The data gathering aspect of our project is our Android application. It is designed to

periodically gather the GPS and Wi-Fi information around the Android device that it is installed

on and send that information over Twitter so our PC Twitter Client can further process it. There

are three major components that make up the guts of our application. The Wi-Fi scanner gathers

the MAC addresses and signal strength on each channel of each router. The GPS locator is used

for mapping the Android device’s current location. The Twitter component handles logging into

Twitter and sending off each tweet with our specified hashtag, Wi-Fi, and GPS information. A

textbox was added to be able to send a single tweet for debugging purposes. Additionally a

display at the bottom of the application shows the number of tweets sent and the runtime since

the service has started, the number of GPS and Wi-Fi scans gathered since the last tweet was

Page 8: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

8

sent, the Wi-Fi information sent in the last tweet, and the last tweet that was sent formatted to our

specifications.

There is a helper service embedded in our Android application that splits up the Wi-Fi

and GPS components into separate threads. This allows the application to easily run on Android

devices without taking up much of the CPU and memory of the device. It also allows the

application to run each component in parallel and at different frequencies. The Twitter code

comprises of static functions since it needs to be called once to log in and periodically afterwards

once the Wi-Fi and GPS components have finished gathering their information.

The Wi-Fi component runs continuously gathering the signal strength (in dBm) of each

router it is able to find over all eleven available channels for Wi-Fi and categorizes each router

by its MAC address. The reason we categorize each router by their MAC address is that for any

given network each router must have a unique MAC address which allows us to easily

distinguish the different routers. After gathering the Wi-Fi information our application loops

through each Wi-Fi channel and saves the strongest signal strength on that channel with its

corresponding MAC address. This is because the higher the signal strength the more accurate the

measurement is, also there is a limited amount of information each tweet can send and this helps

trim down that information into the most important information to our project.

The GPS component runs periodically set by a timer. This is for many reasons, mainly

Twitter has a cap of 1,000 tweets that can be sent a day which is also broken down into smaller

semi-hourly intervals, but also because the design for our project is to crowed source this

application and there needs to be time for users to move about to gather multiple data points in

different locations. Because of the way that the GPS locator is set up in the Android device when

the function is called to get the devices current location it gathers a set of locations as accurately

as it can, saves those locations and averages them out to get an estimate of the devices location.

It is important to note that our application only uses GPS satellites to get its location and does not

include gathering location information from the routers; this is because our main goal is to

localize the routers and using the routers own information would defeat this purpose.

After the Wi-Fi and GPS information is gathered our application formats the information

into a 139 character string to then be tweeted. The tweet includes our hashtag (#ajd7vF35), the

eleven available channels for Wi-Fi, each channel containing the signal strength compressed

from the two digit dBm to a single character and the last nine characters of the corresponding

Page 9: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

9

MAC address, and the latitude and longitudinal coordinates to the sixth decimal point, which if

measured accurately would give to the nearest centimeter.

PC Client

The PC client exists to facilitate communication between the Android app which collects

the data and the Matlab script which analyzes the data. It is implemented with three parts: The

Archivist, a program that searches for Tweets and downloads them, a Java parsing program

which takes in the downloaded Tweets and outputs a Matlab .m file, and a Windows Batch file

that runs it all almost automatically and at start up.

Page 10: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

10

Figure 3: PC Client Functional Block Diagram

Detailed Description

The design starts with the Windows Batch file. The Batch file is placed in the startup

folder on the Windows OS so it will run at start up. It then opens the Archivist program and

waits for a user to input in the hashtag and save the results. After the user presses ‘Enter’ it then

runs the Java parsing program which decodes the data and outputs the corresponding Matlab .m

file.

The next part of the design is ‘The Archivist’ program. This program allows a user to

search for Tweets based on a keyword or hashtag. In this case, the user would search for our

hashtag. Once the search finishes, it shows the most recent results (up to 3000 tweets) that have

the keyword. The user can then save these results in a tab delimited text file. The program

automatically updates your search every 5 minutes, so the batch file simply opens it once and lets

it refresh automatically.

The last part of the design is the Java parsing program. This program decodes the Tweets

and stores them in a Matlab format. It starts by asking the user the minimum data points

required for each MAC address. This has to be a minimum of 3 to avoid localization ambiguity

even with perfect distance measurements, but typically it is set to 20 or more to have more robust

data points. Then it searches for the most popular MAC addresses and orders them based on

how many pieces of data each MAC address has. Then, the Tweets are decoded and the program

checks for errors, checks to make sure all data is in the acceptable range, and checks that there

are enough data points to produce accurate results. After this has completed, the program takes

each MAC address that has at least the minimum number of data points and outputs a text file for

each MAC address that contains the Wi-Fi and GPS data in the Matlab format. It also orders

these files from most data points to least. After this the data is ready to be processed in Matlab.

Assumptions and Simplifications

Many things were assumed, such as the basic location of our Tweets, the range of valid

signal strengths, and that the data being received from the Android device was correct.

Page 11: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

11

Matlab Script

The final processing of data for this project is handled by Matlab. The goal of the Matlab

script is to take an array of data points as its input and output the location of the best guess

estimate for the Wi-Fi router associated with the input points.

The input array consists of datapoints collected for a single MAC address saved as a .m

file. These input files are run in Matlab to load the variable that contains the data into the

workspace. A global variable which stores the output locations is also initialized. This variable

is an array that has the most recently calculated output location appended to its end.

Once the workspace has been set up, the localization script is callled with a set of datapoints as

its input. These datapoints are stored in a matrix of the form [latitude, longitude, signal

amplitude;]. Using this matrix format takes advantage of Matlab’s ability to perform

mathematical operations on all elements of a matrix. This allows a variable and arbitrary number

of data points to be input to the program. The variable to store the output is also input when the

localization script is called.

The first step to estimating the router location is to convert the received signal strength

from dBm to distance in decimal degrees. The equation governing this relationship is of the

general form:

Where Pr is received power in Watts, Pt is transmitted power in Watts, d is the distance and c

and α are arbitrary constants. Since our power measurments are in dBm, the equation becomes:

or

Where β and α are constants and is received power – transmitted power in dBm. The received

power is measured by the Android app and the transmitted power can be inferred from common

router specifications. β and α must be solved in order to calibrate the equation. This was done

by taking a series of signal strength measurements from known distances with the router in line

of sight to the data collecting phone and then fitting this data until the constants were solved.

The converted distances for each input datapoint are then stored in an array.

The script then uses the Gauss-Newton algorithm to find the point to minimize the mean

square error of the router location guess. This error is equal to the difference of the distance

from each measured point to the estimated point and the measured signal strength converted into

Page 12: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

12

distance. The Gauss-Newton algorithm uses successive iterations to converge to a point. Starting

with an initial guess ( ) for the minimum, the method proceeds by the iterations ( )

( ) where ( )

. is the Jacobian matrix of the distance function, which is

equivalent to [(difference of distance from estimated point to measured point and measured

distance on x-axis)/(total error between measured distance and estimated distance), {same but for

y asix}]. This algorithm iterates a set number of times and then outputs the coordinates of the

estimated locations of the WiFi router being localized. These coordinates are added to the array

of calculated output coordinates so that they can easily be plotted all at once.

Design Evaluation

Android App

There have been many iterations of our Android application. To start out we created three

separate applications handling the three major components, Wi-Fi, GPS, and Twitter. To test the

Wi-Fi application we took multiple routers with known MAC addresses and distances from a

testing point and tested to make sure our application could see all of the MAC addresses and

gather appropriate signal strengths of each router. To test the GPS locator we went around and

gathered GPS locations from multiple spots and mapped their location to test the accuracy of the

android devices. One important note to make was that the GPS locator worked wonderfully as

long as there was a good line of site to the GPS satellites. This means that when taking

measurements it is best to be outside, or in a building made out of materials that minimally

interfere with the line of site. This caused trouble when taking measurements inside of the

buildings at the University of Minnesota since most of their buildings are made out of concrete

and rebar which throw off the GPS locator by a wide margin if the locator is able to

communicate with the satellites at all. Testing the Twitter portion of the code was just the

process of logging into a Twitter account, posting a tweet, and verifying on the Twitter website

that the tweet was posted. Finally after the three components were tested we combined them into

a single application with the added helper service to run the components in parallel. The same

tests were then run again to verify that the code continued to work after the merger.

PC Client

Page 13: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

13

The Batch file was tested iteratively. A number of frequencies were chosen for how

often it ran, until we settled on every hour.

The Archivist Program was tested by Tweeting specific things from an account and

checking if the program recognized those Tweets and how long it took. We were able to verify

that it was searching for and recording the correct Tweets by just checking our Twitter Accounts

and verifying the information against what The Archivist was outputting.

The Java parsing program was tested by taking in sample tweets first and comparing their

decoding and output to output that was decoded by hand. The results would be decoded by hand

and placed into a Matlab file and the correctness would be verified. After some trial and error,

some minor formatting errors were fixed and the program was verified to be correctly working.

Matlab Script

The initial evaluation testing of the Matlab script was limited to testing the Gauss-

Newton algorithm with dummy data. This data was not generated by the Android app because

the app was not yet completed at the time. The data was created with the distances pre-

calculated in decimal degrees according to their actual distance to the point. This preliminary

testing proved that the algorithm could accurately localize a point if the measured data was

accurate.

When system integration testing was performed it became apparent that GPS

measurements were highly inaccurate when taken inside Keller Hall. It was found that reliable

data could only be gathered under the condition that the phone was outside the building for good

GPS measurements while at the same time having line of sight to a router through a window to

limit the WiFi signal attenuation. After sufficient data was gathered using this methodology it

became possible to calibrate the function for converting signal strength into distance. The script

was then able to be run as the end part of the integrated system of Android app, Windows client

and Matlab. The completed script localized a router location about 2 meters from where the

router actually was using data gathered with proper methodology.

Conclusions and Recommendations

We successfully implemented a solution to our customer’s problem. It contained three

major parts: an Android application that periodically gathers and tweets GPS and Wi-Fi

Page 14: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

14

information, a PC Client software that periodically downloads new tweets, decodes them, and

saves them in a format readable by Matlab, and a Matlab script that processes the decoded

information and generates an easy to understand image of the results. Below is a map showing

how our solution estimated the location of an access point in Keller Hall. The red cross shows

the estimated location and the accuracy is within 2-3 meters.

Following are in-depth discussion of how our solution met the customer’s requirements and

potential improvements that can be made to the current solution.

Product Design Specification

Our solution to our customer’s problem successfully met all of the required

specifications. We developed an automated system which was able to successfully localize an

access point based on GPS location and Wi-Fi signal strength measurements made by Android

devices. Specifically, the following customer needs were met:

Page 15: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

15

1. The Android application must run in the background; it will continue to gather and report

GPS and Wi-Fi information even if the user navigates to another application or activity.

2. The Android application must not noticeably impact the performance of a typical

Android device.

3. The Android application must encode the GPS and Wi-Fi data in such a way that the

encoded information is able to fit in a single tweet (< 140 characters).

4. The Android application must send tweets at a rate that will provide a good sample of the

spectrum, but does not place undue strain on the device’s battery (~ every 60 seconds).

5. The PC Client software must not noticeably impact the performance of the host computer

it is running on.

6. The PC Client must reject tweets that either were not sent by our application or were not

encoded properly.

7. The Matlab script must generate results in the form of a map or image that can be easily

explained to a casual observer.

There are a number of strengths in our solution to our customer’s problem but also a

number of weaknesses. We will specifically discuss the degree to which this solution is

automated, the implications of only using GPS satellites to gather location data, the user of

Twitter as a medium for reporting data, and the use of Android devices as an information

gathering medium and the concept of “crowdsourcing” this solution for widespread use.

Our goal for this project, both for our own and our customer’s ease of use, was to make

this entire process automated. A current weakness is that we were only partially successful on

that front. The Android application, after it is started, is completely automated; however, the

user must log into a Twitter account and authorize our application to send tweets on his or her

behalf the first time he or she uses the application. We would like to see this part automated as

well. The PC Client software has successfully been automated; it is controlled by a batch script

that can be automatically run by the Windows operating system on the host computer. The

Matlab script is not yet automated and must be manually run on the host computer each time the

user wishes to view new data.

One major weakness of our solution right now is that it only uses GPS satellites to get a

location estimate. This system works well outdoors where there is generally a good line of sight

with the GPS satellites. It begins to break down when the Android devices are indoors and

Page 16: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

16

trying to acquire a location estimate. The estimates that the phones get are inaccurate and

difficult to receive at all in many cases. The Android application was written this way with the

localization of access points as the major goal, but in the future when dynamic spectrum sensing

and access are the goals, other resources like Wi-Fi access points and cellular towers can be used

in conjunction with GPS satellites to get a better location estimate inside buildings and crowded

metropolitan areas.

Twitter was chosen as our communication medium for a number of reasons. It has a

well-defined and well-documented API (Application Programming Interface), which means that

the entire infrastructure we’d need to use it was already in place. There is also a lot of sample

code and reference material available which meant that we could quickly begin interfacing with

the product from both Android and Windows. There are, however, some limitations associated

with using Twitter. A Twitter account is only allowed to send so many tweets in a given period

of time, which in turn limits the rate at which we can gather and send GPS and Wi-Fi

information for processing. This also means that we cannot use “bot accounts” that would be the

same across many Android devices because each of those accounts would very quickly reach the

rate limit. Right now, the user must create a separate Twitter account just for this application;

this is not a very user friendly solution. Also, the 140 character limit for a tweet could be a

problem in the future. We successfully fit all the information we are currently gathering into one

tweet, but it is likely that in the future more information will be necessary and 140 characters

will no longer be enough space for it all.

The Android platform was chosen because it is widely used by consumers and it is

extremely well documented. This allowed us to quickly begin developing, testing, and

debugging our application. We were also able to cheaply and easily procure Android devices to

use for live testing of the application. The usage of Android devices also ties well into the idea

of “crowdsourcing” the application for widespread use, because Android devices are among the

most used, with millions of users all over the world.

Ideas for Improvements

Our solution was a first step towards a system for distributed spectrum sensing and

distributed spectrum access. There are many improvements that can be made to improve the

efficiency, robustness, and usability of our solution:

Page 17: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

17

Replace Twitter as the communication medium (dedicated servers for receiving and

processing spectrum information)

Extend this application to other radio bands (cellular networks, radio bands, television

broadcast bands, etc)

Improve the user interface for the Android application (allow users to specify how often

information is sent, whether or not application can use their cellular data plan, etc)

Test the Android application on different versions of the Android operation system and

on Android devices from different manufacturers

Completely automate the information processing system (PC Client and Matlab script)

Implement the Matlab script in such a way that it can “learn” from data it has already

processed and automatically calibrate itself on a regular basis in order to return even

more accurate results

“Crowdsource” the application in order to gather data on a much larger scale

Design Process

One of the first things we did when planning our solution to this project was create a

timeline for the development of the solution and a budget. The timeline and budget are attached

at the end of this section.

We ended up using our budget as we had originally planned, to buy Android phones to

use for testing our solution. We did not exactly follow the timeline as we had originally planned

it. We started quickly at the beginning of September, but slowed down in mid-October. We

began to pick up the pace again in the middle of November and were able to finish our solution

on schedule. The slowdown in the middle of October did stop us from doing more testing at the

end of the project, which would have proved useful.

Our design process was generally successful, as we were able to develop all three parts of

our solution in parallel and then bring them together for testing with few integration issues.

Budget

Our budget for this project was $300. We spent that money on three Android phones

used for testing the solution.

Page 18: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

18

Schedule

Month: September October November December

Week: 1 2 3 4 1 2 3 4 5 1 2 3 4 1 2 3

Tasks:

Determine initial project scope x x

Develop schedule x x

Draft design specifications x x

Specify program interfacing x x

Order Android phones x x

Design proposal x x

Design review presentation x x

Code Android program x x x x x x

Code Windows client x x x x

Develop MATLAB algorithms x x x x x x

System integration x x x x

System testing x x x x

Product launch presentation x x x

Final report x x x

Milestones:

Put first test app on phone x

Output MATLAB plot x

Import first Twitter message x

Page 19: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

19

References

Samsung Galaxy Precedent Specifications:

http://www.samsung.com/us/mobile/cell-phones/SCH-M828CAATFN-

specs

Wi-Fi Specifications:

https://www.Wi-Fi.org/members/certifications-testing/specifications

GPS Specifications:

http://gps.about.com/od/beforeyoubuy/a/howgpsworks.htm

Twitter Development Support:

https://dev.twitter.com/

Matlab Development Support:

http://www.mathworks.com/support/

Page 20: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

20

Appendix A: Experience and Resources Available

Personnel:

a. Professor Sidiropoulos, Nikos

b. He, Zhongyu (TA)

c. Corbett, Martin

d. Fiore, Michael

e. Hulke, Alex

f. Malinowski, Grayson

g. Owczarek, Michael

Facilities:

University of Minnesota, Kenneth H. Keller Hall, Lab 3-140.

Equipment/Parts:

a. Lab computer in Kenneth H. Keller Hall

b. 3 – Straight Talk Samsung Galaxy Precedent Android Prepaid Phones

3.2" touch screen display

Android 2.2 operating system

GPS enabled

3G/Wi-Fi connectivity

800MHz processor

Supports microSD cards up to 32GB

Gravity sensor/tilt and shake

Hearing aid compatible (HAC) rating: M4/T4

Battery talk time up to 6 h/Standby time up to 9 days

Includes battery (Lithium Ion), charger, and 2GB microSD card

Model No. STSAM828CPWPSDSV

c. 1 – LG Optimus V Android Phone

3.2" touch screen display

Android 2.2 operating system

GPS enabled

3G/Wi-Fi connectivity

600MHz processor

Page 21: Spectral Tweets: Dynamic Spectrum Sensing for Android Devicespeople.ece.umn.edu/~nikos/SpectralTweetersFinalReport.pdf · 2012-12-17 · goals. For these reasons, we decided that

21

Supports microSD cards up to 32GB

Gravity sensor/tilt and shake

Hearing aid compatible (HAC) rating: M4/T4

Battery talk time up to 5 h/Standby time up to 8 days

Includes battery (Lithium Ion), charger, and 2GB microSD card

Model No. STSAM828CPWPSDSV