Next: Bibliography
Up: Orthogonal Codes
Previous: Multi-rate Orthogonal Gold Codes
Orthogonality Preservation between Multi-Rate Orthogonal
Codes
In multi-rate DS-CDMA system, high order orthogonal codes are used for
low rate information spreading and low order orthogonal codes for high
rate information spreading resulting in low spreading factor. In any
orthogonal transformation technique, there exists a dependency between
multi-rate codes and the dependent codes should not be used at the
same time. The purpose of ``ocrm'' is to
provide a code index management scheme ensuring the
orthogonality. This task is sometimes very simple as in the case of
Walsh codes. Sometimes, a more complex scheme is required as in the
case of modified Hadamard transform [6]. I
wrote a simple program which uses a complete binary tree to manage the
codes. This ``ocrm'' module is easily
extendable to cope with any orthogonal transform of which code
structure can be represented by a complete binary tree. You are
required to include ``ocrm.h'' to use
ocrm module. ``test_ocrm''
shows an example about how to use the module. Here is a brief
description about the functions provided by the module.
- typedef enum OH, MH OCodeGenMode
- This data structure
enumerate the registered transform method in the module. New
transform technique can be added easily. Currently, two methods have
been implemented. OH for the original Hadamard transform or
Sylvester construction and MH for the modified Hadamard
transform as in Adachi's paper [6].
- int ocrm_init( void )
- It initializes the internal data structures for ocrm module.
It should be the first ocrm function call. 0 is returned on
successful initialization.
- void ocrm_end( void )
- It returns the allocated resources for ocrm module.
- int ocrm_create_code_tree(int bdeg, int mdeg, OCodeGenMode mode)
- It create an Multi-Rate Orthogonal code resource binary tree and
initializes the binary tree with free orthogonal indices according
to the given code index generation mode. bdeg is the degree
of the base code and mdeg is the maximum extended code
order. mode specifies which transform to use to generate the
free indices. The code tree id is returned or ``-1'' is returned on
any errors.
- void ocrm_destroy_code_tree( int id )
- The function deallocates the memory space for tree nodes.
- int ocrm_get_code( int id, int deg, int *serial )
- It gives the next available orthogonal code index of the given
degree. The found valid code index is returned. The position in the
code tree is saved in *serial. This value cab be used for free
the code index. The code index is returned if one is available,
-1 is returned when no free index for the given degree is
available.
- void ocrm_free_code( int id, int serial )
- It make the index available by marking it as free.
- void ocrm_print_tree( int id )
- This prints all the information for the tree. This is good for
diagnostic purposes.
- void ocrm_free_index ( int id, int deg, int index )
- It makes the code index available by marking it as free. This is
useful when you do not want to keep serial obtained while
calling ocrm_get_code(). The action is same as
ocrm_free_code().
Next: Bibliography
Up: Orthogonal Codes
Previous: Multi-rate Orthogonal Gold Codes
Byoungjo CHOI