连续时间傅立叶级数

时间:2019-04-03 00:31:04

标签: matlab continuous-fourier

我正在尝试确定以下函数作为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

1 个答案:

答案 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解析实际要替换的内容,将其延迟到稍后的时间,该信息可用。

此处,ab将具有参数kTt。当需要将参数替换为这些函数时,MATLAB将根据您首先在此处定义的内容知道要做什么。

真的,大多数工作已经在前三行代码中为您完成了。

这里,一行

fun = @(t) exp((-7).*abs(t)).*cos(10.*pi.*t);

指定fun的函数句柄将具有参数t,其中t是时间行向量参数,在该参数上将定义所有周期函数。