我正在尝试将以下函数的近似值确定为 ctfs:
x(t) = exp(-7|t|)*cos(10*pi*t)
为了-0.5 <= t < 0.5
我被告知使用连续时间傅里叶级数 (CTFS) 的三角函数形式来计算a[k]
和b[k]
,x(t)
其中k
是谐波数。Kmax = 4
.
我有以下代码,虽然它没有给我任何错误。我不知道如何检查它是否正确,或者我一般在做什么。这是我第一次使用matlab。有人可以帮帮我吗?
fun = @(t) exp((-7).*abs(t)).*cos(10.*pi.*t);
a = @(k, T, t) fun(t).*cos((2.*pi.*k.*t)./(T));
b = @(k, T, t) fun(t).*sin((2.*pi.*k.*t)./(T));
T = 1; %T =0.5 - (-0.5) where T is fundamental period of x(t)
t = -0.5: T/1000: 0.5;
Kmax = 4; % part a
for k=1:Kmax
ax = (2./T).*integral(@(t)a(k,T,t),0,T)
end
for k=1:Kmax
a0 = (1./T).*integral(@(t)fun(t),0,T)
end
for k=1:Kmax
bx = (2./T).*integral(@(t)b(k,T,t),0,T)
end
% Calcultating x_aprox
x_approx = a0;
for k=1:Kmax
x_approx = x_approx + ax*cos(2*pi*k*t/T) + bx*sin(2*pi*k*t/T);
end