# Fourier coefficients of a function

조회 수: 3(최근 30일)
SSBGH 2022년 5월 6일
댓글: SSBGH 2022년 5월 6일
given this function with this interval is there any way to calculate the Fourier coefficients (ak, a0, bk) of this fuction in matlab?

댓글을 달려면 로그인하십시오.

### 채택된 답변

Paul 2022년 5월 6일
Hi SSBGH
If you want a closed form solution, use the symbolic toolbox to define f(x)
syms x
f(x) = ....
Once you have that you can use the symbolic toolbox to compute a0, ak, and bk in terms of their defining integrals using the int function
syms k integer positive
a0 = int(...)
ak = int(...)
bk = int(...)
The defining integrals should be in your notes or text book, or can be found here.
If you want to numerically compute a0, ak, and bk for given values of k, first define f(x) as an anonymous function
f = @(x) ....
Then use the integral function to compute a0, or ak, or bk for a specific value of k
Your're more likely to get more help if you post your code and explain where you think it might be having problems.
##### 댓글 수: 1표시숨기기 없음
SSBGH 2022년 5월 6일
thanks alot man

댓글을 달려면 로그인하십시오.

### 추가 답변(1개)

Torsten 2022년 5월 6일
편집: Torsten 2022년 5월 6일
syms x omega n
f = 0.5*(sin(x)+abs(sin(x)));
F(omega) = int(f*exp(1i*omega*x),x,-pi,pi)
n = 10;
g = real(F(0))/(2*pi) + sum(real(F(1:n))/pi.*cos((1:n)*x)+imag(F(1:n))/pi.*sin((1:n)*x))
g = matlabFunction(g);
x = linspace(-pi,pi,100)
plot(x,g(x))
hold on
f = matlabFunction(f);
plot(x,f(x))
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Torsten 2022년 5월 6일
I don't know. Maybe MATLAB cannot evaluate F(1).
Try
g = real(F(0))/(2*pi) + 0.5*sin(x) + sum(real(F(2:n))/pi.*cos((2:n)*x)+imag(F(2:n))/pi.*sin((2:n)*x))

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!

Translated by