Eric Cherin


Software radio and cognitive radio are advanced technologies for future wireless communications systems.

Advisor: Professor Yu-Dong Yao


Weekly Reports:

Week 1 5/20 - 5/27

After touring the lab, I choose to work on an interactive simulation platform for cognitive networks. I decided to use Java Gui to create the interface. After I learned the basics of GUI, I downloaded and learned about Netbeans IDE and JFreeCharts. From there, I created a calculator with simple functions. I also created interactive Gaussian Distribution and uniform Distribution charts. 

Week 2 : 5/27 - 6/3

I read and analyzed these articles in order to understand Software and Cognitive Radio better:

Cognitive radio: making software radios more personal

The software radio architecture

Cognitive radio: brain-empowered wireless communications

I created a GUI with a graph for primary users, secondary users, and restricted users. Each channel can only be occupied by a single user. The Primary Users have priority over the Secondary and Restricted Users. The Secondary Users only have priority over the Restricted Users. Clicking on the "random" button will generate new values for all users, while entering text will change the amount of users in the given graph.

Week 3 : 6/3 - 6/10

I added a scatter plot to the GUI to display the simulation results of the percent of channels occupied vs the time for a secondary user to find a channel. The secondary user finds a channel by randomly selecting a channel and determining if the channel is occupied.  I needed to record how much time units the secondary user would take to find an open channel. Time was recorded by iterating a value each time the secondary user tested to see if a channel was occupied. For each point, this process was run thirty times to find the average amount of time the secondary user would take. 

I predicted that the amount of time would be less than 10  around the middle portion of the graph because if half the channels are full, then we should have a 50% chance that on the first try, the secondary user will find the channel. However, my simulation results were way off because the middle percentages were around 18 time units.

Week 4 : 6/10 - 6/17

In my code, I accidently assigned the number of secondary users to a random number generator after my method completed, so the results were very different than expected. I fixed the error and focused on making the secondary users independent from the primary users. Previously, secondary users could choose their locations only from slots that weren’t occupied by primary users. Now, secondary users had to determine if the channel had a primary user using it. I researched the Slotted Aloha Protocol. It processes a single time slot per iteration. The algorithm allows for multiple transmitters to send data in the same time slot. Once done with the initial time slot, the algorithm will iterate until all transmitters have sent their data.


Week 5 : 6/17 - 6/24

My goal of this week was to make a clearer layout for the GUI, implement the aloha protocol algorithm, and create graphs from simulation results of the algorithm. I organized the components of my GUI by placing the 3 bar graphs that represented primary, secondary, and restricted components into a column on the left of the window. I placed text boxes in the center and created room for simulation plots in the right of the window. I completed the aloha protocol algorithm and successfully graphed the results.


Week 6 : 6/24 - 7/1

My goal of this week was to figure out how to condense the 3 channels into a single channel and to create a graph that showed throughput and average time for a user to find a channel in response to the number of primary users using channels. I found that JFree chart has stacked bar graphs which will let me control what colors will make up a certain fractions of the bar. I also removed the restricted users because I am more concerned with the interactions among the secondary and primary users.



Week 7 : 7/1 - 7/8

To make my code easier to debug, I had the same function run 3 times for each of three simulation graphs. For example if I wanted to run the simulation 100 times, it would run 100 times for each graph with  300 times total. I combined my code to make it simulate a cognitive radio network more accurately.


Week 8 : 7/8 - 7/15

I implemented the stacked bar graphs to place more information into the channel graph. I decided it was only necessary to divide each channel, represented by a bar, into three sections. If there was no interference a solid color bar would be shown. However, if interference happened, two of the bottom bars would identify the users that interfered: secondary users can interfere with other secondary users, and secondary users can interfere with primary users. The top third of the bar will be red to show that interference took place.


Week 9 : 7/15 - 7/22

I wrote an outline of the report, commented the code, made sure my most recent implementation ran smoothly.


Week 10 : 7/22 - 7/29

Wrote up the report, edited it, and made a final version.