# Fast 10-Point DFT Algorithm for Power System Harmonic Analysis
## 1 Introduction  
Non-linear elements are a source of distorted waveforms in power systems. Typical examples are variable-speed drives (VSD) [1, 2], high-voltage direct currents (HVDC), frequency converters in wind, and solar power plants [3, 4]. The resulting non-sinusoidal periodic waveforms consist of a basic component and unwanted harmonics, which can disrupt the power system. Due to the large increase in the applications of power electronics, harmonics and their reduction have been major problems and the topic of research in recent decades. A power system uses a frequency of 50 Hz or 60 Hz, and the harmonic components are multiples of the fundamental frequency. One of the basic methods of harmonic analysis is the Discrete Fourier Transform. Various fast Fourier transform algorithms have been developed to optimize the time and resources needed for the determination of harmonics [5, 6]; most of these are based on a signal with length \(N\) being a power of 2 or 4. When the harmonic analysis method based on \(N=2^{M}\)-point DFTs is selected for a power system, errors appear due to the method used. For non-coherent signals, when a non-integral number of periods is present in the sampled data set, a spectral leakage occurs. This effect is because the sequence of data collected must have a finite duration and does not occur with coherent sampling in which the sampling rate is an integer multiple of period of the fundamental harmonic. The spectral leakage has two forms: short-range leakage and long-range leakage [7, 8, 9, 10, 11]. The first is caused by a non-flat upper lobe of the main window. An error in the frequency estimate occurs and the amplitude and phase estimates are attenuated and shifted, respectively. The second kind of leakage is caused by the fact that all harmonic components make a nonzero contribution to the evaluation of the \(n\)-th harmonic component. If zero padding is used, the picket fence effect might occur, and some important peaks may be ignored. These phenomena affect the accuracy of the harmonic analysis [10]. Similar effects occur when there are interharmonics in the signal. Various frequency estimation methods have been proposed and adapted to non-coherent and non-stationary signals. These include Phase-Locked Loop (PLL) algorithms based on the ability to generate a sinusoidal output whose amplitude and phase are equal to those of the fundamental component of the input signal [12, 13, 14, 15]; methods based on [PERSON]'s theory, which approximates a signal by a sum of exponential functions [16, 17]; Adaptive Notch Filters (ANFs), which are frequently used to eliminate narrow-band or sinewave disturbances with unknown frequencies from observed time series and to estimate the frequencies of measured sine wave signals [18; 19]; variants of the Extended Kalman Filter (EKF), which works as recursive estimation method based on a linear state-space model [20; 21]; and even neural network-based techniques [22; 23; 24]. All these algorithms have constraints to their use [25]. The drawbacks associated with the PLL are sensitivity to grid voltage variations, difficulty to obtain an accurate tuning of the PLL parameters, and slow action because of the proportional-integral block. The drawbacks of [PERSON]'s method include its sensitivity to the noise contained in the signal, stability problems, and difficulties in inverting high-dimensional matrices [16]. An ANF implemented with a cascaded structure is perfectly able to track the fundamental frequency when the number of sub-parts is greater than the number of harmonics supposed to be in the signal; however, this can lead to significant computation costs to decrease the convergence speed and generate some oscillations in the estimation. In addition, the estimated frequency easily falls into local minima due to the non-quadratic error surface. The EKF approach is sensitive to the fact that the amplitudes of the harmonics are small compared to the fundamental amplitude, resulting in a steady-state error.