FourierSeries.fourierSeriesSampledReal
— FunctionFunction call
fourierSeriesSampledReal(t,u,T,hMax)
Description
Calculates the real Fourier coefficients of a sampled function u(t)
based on the data pairs t
and u
Function arguments
t
Vector of sample times
u
Data vector of which Fourier coefficients shall be determined of, i.e., u[k]
is the sampled data value associated with t[k]
T
Time period of u
hMax
Maximum harmonic number to be determined
Return values
h
Vector of harmonic numbers start at, i.e., h[1] = 0
(dc value of u
), h[hMax+1] = hMax
f
Frequency vector associated with harmonic numbers, i.e. f = h / T
a
Cosine coefficients of Fourier series, where a[1]
= dc value of u
b
Sine coefficients of Fourier series, where b[1] = 0
Examples
Copy and paste code:
# Fourier approximation of square wave form
ts = [ 0; 1; 2; 3; 4; 5; 6; 7; 8; 9] # Sampled time data
us = [-1;-1;-1;-1;-1; 1; 1; 1; 1; 1] # Step function of square wave
T = 10 # Period
hMax = 7 # Maximum harmonic number
(h, f, a, b) = fourierSeriesSampledReal(ts, us, hMax)
(t, u) = fourierSeriesSynthesisReal(f, a, b)
using PyPlot
# Extend (t, u) by one element to right periodically
(tx, ux) = repeatPeriodically(ts, us, right=1)
plot(tx, ux, marker="o") # Square wave function
plot(t, u) # Fourier approximation up to hMax = 7
FourierSeries.fourierSeriesStepReal
— MethodFunction call
fourierSeriesStepReal(t, u, T, hMax)
Description
Calculates the real Fourier coefficients of a step function u(t)
based on the data pairs t
and u
according to the following variables:
\[\mathtt{a[k]} = \frac{2}{\mathtt{T}} \int_{\mathtt{t[1]}}^{\mathtt{t[1]+T}} \mathtt{u(t)} \cos(k\omega \mathtt{t}) \operatorname{d}\mathtt{t} \\\]
\[\mathtt{b[k]} = \frac{2}{\mathtt{T}} \int_{\mathtt{t[1]}}^{\mathtt{t[1]+T}} \mathtt{u(t)} \sin(k\omega \mathtt{t}) \operatorname{d}\mathtt{t}\]
Function arguments
t
Time vector instances where a step occurs
u
Data vector of which Fourier coefficients shall be determined of, i.e., u[k]
is the data value from the right at t[k]
T
Time period of u
hMax
Maximum harmonic number to be determined
Return values
h
Vector of harmonic numbers start at, i.e., h[1] = 0
(dc value of u
), h[hMax+1] = hMax
f
Frequency vector associated with harmonic numbers, i.e. f = h / T
a
Cosine coefficients of Fourier series, where a[1]
= dc value of u
b
Sine coefficients of Fourier series, where b[1] = 0
Examples
Copy and paste code:
# Fourier approximation of square wave form
ts = [0; 1] # Sampled time data
us = [-1; 1] # Step function of square wave
T = 2 # Period
hMax = 7 # Maximum harmonic number
(h, f, a, b) = fourierSeriesStepReal(ts, us, T, hMax)
(t, u) = fourierSeriesSynthesisReal(f, a, b)
using PyPlot
# Extend (t, u) by one element to right periodically
(tx, ux) = repeatPeriodically(ts, us, right=1)
step(tx, ux, where="post") # Square wave function
plot(t, u) # Fourier approximation up to hMax = 7