## 2 Construction and Correlation Properties of OPRC  
To create codewords that are better suited for ACDM-based systems, we integrate cyclic orthogonal Walsh-Hadamard codes (COWHCs) with m-sequences. One significant characteristic of COWHCs is that their cross-correlation values remain zero under any chip shift, effectively reducing interference between different codes. Meanwhile, m-sequences exhibit remarkable advantages in auto-correlation properties, featuring a prominent main peak and low side lobes, which facilitate precise signal identification and synchronization. Our objective is to combine the excellent cross-correlation performance of COWHCs with the superior auto-correlation properties of m-sequences to design a novel codeword. This new type of code will have enhanced correlation characteristics, providing improved signal distinguishability and interference resistance in asynchronous transmission systems. Now, we describe the process of constructing OPRC codes. First, we define \(\mathbf{h}_{i}=[h_{i1},\,\ldots,\,h_{iL_{h}}]\) as a COWHC sequence of length \(L_{h}\), and arrange \(N\) different sequences \(\mathbf{h}_{i}\) (\(i=1,\,\ldots,\,N\)) to form an \(N\times L_{h}\) matrix, which can be represented as:  
\[\mathbf{A}= \begin{bmatrix}\mathbf{A}_{1}\\ \vdots\\ \mathbf{A}_{N}\end{bmatrix} = \begin{bmatrix}\mathbf{h}_{1}\\ \vdots\\ \mathbf{h}_{N}\end{bmatrix} = \begin{bmatrix}h_{11}&\cdots&h_{1L_{h}}\\ \vdots&\vdots&\vdots\\ h_{N}&\cdots&h_{NL_{h}}\end{bmatrix}  \tag{1}\]  
Then, we define \(\mathbf{m}=[m_{1},\,\ldots,\,m_{Lm}]\) as an \(m\)-sequence of length \(L_{m}\), and arrange \(N\) same sequence \(\mathbf{m}\) to form an \(N\times L_{m}\) matrix, which can be represented as:  
\[\mathbf{B}= \begin{bmatrix}\mathbf{B}_{1}\\ \vdots\\ \mathbf{B}_{N}\end{bmatrix} = \begin{bmatrix}\mathbf{m}\\ \vdots\\ \mathbf{m}\end{bmatrix} = \begin{bmatrix}m_{1}&\cdots&m_{L_{m}}\\ \vdots&\vdots&\vdots\\ m_{1}&\cdots&m_{L_{m}}\end{bmatrix}  \tag{2}\]  
Next, we stack matrix \(\mathbf{A}\) continuously along the column direction \(L_{m}\) times to obtain matrix \(\mathbf{H}\) and stack matrix \(\mathbf{B}\) continuously along the column direction \(L_{h}\) times to obtain matrix \(\mathbf{M}\). Thus, these two matrices have the same dimensions \(N\times L_{h}L_{m}\), which is written by:  
\[\left\{ \begin{aligned} \mathbf{H}=\begin{bmatrix}\mathbf{A}&\cdots&\mathbf{A} \end{bmatrix}=\begin{bmatrix}H_{11}&\cdots&H_{iL_{h}}&\cdots&H_{iL_{h}}\\ \vdots&\vdots&\vdots&\vdots&\vdots&\vdots\\ H_{N1}&\cdots&H_{NL_{h}}&\cdots&H_{N(L_{h}\times L_{h})}\end{bmatrix}= \begin{bmatrix}h_{11}&\cdots&h_{1L_{h}}&\cdots&h_{1L_{h}}\\ \vdots&\vdots&\vdots&\vdots&\vdots&\vdots\\ h_{N1}&\cdots&h_{NL_{h}}&\cdots&h_{NL_{h}}\end{bmatrix}\\ \mathbf{M}=\begin{bmatrix}\mathbf{B}&\cdots&\mathbf{B}\end{bmatrix}=\begin{bmatrix}M_{11} &\cdots&M_{1L_{m}}&\cdots&M_{1(L_{h}\times L_{m})}\\ \vdots&\vdots&\vdots&\vdots&\vdots\\ M_{N1}&\cdots&M_{NL_{m}}&\cdots&M_{N(L_{h}\times L_{m})}\end{bmatrix}= \begin{bmatrix}m_{1}&\cdots&m_{L_{m}}&\cdots&m_{L_{m}}\\ \vdots&\vdots&\vdots&\vdots&\vdots\\ m_{1}&\cdots&m_{L_{m}}&\cdots&m_{L_{m}}\end{bmatrix}\end{aligned} \right\} \tag{3}\]  
Finally, we generate a new matrix \(\mathbf{S}\) by computing the Hadamard product of matrices \(\mathbf{H}\) and \(\mathbf{M}\). In this process, each element of \(\mathbf{S}\) is obtained by multiplying the corresponding elements of \(\mathbf{H}\) and \(\mathbf{M}\) at the same positions. Therefore, \(\mathbf{S}\) can be represented as follows:  
\[\mathbf{S}=\mathbf{H}\odot\mathbf{M}= \begin{bmatrix}\mathbf{S}_{1}\\ \vdots\\ \mathbf{S}_{N}\end{bmatrix} = \begin{bmatrix}H_{11}M_{11}&\cdots&H_{1(L_{m} \times L_{h})}M_{1(L_{h}\times L_{m})}\\ \vdots&\vdots&\vdots\\ H_{N1}M_{N1}&\cdots&H_{N(L_{m}\times L_{h})}M_{N(L_{h}\times L_{m})}\end{bmatrix} , \tag{4}\]  
where \(\mathbf{S}_{i}\) represents a specific codeword from the generated set of OPRC with a length of \(Ls=L_{h}\times L_{m}\).