我正在尝试确定以下函数作为ctfs的近似值:
x(t) = exp(-7|t|)*cos(10*pi*t)
for -0.5 <= t < 0.5
我被告知要使用连续时间傅立叶级数(CTFS)的三角形式来计算a[k]
的{{1}}和b[k]
,其中x(t)
是谐波数。 k
。
我有以下代码,尽管它没有给我任何错误。我不知道如何检查它是否正确,或者我通常在做什么。这是我第一次使用matlab。有人可以帮我吗?
Kmax = 4
答案 0 :(得分:0)
要查找的线索位于MATLAB工作区中。
根据傅立叶级数的定义,该程序正在替代和积分(求和一个区间的值)计算傅立叶系数所需的周期函数。
完成时
a = @(k, T, t) fun(t).*cos((2.*pi.*k.*t)./(T));
b = @(k, T, t) fun(t).*sin((2.*pi.*k.*t)./(T));
您正在泛化一些东西,可以将另一个函数替换为fun(t),实际上,每当看到@时,它都允许MATLAB解析实际要替换的内容,将其延迟到稍后的时间,该信息可用。
此处,a
和b
将具有参数k
,T
和t
。当需要将参数替换为这些函数时,MATLAB将根据您首先在此处定义的内容知道要做什么。
真的,大多数工作已经在前三行代码中为您完成了。
这里,一行
fun = @(t) exp((-7).*abs(t)).*cos(10.*pi.*t);
指定fun的函数句柄将具有参数t
,其中t
是时间行向量参数,在该参数上将定义所有周期函数。