## 2 System Model
### Walsh-Hadamard Transform (WHT)  
In this section, the concept of WHT is briefly explained, as it is later used to present WHT-NOMA. In communication systems, a WHT matrix can be applied to the modulation scheme's transmit symbols for achieving constellation diversity. This is because the WHT is used as an orthogonal variable spreading factor (OVSF) to achieve diversity in communication systems. The transform is performed on both sides of the transceiver, i.e., at the transmitter side, multiplying the WHT matrix with the input signal and, similarly, at the receiver side, where the original signal is recovered by multiplying the same WHT matrix with the received signal. The input-output relationship is given by:  
\[y=H_{i}\times S\leftrightarrow S=H_{i}\times y\, \tag{15}\]  
where, \(H_{i}\) is the WHT matrix with \(i=2^{l}\) length code (\(l\in\mathbb{Z}^{+}\)) and the input and output signals are given by \(S\) and \(y\), respectively. In this transform, every two adjacent rows of a WHT matrix present two perpendicular vectors, which means that they are mutually orthogonal. To provide the WHT matrix illustration, if \(H\) presents a Hadamard matrix, then the partitioned matrix is as follows:  
\[\left[\begin{array}{cc}H&H\\ H&-H\end{array}\right].\]  
The observation above provides the general sequence of the WHT matrix as:  
\[H_{1}=[1],H_{2}=\left.\frac{1}{\sqrt{2}}\left[\begin{array}{cc}1&1\\ 1&-1\end{array}\right],\ldots,\ H_{i=2^{l}}=\frac{1}{\sqrt{i}}\left[\begin{array} []{cc}H_{j=2^{l-1}}&H_{j=2^{l-1}}\\ H_{j=2^{l-1}}&-H_{j=2^{l-1}}\end{array}\right], \tag{16}\]  
where, the order of the Hadamard matrix is given by \(j\), which is used for deriving the matrix \(H_{i}\), and \(1/\sqrt{i}\) presents the normalization factor. Let us suppose that the modulator-output data's complex constellation points (such as phase shift keying (PSK) or quadrature amplitude modulation (QAM)) are: \(x_{data}=[x_{1}\ x_{2}\ x_{3}\ \ldots\ x_{n}]\); then, applying the WHT matrix yields:  
\[S_{H}=x_{data}\times H_{i}\, \tag{17}\]  
where, \(S_{H}\) is recoverable using (15), i.e., by applying the WHT matrix of the same order at the receiver side. The above process can be easily understood via the following example: Let us assume \(x_{data}=[x_{1}\ x_{2}]\) is the given data with the WHT matrix \(H_{2}\), i.e., matrix of order 2. Then, by using (16) and (17), we get:  
\[S_{H}=[x_{1}\ x_{2}]\ \times\ \frac{1}{\sqrt{2}}\left[\begin{array}{cc}1&1\\ 1&-1\end{array}\right]=\frac{1}{\sqrt{2}}\ [s_{1}\ s_{2}], \tag{18}\]\[s_{1} = \frac{1}{\sqrt{2}}(x_{1}+x_{2}), \tag{19}\] \[s_{2} = \frac{1}{\sqrt{2}}(x_{1}-x_{2}). \tag{20}\]  
where, \(s_{1}\) and \(s_{2}\) are the derived resultant points after WHT matrix application in (19) and (20), respectively. These symbols are then transmitted instead of the original data. As aforementioned, that WHT is applied on modulator-output data, so if we consider a typical quadrature phase shift keying (QPSK) transmitter, then we obtain four constellation points, i.e., 00, 01, 10, and 11 (example). The application of the WHT on these points is shown in Table 2, where \(x_{1}\) and \(x_{2}\) are the modulation points with their complex constellation points \(\hat{x}_{1}\) and \(\hat{x}_{2}\), respectively. After applying the WHT, the new constellation points are presented as \(s_{1}\) and \(s_{2}\), respectively.  
To recover the data, a WHT matrix of the same order is applied to the received data at the receiver side. The process is given as:  
\[Y_{H}=\ [s_{1}\ s_{2}]\ \times\ \left[\begin{array}{cc}1&1\\ 1&-1\end{array}\right],\]  
\[Y_{H}=\ [x_{1}+x_{2}\ x_{1}-x_{2}]\ \times\ \left[\begin{array}{cc}1&1\\ 1&-1\end{array}\right],\]  
\[Y_{H}=\left[\begin{array}{c}x_{1}+x_{2}+x_{1}-x_{2}\\ x_{1}+x_{2}-x_{1}+x_{2}\end{array}\right]=\left[\begin{array}{c}2x_{1}\\ 2x_{2}\end{array}\right] \tag{21}\]  
where (21) shows the diversity achieved by applying WHT.  
After this illustration of the use of the WHT model in communication systems, we next describe NOMA with WHT in small-cells.