- #1

- 18

- 0

Well, how can I start?

You are using an out of date browser. It may not display this or other websites correctly.

You should upgrade or use an alternative browser.

You should upgrade or use an alternative browser.

- MATLAB
- Thread starter caduceus
- Start date

- #1

- 18

- 0

Well, how can I start?

- #2

- 1,256

- 4

Code:

```
function y = f(x)
%%The loop would look like:
y=0.0;
for n = 1:50
y = y + 2(-1)^(n+1) ( (pi^2)/n - (6/(n^3)) sin(n x);
end
%%After which you could write
x = 1.0 : 0.1 : 2*pi
y = f(x);
plot(y,x)
```

- #3

- 18

- 0

Oh, I got the point! Thanks for replying..

- #4

- 1

- 0

x(t)

= 0 when -pi < wt < 0

= (4/pi)*wt when 0 < wt < pi/2

= 2 when pi < wt < 2*pi

I know that a0 = 3/2, an = (1/pi)*(4/(pi*i^2))*(cos((pi*i/2)-1)), and bn = (1/pi)*((4/(pi*i^2))*(sin(pi*i/2-1))-2/pi*(cos(pi*i)))

so far I have the code as:

N = 11;

x = [0:100]/100;

f = zeros(1,101)*1/2;

for i = 1:2:N

a = (1/pi)*(4/(pi*i^2))*(cos((pi*i/2)-1));

b = (1/pi)*((4/(pi*i^2))*(sin(pi*i/2-1))-2/pi*(cos(pi*i)));

f = f + a*cos(i*x)+ b*sin(i*x);

end

f = .75 + f;

plot(x,f);

any help?? I tried tweaking the window so that it would plot the entire period, but it's not coming out correctly. any help??

- #5

- 2

- 0

Hi, this is the code I did for my first assignment on fourier series. It might be considered "cheating" in terms of programming since I used the Matlab's symbolic method to do all the grunt work. I figured if Matlab offered such a nice/easy feature then I might as well use it, lol :P

For a square wave:

[tex]V(x)=\left\{\begin{matrix} 1 & 0<x<\frac{L}{2}\\ -1 & \frac{L}{2}<x<L \end{matrix}\right.[/tex]

Fourier Series

[tex]V_{N}(x)=\sum_{n=0}^{N}a_{n}\sqrt{\frac{2}{L}}cos(\frac{n2\pi x}{L}) + \sum_{n=1}^{N}b_{n}\sqrt{\frac{2}{L}}sin(\frac{n2\pi x}{L})[/tex]

where

[tex]a_{n} = \frac{2L}{n\pi}\sqrt{\frac{2}{L}}sin^2(\frac{n\pi}{2})sin(n\pi)[/tex]

[tex]b_{n} = -\frac{2L}{n\pi}\sqrt{\frac{2}{L}}sin^2(\frac{n\pi}{2})cos(n\pi)[/tex]

One can change the summation limit N in the code below by changing the value 20, the last parameter in the function

V_x = symsum(....., n, 1, 20);

For a square wave:

[tex]V(x)=\left\{\begin{matrix} 1 & 0<x<\frac{L}{2}\\ -1 & \frac{L}{2}<x<L \end{matrix}\right.[/tex]

Fourier Series

[tex]V_{N}(x)=\sum_{n=0}^{N}a_{n}\sqrt{\frac{2}{L}}cos(\frac{n2\pi x}{L}) + \sum_{n=1}^{N}b_{n}\sqrt{\frac{2}{L}}sin(\frac{n2\pi x}{L})[/tex]

where

[tex]a_{n} = \frac{2L}{n\pi}\sqrt{\frac{2}{L}}sin^2(\frac{n\pi}{2})sin(n\pi)[/tex]

[tex]b_{n} = -\frac{2L}{n\pi}\sqrt{\frac{2}{L}}sin^2(\frac{n\pi}{2})cos(n\pi)[/tex]

One can change the summation limit N in the code below by changing the value 20, the last parameter in the function

V_x = symsum(....., n, 1, 20);

Code:

```
L = 8;
syms n x;
a_n = sqrt(2/L)*( (2*L)/(n*pi) )*( (sin((n*pi)/2))^2 )*sin(n*pi); %fourier coefficient a_n
b_n = -sqrt(2/L)*( (2*L)/(n*pi) )*( (sin((n*pi)/2))^2 )*cos(n*pi); %fourier coefficient b_n
x = 0:0.2:8; %range
V_x = symsum( a_n*sqrt(2/L)*cos( (n*2*pi*x)/L ) + b_n*sqrt(2/L)*sin( (n*2*pi*x)/L ), n, 1, 9 ); %fourier series
plot(x, V_x);
grid on;
axis([ 0 8 -1.4 1.4]);
hold on;
```

Last edited:

Share: