Functions on the circle are periodic functions. Hence they may be represented as weighted sums of sines and cosines (Fourier series). A spherical function \(f\) can be written as series of the form
\[ f(x) = \sum_{k=-N}^N \hat f_k e^{-ikx} \]
with respect to Fourier coefficients \(\hat f_k\). Note that \(f\) is \(2\pi\)-periodic.
Within the class S1FunHarmonic
spherical functions are represented by their Fourier coefficients which are stored in the field fun.fhat
. As an example lets define a Fourier series which Fourier coefficients \(\hat f_0 = 1\), \(\hat f_1 = 0\), \(\hat f_{-1} = 3\), \(\hat f_2 = 4\) and \(\hat f_{-2} = 0\)
fun = S1FunHarmonic([0;3;1;0;4])
clf
plot(fun)
fun = S1FunHarmonic
bandwidth: 2
ans =
Line with properties:
Color: [0 0.4470 0.7410]
LineStyle: '-'
LineWidth: 0.5000
Marker: 'none'
MarkerSize: 10.5000
MarkerFaceColor: 'none'
ThetaData: [0 0.0175 0.0349 0.0524 0.0698 0.0873 0.1047 0.1222 … ]
RData: [8 7.9971 7.9884 7.9740 7.9538 7.9278 7.8962 7.8588 … ]
Use GET to show all properties
![](images/S1FunHarmonics_01.png)
More practically, periodic functions appear after density estimation from circular data, e.g. of the azimuth angle of three dimensional vectors
% some random directions
v = vector3d.rand(1000);
% perform density estimation of the azimuth angle
fun = calcDensity(v.rho,'periodic')
clf
plot(fun,'linewidth',2)
fun = S1FunHarmonic
bandwidth: 59
isReal: true
ans =
Line with properties:
Color: [0 0.4470 0.7410]
LineStyle: '-'
LineWidth: 2
Marker: 'none'
MarkerSize: 10.5000
MarkerFaceColor: 'none'
ThetaData: [0 0.0175 0.0349 0.0524 0.0698 0.0873 0.1047 0.1222 … ]
RData: [0.9451 0.9483 0.9480 0.9426 0.9314 0.9144 0.8929 … ]
Use GET to show all properties
![](images/S1FunHarmonics_02.png)