Complex Fourier Series using Matlab

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 2K views
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 = [itex]\frac{2}{\pi n}[/itex], Co is 0 (average is 0).

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

This makes:

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

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.

[itex]\frac{2}{\pi}[/itex] [itex]e^{jwt}[/itex] + [itex]\frac{2}{\pi}[/itex] [itex]e^{-jwt}[/itex]

[itex]\frac{2}{\pi}[/itex]( [itex]e^{jwt}[/itex] + [itex]e^{-jwt}[/itex])

[itex]\frac{4}{\pi}[/itex]( [itex]\frac{e^{jwt}+e^{-jwt}}{2}[/itex])

[itex]\frac{4}{\pi}[/itex]( [itex]cos wt[/itex])

when n=2 and n=-2.

[itex]\frac{-4}{\pi*3}[/itex]( [itex]cos 3wt[/itex])

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.