PHASE OPTIMIZED PN CODE SETS FOR NUMERICAL ANALYSIS AND SIMULATION OF DS-CDMA SYSTEMS
Dr. Kari Kärkkäinen
Centre for Wireless Communications
Faculty of Information Technology and Electrical Engineering
University of Oulu, Finland
If you are a direct-sequence (DS) code-division multiple-access (CDMA) system designer & analyzer, or a spreading code expert, it may be useful for you to spend a moment with my web page. Sseveral initial-phase optimized binary pseudonoise (PN) code sequences are available for you.
As you know, a DS-CDMA system designer & analyzer is quite often face to face with the problem how to generate, or how to get PN codes easily from some source, in order to analyze and simulate the performance of a CDMA system and its sub-system units in some R&D project. Moreover, availabilirt of CDMA code families contained within some commercial software simulation tools may be too limited. The task for PN sequence generation would be much easier if one would have an interactive spreading code generation and analysis software, such as my CODSIM1.
Does this sound familiar to you or to your colleagues? My intention is to bring a handy solution to your problems with this WWW based spreading code database.
Further, there also exist a need for agreed ("standardized") PN code sets to fix the codes and their initial-phases when important system parameters, such as code length and the number of simultaneous users, are decided for the purpose of numerical analysis or simulation. That action freezes the probability distribution function (PDF) of a multiple-access interference (MAI) random variable in order to make the numerical performance analysis results of different research groups and authors commensurable in design projects and in CDMA literature. This is just to get commensurable results.
In addition, it would add surplus value if the agreed set were to correspond to optimized SNR or BEP performance. That is why it is beneficial to employ some phase optimization rule in fixing sequences. This matter has been discussed in my paper entitled:
Importance of Initial-Phase Selection Agreement of PN sequences from the Standpoint of Numerical Analysis and Simulation of DS-CDMA system, published in the IEEE GLOBECOM 98 conference, Sydney, Australia, Nov. 8-12, 1998, as well as in my journal paper entitled: The Influence of Initial-Phases of a PN Code Set on the Performance of an Asynchronous DS-CDMA System, published by Kluwer Academic Publishers in Wireless Personal Communications, Vol. 13, No. 3, pp. 279-293, Jun. 2000.For the purposes described above, several PN code sets of lengths ranging from15 to 4095 chips were generated and phase-optimized with my personal MATLAB based CODSIM1 software from the families of Gold2, Kasami2 (both the small and large sets) and maximum-length2 sequences. Unfortunately CODSIM is not available for distribution. Total 25 different CDMA code sets per each initial-phase optimization criterion are at your disposal. The code sets and the number of PN codes in each set are briefly summarized in Table 1. Total 1547 different PN codes should satisfy your most urgent needs on spreading codes.
Table 1 Number of PN Sequences in Each Optimized CDMA Code Set |
|||||||||
Gode Family |
Code Length |
||||||||
15 |
31 |
63 |
127 |
255 |
511 |
1023 |
2047 |
4095 |
|
Maximum-length (M) |
2 |
6 |
6 |
18 |
16 |
48 |
60 |
60 |
60 |
Gold (G) |
ND |
33 |
65 |
129 |
ND |
130 |
130 |
130 |
ND |
Small Kasami (SK) |
4 |
ND |
8 |
ND |
16 |
ND |
32 |
ND |
64 |
Large Kasami (LK) |
15 |
ND |
65 |
ND |
256 |
ND |
130 |
ND |
64 |
ND = Code family is not defined for this code length.
Codes are arranged in the form of matrix so that each row contains one code and columns contain the consecutive chips. For example, a matrix of size 129x127 is needed for an optimized set of Gold codes of length 127 according to Table 1. Of course, you can take so many codes as you need up to the maximum number in Table 1. I strongly suggest that you would take the codes you want starting from the beginning of each code matrix, since in the case of MSQCC/CO3,4,5,6 and CO/MSQCC3,4,5,6 optimization criteria the first code was kept as a fixed reference when optimizing the rest of a code set.
The code sets are saved into a server of our UOcomputer system both in the binary MAT-file format of MATLAB language and in the 8-digit ASCII-file format. See
MATLAB Reference Guide as well as MATLAB External Interface Guide of The Math Works, Inc. for saving and loading MAT- and ASCII-files, and importing external data. Bipolar code chips have the values +1 and -1 (+1 corresponds to logical {0}-chip and -1 corresponds to logical {1}-chip according to the definition by Sarwate & Pursley2). You should not have any problems in loading MAT-files into your computer system, provided you have a MATLAB.You need ASCII-files if you do not have MATLAB and want to employ my code sets in you own simulation environment, or in some commercially available CAE simulation tool. See the reference manual of your software manufacturer for importing external data. ASCII-files were saved into our server with GZIP to reduce memory space and thus to speed up the file transfer to you. So, you need GZIP to unzip the ASCII-files. Consult your system manager in the case of emerging problems in unzipping.
I have included the chip information of
two example sets in tabulated form to help you to track that you have downloaded everything correctly. For the purpose of this WWW-based PN code delivery, it is important that you have received all chips correctly.In the case you have any questions, or any tiny suspicion that something may not be OK with my PN code sets, I would be happy if you could inform me immediately. Of course, I have cross-checked all the material available on our server many times, but still a very tiny theoretical possibility exists that something may have gone wrong (a very simple test for you is, e.g., to calculate the periodic (even) ACF and CCF in order to see the typical correlation behaviour of each PN code family). Also, all comments and suggestions concerning my code sets and work are wellcome.
I have optimized each code set of Table 1 with 5 different PN code phase optimization criteria. So, total 125 different optimized sets are on your disposal at this spreading code database (exactly 250 sets if both MAT- and ASCII-files are counted). MSQCC/CO3,4,5,6 and CO/MSQCC3,4,5,6 criteria emphasize more cross-correlation properties, whereas AO/LSE2,7, LSE/AO2,7 and MSE/AO8 criteria emphasize more auto-correlation properties. I assume that you are familiar with those phase optimization criteria. See my
IEEE MILCOM 95 paper3 the figures therein for comparison of different criteria.If you are interested in to optimize the SNR or BEP performance of an asynchronous DS
-CDMA system in numerical analysis or computer simulation of your problem, I would suggest you to employ MSQCC/CO optimized codes in order to get the best system performance3,4,5,6. In order to get commensurable results between various authors or project parties, it would be useful to give the file name, the number of codes taken from the beginning of a code matrix, and the file location address: http://www.cc.oulu.fi/~kk/optim_codes_info.html in your results report to help your colleagues to trace my files, and perhaps a reference to my IEEE GLOBECOM 98 paper5 which the announcement of this spreading code distribution service was made and the motivation and the background information of this whole thing was told. The file names of my spreading code database were given according to the following self-explaining examples:
msqcc_co_lk255.mat
- MAT-file of MSQCC/CO optimized 255 chip large Kasami setao_lse_g127.gz
- GZIP compressed ASCII-file of AO/LSE optimized 127 chip Gold set
To load a code matrix file, click the right mouse button on a desired code set name abbreviation and choose:
"Save Link As" or "Save Target As" depending on your system.
Load the optimized code sets saved in binary MAT-file format
Load the optimized code sets saved in GZIP ASCII-file format
Click here to view the parameter information for code sets of Table 1
Click here to view some tabulated example sets
Thank you for your interest on my work. I have left this spreading code research area but I'm still interested in applications of pseudorandom sequences.
References