MATLAB Complex Fourier Series using Matlab

AI Thread Summary
The discussion focuses on synthesizing a complex Fourier series in Matlab for a specified periodic function. The user initially struggles with the correct formulation and period of the Fourier series, mistakenly using the wrong time domain limits. A key point raised is the need for multiple terms in the series to approximate a square wave, referencing the Gibbs phenomenon. After receiving feedback, the user realizes the error in the time domain setup and corrects it by adjusting the limits to match the function's period. The user successfully achieves the desired waveform after these adjustments.
Jag1972
Messages
40
Reaction score
0
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.
 
Physics news on Phys.org
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.
 
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.
 

Similar threads

Back
Top