Path: Math/Analysis
% Generates the Fourier series coefficients of a signal Generates the Fourier Series sine and cosine coefficients of a signal using the MATLAB function FFT. Returns the coefficients for a user specified number of harmonics with the largest magnitudes. -------------------------------------------------------------------------- Form: [x, w, h] = FourierSeries( y, t, n ) -------------------------------------------------------------------------- ------ Inputs ------ y (k,:) The signal whose coefficients are to be found. if y is a matrix each row contains a separate signal. k is number of signals to be analyzed t (1,:) Time n (1,:) Number of harmonic terms to return ------- Outputs ------- x (2h+1,k) [constant;sine terms;cosine terms] w (k,n) Frequncies of harmonics h The number of sine/cosine terms returned. The length of x will thus be 2*h+1 NOTE ---- The harmonics are found by finding the peaks in the magnitude, m, of the transform. Using the function FindPeaks. m = sqrt(a.^2 + b.^2) a cosine coefficients b sine coefficients note: if the signal is very rough, peaks which are not true harmonics will be found. The effects of this should be minimized since the peaks are sorted by magnitude. The number of sine/cosine terms returned varies according to the following: - when n is not specified, h = N/2 where N is the length of the signal - when n < number of harmonics found h = n - when N/2 > n > number of harmonics found h = number of harmonics found - when multiple signals are being analyzed, the number of harmonics is determined by the signal with the most peaks and the others signals will simply return zeroes as place holders. FOR EXAMPLE: If y contains two signals of length 100, where signal1 is found to have 4 harmonics and signal2 is found to have 8 harmonics h will be as follows: n <= 4, h = n 4 < n <= 8, h = n but in case of signal1 places > 4 will be zero 8 < n < 50, h = 8 but in case of signal1 places > 4 will be zero n >=50, h = 50 full set of coefficients is returned --------------------------------------------------------------------------
Common: Control/FindPeaks Common: Graphics/Plot2D Math: MathUtils/Odd
Back to the Math Module page