# Fast 10-Point DFT Algorithm for Power System Harmonic Analysis
## 2 Preliminaries
^{T},\]  
\[\mathbf{\hat{V}}_{10}= \begin{bmatrix}1&0&0&0&0&1&0&0&0&0\\ 0&1&0&0&1&0&0&0&0&0\\ 0&0&1&1&0&0&0&0&0&0\\ 0&0&1&-1&0&0&0&0&0&0\\ 1&0&0&0&-1&0&0&0&0\\ 0&0&0&0&0&1&0&0&1\\ 0&0&0&0&0&0&1&1&0\\ 0&0&0&0&0&0&1&-1&0\\ 0&0&0&0&0&1&0&0&-1\end{bmatrix} .\]  
Then, the 10-point DFT (11) after simple conversions can be written as  
\[\mathbf{X}_{10\times 1}=\mathbf{V}_{10}^{-1}\mathbf{\hat{V}}_{10}\mathbf{W}_{10}^{(3)}\mathbf{V}_{10 }^{-1}\mathbf{x}_{10\times 1} \tag{13}\]where  
\[\textbf{W}_{10}^{(3)}= \begin{bmatrix}1&0&1&0&1&0&0&0&0&0\\ 1&0&C_{2}&0&-C_{1}&0&0&0&0&0\\ 1&0&-C_{1}&0&C_{2}&0&0&0&0&0\\ 0&C_{2}&0&-C_{1}&0&1&0&0&0&0\\ 0&C_{1}&0&-C_{2}&0&-1&0&0&0&0\\ 0&1&0&1&0&1&0&0&0&0\\ 0&0&0&0&0&0&-jS_{2}&0&-jS_{1}\\ 0&0&0&0&0&0&jS_{1}&0&-jS_{2}\\ 0&0&0&0&0&0&-jS_{2}&0&jS_{1}&0\\ 0&0&0&0&0&0&jS_{1}&0&jS_{2}&0\end{bmatrix} .\]  
In matrix \(\textbf{W}_{10}^{(3)}\), we change the signs of all entries of the 3 rd row, as well as all entries of the 4 th, 5 th, and 10 th columns. This can be done by multiplying the entries by the matrices \(\textbf{S}_{10}^{(r)}\) and \(\textbf{S}_{10}^{(c)}\) on the left and right, respectively:  
\[\textbf{W}_{10}^{(4)}=\textbf{S}_{10}^{(r)}\textbf{W}_{10}^{(3)}\textbf{S}_{ 10}^{(c)}= \begin{bmatrix}1&0&1&0&-1&0&0&0&0&0\\ 1&0&C_{2}&0&C_{1}&0&0&0&0&0\\ -1&0&C_{1}&0&C_{2}&0&0&0&0&0\\ 0&C_{2}&0&C_{1}&0&1&0&0&0&0\\ 0&C_{1}&0&C_{2}&0&-1&0&0&0&0\\ 0&1&0&1&0&1&0&0&0&0\\ 0&0&0&0&0&0&0&-jS_{2}&0&jS_{1}\\ 0&0&0&0&0&0&0&jS_{1}&0&jS_{2}\\ 0&0&0&0&0&0&-jS_{2}&0&jS_{1}&0\\ 0&0&0&0&0&0&jS_{1}&0&jS_{2}&0\end{bmatrix} ,\]  
where  
\[\textbf{S}_{10}^{(r)}=\text{diag}\big{(}1,\ \ 1,\ \ -1,\ \ 1,\ \ 1,\ \ 1,\ \ 1,\ \ 1,\ \ 1,\ \ 1 \ \ 1\big{)},\]  
\[\textbf{S}_{10}^{(c)}=\text{diag}\big{(}1,\ \ 1,\ \ 1,\ \ -1,\ \ -1,\ \ 1,\ \ 1,\ \ 1,\ \ 1,\ \ -1 \big{)}.\]  
Then, we can write the 10-point DFT (13) in the following form:  
\[\textbf{X}_{10\times 1}=\textbf{V}_{10}^{-1}\hat{\textbf{V}}_{10}\textbf{S}_{10}^ {(r)}\textbf{W}_{10}^{(3)}\textbf{S}_{10}^{(c)}\textbf{V}_{10}^{-1}\textbf{ x}_{10\times 1} \tag{14}\]  
Let us denote the entries of the matrix \(\textbf{W}_{10}^{(4)}\) as \(w_{ik}\), where \(i,k=0,1,\ldots,9\) are the numbers of a row and a column, respectively. It is easy to see that we can extract four submatrices from the matrix \(\textbf{W}_{10}^{(4)}\) by choosing appropriate rows and columns such that they are identical in pairs:  
\[\textbf{W}_{2}^{(1)}= \begin{bmatrix}w_{12}&w_{14}\\ w_{22}&w_{24}\end{bmatrix} = \begin{bmatrix}w_{31}&w_{33}\\ w_{41}&w_{43}\end{bmatrix} = \begin{bmatrix}C_{2}&C_{1}\\ C_{1}&C_{2}\end{bmatrix} ,\]  
\[\textbf{W}_{2}^{(2)}= \begin{bmatrix}w_{67}&w_{69}\\ w_{77}&w_{79}\end{bmatrix} = \begin{bmatrix}w_{86}&w_{88}\\ w_{96}&w_{98}\end{bmatrix} = \begin{bmatrix}-jS_{2}&jS_{1}\\ jS_{1}&jS_{2}\end{bmatrix} .\]  
The matrices \(\textbf{W}_{2}^{(1)}\) and \(\textbf{W}_{2}^{(2)}\) contain symmetric and bisymetric structures that allow the further simplification of the number of operations [40]. The structure of the \(\textbf{W}_{2}^{(1)}\) matrix can be symbolically represented as  
\[\textbf{W}_{2}^{(1)}= \begin{bmatrix}a&b\\ b&a\end{bmatrix} =\textbf{H}_{2}\textbf{D}_{2}\textbf{H}_{2},\]where \(\mathbf{H}_{2}\) is the order two Hadamard matrix, \(\mathbf{H}_{2}= \begin{bmatrix}1&1\\ 1&-1\end{bmatrix} \),  
\[\mathbf{D}_{2}=\frac{1}{2}\text{diag}\big{(}a+b,\ \ \ a-b\big{)}.\]  
The structure of the \(\mathbf{W}_{2}^{(2)}\) matrix can be represented as  
\[\mathbf{W}_{2}^{(2)}= \begin{bmatrix}-a&b\\ b&a\end{bmatrix} =\mathbf{T}_{2\times 3}\mathbf{D}_{3}\mathbf{T}_{3\times 2},\]  
where  
\[\mathbf{T}_{2\times 3}= \begin{bmatrix}1&0&1\\ 0&1&1\end{bmatrix} ,\ \ \ \mathbf{D}_{3}=\text{diag}\big{(}a+b,\ \ \ a-b,\ \ \ b\big{)},\ \ \ \mathbf{T}_{3\times 2}= \begin{bmatrix}-1&0\\ 0&1\\ 1&1\end{bmatrix}