Distributed RF Measurement in GSM

 

Interim Report

 

 

 

 

 

 

 

"I pledge my honor that I have abided by the Stevens Honor System"

 

Group # 11:

Christian Budiarjo _____________________________

Kristen Daly __________________________________

Michelle Teixeira_______________________________

David Toner___________________________________

 

Date:

March 21, 2006

 

Advisor:

Prof. Uf Tureli

 

Coordinator:

Prof. Bruce McNair

 

 

Table of Contents                                                                                                      Page #

 

  1. Abstract                                                                                                          3
  2. Acknowledgements                                                                                        4
  3. Project Progress                                                                                             5
  4. Financial Analysis                                                                                          10
  5. Project Schedule                                                                                            11
  6. Conclusion                                                                                                      11
  7. Appendices                                                                                                     12-25

A1. Matlab Code                                                                                           12

A2. Preliminary Results                                                                                24

A3. Gantt Chart                                                                                             25

 

 

 

 

 

 

 

 

 

 

 

 

Abstract

With the evolution of new technology, a host of intelligent devices will begin to interact with users and communicate with each other.  Unfortunately, the resources to support open access to the spectrum do not exist.  This accessibility does not exist for two reasons.  Firstly, the licensing process for every device will prove to be tedious and expensive.  Secondly, it is not feasible to grant access to all mobile devices at every existing location.

            These limitations have been an obstacle to wireless application developers.  Since these spectrums are already licensed, their availability is limited.  However, they are not completely used.  Furthermore, since the license holders have complete control over the band, other users cannot use the spectrum.  This control limits bandwidth and scalability.

            Fortunately, the FCC has recently made a change in their regulations that allows the use of a single spectrum by more than one party.  Therefore, the goal of our project is to design and implement a system that can gather statistical information about the spectrum to determine the channel usage and to offer suggestions on how to reuse it. 

            In our project, we will focus on the GSM spectrums of both the Cellular and PCS bands for Hoboken.  We will implement a system that can utilize open channels in this spectrum.  Moreover, we will attempt to design a system where a number of devices can utilize the same spectrum without causing interference to fellow users.  Presently in the research community, there is a lot of interest in dynamic spectrum allocation, such as cognitive radio.  Our project will show that fixed allocation isn't the optimal way to use the spectrum.  Instead, it should be allocated dynamically.  We will use COM blocks, which are cheap and light, instead of a sophisticated spectrum analyzer which is too expensive and not mobile.  In conclusion, we will be taking distributed RF measurements and giving insight into proper usage. The readings we generate from our experiments will, therefore, have real life implications on how we need to consider spatiality in the design of our frequency reuse and allocation schemes.

 

 

 

 

Acknowledgements

The team would like to thank Prof. Tureli for being our Senior Design Advisor, for his incredible ideas regarding our project, and for all of his technical advice.  We would also like to thank him for providing us with the lab space and lab equipment to implement our project.  Last, but not least, we would like to thank Prof. Tureli's PhD student, Nilay Shah from WiNSeC, for his help and time in understanding the main objectives of our project, as well as helping us to further understand Communication Theory enabling us to have a productive Senior Design Project.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Project Progress

 

I.)                 Design Approach

There are two different test bed hardware configurations that will be used to gather data readings for our project.  This is because we will be looking at both the cellular band and the PCS band which each requires its own receiver.  The only difference between the test bed setups will be the receiver COM block. 

For the cellular band the three COM block modules required are Com 3005, Com8002 and Com 5001.  For the PCS band the COM block modules required are Com 3006, Com8002 and Com 5001. Each COM block measures 3 inches by 3 inches.  The voltage in is 5volts DC.

·       COM-3005

Cellular band [800 - 1000 MHz] receiver.  Its sensitivity is -56 dBm, has 8 preset frequencies, can be tuned over the entire spectrum in steps of 100, 31.25, or 25 kHz.  It has a selectable internal 10 MHz or external ADC sampling clock, and SMA connectors

 

·       COM-3006

PCS frequency band [1850 - 2050 MHz] receiver.  It has a sensitivity of -53 dBm, has 8 preset frequencies, can be tuned over the entire spectrum in steps of 100, 31.25, or 25 kHz, a selectable internal 10 MHz or external ADC sampling clock, and SMA connectors.  The data registers in the receiver system scan the frequencies set by the software running on the computer.

 

·       COM-8002

Speed Data Acquisition Module it has 256 Mega Bytes of storage and a maximum sampling rate of 40 MHz.  Acts as a data logger, analyzer, and an RF signature capturing device. 

 

·       COM-5001

LAN interface.  Provides high-speed network interface for data transfer and monitoring and control of COM Block assemblies.

 

 

 

 

 

 

 

Figure 1.   Configuration used for the actual test bed

 

Components used for our analysis / Block diagram

            The COM blocks website is an excellent source of information about the modules.  Anything I can write here is only a summary of the full description and specifications that the website provides.

 

 

 

 

Figure 2.  Block Diagram

 

The functionality and performance expected from the prototype are subject to the goals of the project.  Since the group aims to study frequency usage in GSM, and since GSM is used primarily around roughly the 900 and 1900 MHz frequencies, it will be necessary to use a combination of two different receivers.  The COM-3005 receiver will be used in the range of 800-1000 MHz, while the COM-3006 will be used to check frequencies between 1850 and 2050 MHz.  The versatility of the COM block system allows these two receivers to be controlled by the same software and also to use the same data acquisition module and network interface.  By making minor adjustments in the software, the user can make changes in the way that data is collected.  The frequency, bandwidth, duration of monitoring, and number of repetitions are all easily varied.  Based off of the specifications given for the requisite COM block modules, it is expected that the hardware should be easily capable of yielding results that will allow the group to draw conclusions into the nature of spectrum usage in three dimensions.

            The test procedure will consist initially of using a single COM block to collect data about spectrum usage over small periods of time.  The data collected by the COM block will be compared to data gathered by a spectrum analyzer in order to verify the accuracy of the results.  Once the results have been verified and the technique using a single COM block has been perfected, the group aims to expand the data acquisition to include about four or five units distributed about the Stevens campus.  By collecting data over an area, the group hopes to draw conclusions about the nature of spectrum usage in three dimensions.  The true goal of this project is that the information gathered using the COM blocks could ultimately be used to help people develop new communication standards in the future. 

 

II.) Design Risks

Going into this project, the team knew that there would be a lot of debugging and hardware issues.  Previous Senior Design groups that used similar equipment experienced all different types of problems running the software and connecting just one COM block.  Since we were attempting to use multiple COM blocks, setup in different locations, there would be some risk involved in running multiple setups on the network simultaneously.  Also with the team's lack of programming experience, there is a risk in getting the Matlab software to run correctly with the COM blocks.  In order to overcome these potential risks, time was designated in the beginning of the semester, specifically for debugging and hardware issues.  We knew from the start that it wouldn't be as easy as turning the power on and pressing enter.  The team also spent the first half of the spring semester learning and understanding the Matlab code, as well as researching the different COM block setups to be used.

 

Some of the technical problems that we have encountered so far are similar to previous design groups.  Initially, there were problems connecting a single COM block to the network.  Once the network problems were solved, our initial attempts at collecting data were hindered by some software problems.  The group anticipates more networking problems when we attempt to run multiple COM block setups simultaneously.  Because we saw these potential risks while managing this project in the beginning of the semester, we have allotted enough time to overcome these anticipated problems.

 

III.)            Preliminary Results

As of now, the group has been able to successfully connect a single Com block to the network and run the software.  Our preliminary data was of Cingular in the cellular range (see graph 1 & graph 2 in the appendix), the lower portion of the graphs show the PSD, while the upper regions show time versus frequency.  In the time versus frequency portion of the graph, the red represents used channels, while the yellow represents unused channels.  These graphs are significant to our project because the group can distinguish between the used and unused channels very easily.  Eventually, when multiple Com blocks are connected at various locations around campus, the group will be able to observe the channel usage dependence on location.


Financial Budget:

 

Materials and Parts:                                                                                              Budget:

 

Receiver COM block Assembly:

 

RF Receiver--COM3005                                                                                             $345

RF Receiver--COM3006                                                                                             $345

High Speed DAQ--COM8002                                                                                     $345

Network Interface--COM5002                                                                                    $295

 

Computers and Laptop                                                                                               $0

Development Software (Matlab)                                                                                $0

 

Test Equipment:

 

Tektronix WCA230A

Wireless Communication Analyzer                                                                                 N/A

 

 

Labor Cost:

4 Engineers working at $20.00 per hour per person

Each engineer working 4 hrs a week for 28 weeks

$2240 per engineer

 

Total Labor Cost:                                                                                                      $8960

 

Total Financial Budget                                                                                           $10,290

 

 

 

 

 

 

 

 

 

 

Project Schedule

Due to the change in the scope of our project as well as the high learning curve involved, our project timeline has changed quite a bit since last semester.  This semester a lot of time was spent on familiarizing ourselves with the Matlab code and the lab equipment.  Furthermore, due to lack of time and sufficient skill sets we had to focus only on the GSM spectrum and not the CDMA spectrum as well.  This semester, the COM blocks have posed quite a number of problems while receiving data.  Initially, we were neither able to connect them to the network, nor to get them to work in conjunction with Matlab Code.  After many hours of work, however, it seems we have overcome that obstacle.  A new Gantt chart with updated timelines is attached in the appendix.

 

Conclusion

Spread spectrum technology has become very popular and widespread in wireless communications.  In particular, GSM is an efficient technology that allows multiple users to access unutilized channels in a given spectrum.  With this protocol each user has their own spreading codes which reduce interference.  Our project aims to achieve these goals which are extremely vital to our ever-growing technology.  It increases the efficiency of spectrum use.  This project also analyzes all channels in the spectrum and provides a response as to which channels are available.  This allows users to transmit signals achieving spectrum reuse.  As of now, our project is on track.  We have obtained some preliminary data.  We see some interference in our data, but we still haven't discovered what it is due to.  In the upcoming weeks before Senior Design Day we will be taking more data in various locations on campus, as well as making significant judgments of the implications of our data.

 

     

 

 

 

 

 

Appendix

 

A1. MATLAB CODE

 

Note: The distributed spectrum code is a property of Winsec.  Any unauthorized use is considered illegal.

 

1. Main Online Code

 

%**********************************************************************************

%*****************************required files***************************************

%   pnet.dll

%   com_connect

%   com_config

%   com_upload

%   com_download

%   com_plot

%   com_save

%   com_chfreq

 

function com_online()

clc;

%close all

clear all

warning off

%savefile=['c:\data\data\' datestr(now,30) '.mat'];

%save(savefile);

pnet('closeall');

 

%**********************************************************************************

%*****************************parameters*******************************************

 

comblockip = ['155.246.68.65'];

%comblockip =['155.246.68.67';'155.246.68.68'];

%comblockip =['155.246.68.66';'155.246.68.67';'155.246.68.68'];

%comblockip = ['155.246.68.65';'155.246.68.66';'155.246.68.67';'155.246.68.68'];

samples = 1.80e+5/1.25;        %this is # of bytes/1.25 please make multiple of 800

frequency = [2420e+6];           %edit frequency Put the center frequnecy of cingular in cellular band

%frequency = [2425e+6 ,2465e+6];           %edit frequency

%frequency = [2100e+6 ,2150e+6 ,2200e+6 ,2250e+6 ,2300e+6 ,2350e+6 ,2400e+6 ,2450e+6];

agc = [112 0 0 0];          %(0-255,1)set AGC  [0db-0 10db-85 20db-112 30db-132 40db-158 50dB-180 60dB-208]

attn = [20 0 0 0];         %(0-60,10)for proper plotting adjust according to the agc setting for dB

%**********************************************************************************

%**********************************************************************************

 

%***************************initialization*****************************************

sigport = 1028;

dataport = 1024;

delay = 0.1;

 

%*************************connection and configuration*****************************

for i=1:size(comblockip,1)

    [sockid1(i)] = com_connect(comblockip(i,:));

end

rcvn=length(sockid1);

com_config(sockid1, frequency, samples, delay, rcvn);

 

for i=1:rcvn,

    sockid2(i) =pnet('tcpconnect',comblockip(i,:),dataport);

end

pause(1)

 

%**********************************main loop***************************************

counter = 0;

while counter < 100000

tic

    counter = counter+1;

    %****************************frequency scanning********************************

    signal = [];

    for index=1:length(frequency)

        com_chfreq(sockid1, index, delay, rcvn);

       

        %**************************signal monitoring*******************************

        com_upload(sockid1,delay,samples,agc);

        sig = com_download(sockid1,sockid2,delay,samples,rcvn,agc);

        signal = [signal ; sig];

%        signal = [signal ; com_correction(sig,comblockip)];

    end

%    signal_c=com_correction(signal);

    %**************************end of frequency scanning***************************

       

    %******************************data capturing**********************************

       

    %com_save(signal,savefile);

       

    %****************************data visualization********************************

    pkts = [];

%     for i=1:rcvn

%         pkts = com_pktdetect(signal(i,:),i);

%         com_plotmpath(signal(1,:),frequency,1,attn(i),pkts,i);

%         pause(.1)

%     end

    com_plot(signal,frequency,rcvn,attn,pkts);

       

    %***********************end of signal monitoring*******************************

    clear signal

toc

end

 

%*******************************end of main loop***********************************

 

pnet('closeall');

 

 

2. Upload Code

 

function com_upload(sockid1,delay,samples,agc)

 

%upload data to comblock

% for i=1:length(sockid1)

%     pnet(sockid1(i),'printf','@002SRG1609\n');

% end

% pause(delay/length(sockid1));

% for i=1:length(sockid1)

%     pnet(sockid1(i),'printf',['''@002SRG18' dec2hex(agc(i),2) '\n''']);

% end

% for i=1:length(sockid1)

%     pnet(sockid1(i),'printf','@002SRG1605\n');

% end

% pause(delay/length(sockid1));

% for i=1:length(sockid1)

%     pnet(sockid1(i),'printf',['''@002SRG18' dec2hex(agc(i),2) '\n''']);

% end

for i=1:length(sockid1)

    pnet(sockid1(i),'printf','@002SRG1602\n');

end

pause(delay/length(sockid1));

for i=1:length(sockid1)

    pnet(sockid1(i),'printf',['''@002SRG18' dec2hex(agc(i),2) '\n''']);

end

pause(samples*1.25/100e+6)

 

 

3. Channel Frequency Code

 

function com_chfreq (sock, index, delay, rcvn)

 

if index==1

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG0600\n');

    end

elseif index==2

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG0620\n');

    end

elseif index==3

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG0640\n');

    end

elseif index==4

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG0660\n');

    end

elseif index==5

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG0680\n');

    end

elseif index==6

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG06A0\n');

    end

elseif index==7

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG06C0\n');

    end

elseif index==8

    for i=1:rcvn

        pnet(sock(i),'printf','@003SRG06E0\n');

    end

end

pause(delay);

 

for i=1:rcvn

    pnet(sock(i),'printf','@003SRG3501\n');

end

pause(delay);

 

 

4. Configuration Code

 

function com_config(sock, frequency, samples, delay, rcvn)

 

scan=zeros(1,8);

for i=1:length(frequency)

    scan(i)=frequency(i);

end

 

%set frequency

if (scan(1)~= 0)

    freq = dec2hex(scan(1),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG00' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG01' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG02' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG03' freq(1:2) '\n']);

    end

    pause(delay);

end

 

if (scan(2)~= 0)

    freq = dec2hex(scan(2),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG07' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG08' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG09' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG10' freq(1:2) '\n']);

    end

    pause(delay);

end

 

if (scan(3)~= 0)

    freq = dec2hex(scan(3),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG11' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG12' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG13' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG14' freq(1:2) '\n']);

    end

    pause(delay);

end

 

if (scan(4)~= 0)

    freq = dec2hex(scan(4),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG15' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG16' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG17' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG18' freq(1:2) '\n']);

    end

    pause(delay);

end

 

if (scan(5)~= 0)

    freq = dec2hex(scan(5),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG19' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG20' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG21' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG22' freq(1:2) '\n']);

    end

    pause(delay);

end

 

if (scan(6)~= 0)

    freq = dec2hex(scan(6),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG23' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG24' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG25' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG26' freq(1:2) '\n']);

    end

    pause(delay);

end

 

if (scan(7)~= 0)

    freq = dec2hex(scan(7),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG27' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG28' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG29' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG30' freq(1:2) '\n']);

    end

    pause(delay);

end

 

if (scan(8)~= 0)

    freq = dec2hex(scan(8),8);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG31' freq(7:8) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG32' freq(5:6) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG33' freq(3:4) '\n']);

    end

    pause(delay);

    for i=1:rcvn

        pnet(sock(i),'printf',['@003SRG34' freq(1:2) '\n']);

    end

    pause(delay);

end

 

for i=1:rcvn

    pnet(sock(i),'printf','@003SRG0400\n');

end

pause(delay);

 

for i=1:rcvn

    pnet(sock(i),'printf','@003SRG0600\n');

end

pause(delay);

 

for i=1:rcvn

    pnet(sock(i),'printf','@003SRG3501\n');

end

pause(delay);

 

 

%set upload length

start = floor((rand*(256000000-samples*1.25))/100)*100;

lent = samples*1.25;

upstart = dec2hex(start,8);

len = dec2hex(lent,8);

 

for i=1:rcvn

    pnet(sock(i),'printf',['@002SRG00' upstart(7:8) '\n']);

    %pnet(sock(i),'printf',['@002SRG0000\n']);

end

pause(delay);

for i=1:rcvn

    pnet(sock(i),'printf',['@002SRG01' upstart(5:6) '\n']);

    %pnet(sock(i),'printf',['@002SRG0100\n']);