Calculating Fourier Series Coefficients Using Custom Matlab Function

My attempt at creating such a function where it must have the three inputs x, w0, and N:
function[ak] = cal_fs(x, w0, N)
ak = zeros(1,2*N+1); %intialize a row vector of 2N+1 zeros
T = 2*pi/w0; %calculate the period and store in T
syms t;
for k = -N:N
ak = 1/T * int(x * exp(-1i*k*w0*t), t); % ak is fourier coefficient
end
Above is my attempt. I am trying to make a vector ak that contains all the fourier series coefficents as calculated by the equation above. I am new to Matlab and highly confused as to why i do not get an output of a matrix when I do the following:
syms x;
syms t;
x = 2*t;
w0 = 62;
N = 20;
cal_fs(x,w0,N)

1 comentario

The problem is the output of cal_fs is not coming as a vector but rather a symbolic matrix 1x1. What am I doing wrong friends?

Iniciar sesión para comentar.

Respuestas (2)

You forgot the index for assigning to ak. Also do you want the indefinite integral or an integral from 0 to 2*pi/w0? I added the index and changed the integral:
function[ak] = cal_fs(x, w0, N)
ak = zeros(1,2*N+1); %intialize a row vector of 2N+1 zeros
T = 2*pi/w0; %calculate the period and store in T
syms t;
for k = -N:N
ak(1,1+k+N) = 1/T * int(x * exp(-1i*k*w0*t), t, 0, T); % ak is fourier coefficient
end

1 comentario

Can we take piecewise continuous function with the same format of calculating fourier coefficients?

Iniciar sesión para comentar.

Azzi Abdelmalek
Azzi Abdelmalek el 22 de Oct. de 2012

1 comentario

i have the RMS value and the angle values using the fourier block in simulink
what code to use to use rms and theta to plot fourier series ?

Iniciar sesión para comentar.

Preguntada:

el 19 de Oct. de 2012

Comentada:

el 26 de Jul. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by