Complex Fourier Series using Matlab

1. Mar 23, 2014

Jag1972

Hello,
I have a problem synthesising the complex Fourier series using Matlab. The time domain periodic function is:

-1, -1.0 ≤ t < -0.5
1 , -0.5≤ t <0.5
-1, 0.5 ≤ t < 1

The single non zero coefficient is: Cn = $\frac{2}{\pi n}$, Co is 0 (average is 0).

f(t)= $\sum Cn e^{jnwt}$ (limits are -∞ to ∞, could not find the latex symbol)

This makes:

f(t) = ($\frac{2}{\pi}$ $e^{jwt}$ - $\frac{2}{\pi*3}$ $e^{j3wt}$ + $\frac{2}{\pi*5}$ $e^{j5wt}$ -.... $\frac{2}{\pi*∞}$ $e^{j∞wt}$) + ($\frac{2}{\pi}$ $e^{-jwt}$ - $\frac{2}{\pi*3}$ $e^{-j3wt}$ + $\frac{2}{\pi*5}$ $e^{-j5wt}$ -.... $\frac{2}{\pi*∞}$ $e^{j-∞wt}$)

In order to enter this in Matlab I have combined the exponential terms to obtain cosine waves.
For example when n=1 and n=-1.

$\frac{2}{\pi}$ $e^{jwt}$ + $\frac{2}{\pi}$ $e^{-jwt}$

$\frac{2}{\pi}$( $e^{jwt}$ + $e^{-jwt}$)

$\frac{4}{\pi}$( $\frac{e^{jwt}+e^{-jwt}}{2}$)

$\frac{4}{\pi}$( $cos wt$)

when n=2 and n=-2.

$\frac{-4}{\pi*3}$( $cos 3wt$)

So I end up with cosine terms which only exist for odd multiples of 'n' and the '+' and '-' sign alternates.
When I enter this in Matlab I can not recreate my time domain signal. Could someone please offer me some advice on where I have gone wrong.

Jag.

2. Mar 23, 2014

AlephZero

You are doing the right things, but the details went wrong somewhere. Your input square wave has a period of 2 seconds, but a term like $\cos \omega t$ in your Fourier series has a period of $2\pi$ seconds.

It looks like this was wrong from the start, when you said $f(t) = \sum C_n e^{jn\omega t}$.

Note you will need several terms (say 10) before you get something that looks close to a square wave, and see http://en.wikipedia.org/wiki/Gibbs_phenomenon for why a finite number of terms in the series will never look "exactly" like a square wave.

3. Mar 23, 2014

Jag1972

Alphazero: Thank you very much for your reply. Although I did not show itin my post I did actually enter ω = π into matlab.
However I did make a big mistake which was I entered t=linspace(0,2π), without realising that my domain is from -π to +π, doh!.
I have now got the right shape, thanks ever so much as I was doubting my working out.

Jag.