Fourier Series and Power Spectral Density from Time-Series Experimental Data

It is known that any waveform (signal) can be rewritten as the sum of sinusoidal functions. Fourier Transform is the tool for the realization. By analyzing a signal in the frequency domain, we may know the characteristics of a system.

Fourier Series

Fourier Series written as

(1)    \begin{equation*} f(t) = a_0+\sum_{m=1}^{\infty} a_m \cos\left(\frac{2\pi m t}{T}\right) + \sum_{m=1}^{\infty} b_m \sin\left(\frac{2\pi m t}{T}\right), \end{equation*}

where T is the fundamental period, a_m and b_m are the coefficients of the Fourier Series. The coefficients are given by

(2)    \begin{equation*} a_0=\frac{1}{T} \int_0^T f(t) dt , \end{equation*}

(3)    \begin{equation*} a_m = \frac{2}{T} \int_0^T f(t) \cos \left(\frac{2\pi m t}{T}\right) dt , \end{equation*}

(4)    \begin{equation*} b_m = \frac{2}{T} \int_0^T f(t) \sin \left(\frac{2\pi m t}{T}\right) dt. \end{equation*}

The signal can be written using complex exponential function that

(5)    \begin{equation*} f(t) = \sum_{n=-\infty}^{\infty} c_n exp\left(i\frac{2\pi n t}{T}\right), \end{equation*}

where

(6)    \begin{equation*} c_n=\frac{1}{T} \int_0^T f(t) exp\left(i\frac{2\pi n t}{T}\right)dt. \end{equation*}

Fourier transform is defined as

(7)    \begin{equation*} \mathcal{F}{f(t)} = F(f) = \int_{-\infty}^{\infty}f(t) exp(-2\pi i f t) dt , \end{equation*}

Note that Laplace transform has a similar form as Fourier transform that

(8)    \begin{equation*} \mathcal{L}{f(t)} = F(s) = \int_{t=0}^{\infty}f(t)exp(-st) dt, \end{equation*}

where s is a complex number frequency parameter $s=\sigma+i\omega$.

Fourier series coefficients of a time-series signal and its power spectral density can be calculated in MATLAB:

function [f,amp,psdx]=fft_freq(SAMPL,H)
% input: SAMPL: signal, H: sampling time
% output: f, frequency [1/s], amp: Fourier series coefficients
N = length(SAMPL);
if(mod(N,2) ~= 0)
     SAMPL = SAMPL(1:N-1);
     N = N-1;
end
f = (0:N/2);
f = f/N*1/H;
sampl_fft2 = fft(SAMPL,N);%
sampl_fft1 = sampl_fft2(1:N/2+1);% nyquist frequency
psdx = (1/(1/H*N)) * abs(sampl_fft1).^2;
amp = abs(sampl_fft1/N);
amp(2:end-1) = 2*amp(2:end-1);
psdx(2:end-1)=2*psdx(2:end-1);

fonts = 20;
figure;
h=plot(f,amp,'-');
grid;
ylabel('Amplitude','FontSize',fonts);
set(gca,'Fontsize',fonts);
set(h,'Linewidth',2.5);
xlabel('Frequency [Hz]','FontSize',fonts);

figure;
h=plot(f,10*log10(psdx),'-');
grid;
ylabel('PSD [dB/Hz]','FontSize',fonts);
set(gca,'Fontsize',fonts);
set(h,'Linewidth',2.5);
xlabel('Frequency [Hz]','Fontsize',fonts);
end

Response Amplitude Operator

In the community of marine science, a RAO is an engineering method used to evaluate the likely behavior of a marine system (such as a ship) when operating at sea. The RAO is only defined when the motion of a marine structure can be assumed to be linear.

(9)    \begin{equation*} \text{RAO}(\omega)=\frac{a}{\zeta_a}=\frac{F_0}{-(M+A(\omega)\omega^2+iB(\omega)\omega+C} \end{equation*}

where $F_0$ is the linear excitation force complex amplitude per wave height, $A(\omega)$ the added mass, $B(\omega)$ the damping term, and $C$ the restoring coefficient.

RAOs are usually obtained as time-series data from model tests in waves, or from CFD. In model tests, as the generated waves would not be perfect, time-series data would include other components. In order to obtain the RAOs, Fourier series coefficients of both wave signal and motion signal are firstly calculated. RAO at the specified frequency can then be calculated.

Leave a Comment

Your email address will not be published. Required fields are marked *