Distributed RF Measurement in GSM
Interim Report
"I pledge my honor that I
have abided by the Stevens Honor System"
Group # 11:
Kristen Daly __________________________________
Michelle Teixeira_______________________________
David Toner___________________________________
Date:
Advisor:
Prof. Uf Tureli
Coordinator:
Prof. Bruce McNair
Table of Contents Page
#
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
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']);