0

MATLAB 无法计算fft此函数的:

syms t;
x= 1/(1+t^2);
X= fft(x)

并抛出了这个错误:

'sym' 类型的输入参数的未定义函数 'fft'。

为什么不对符号变量进行傅里叶变换?我认为应该是因为我们可能希望获得作为符号值的结果。

我也尝试用非符号变量来解决这个问题。

t= -10:0.01:10;
x= zeros(2001);
x= 1/(1+t.^2);
fft(x)

这次我的错误是:

矩阵尺寸必须一致。

但是,它们具有相同的尺寸。我的错在哪里?

4

2 回答 2

0

上的文档fft说:

Y = fft(X) 使用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (DFT)。

符号函数是连续的,而不是离散的。因此,算法失败。

关于你的第二个问题:使用元素运算符,通过添加一个点:

t= -10:0.01:10;
x= zeros(2001);
x= 1./(1+t.^2);
fft(x)

MATLAB 抱怨矩阵维度,因为您试图将标量(即1 x 1矩阵)除以长度为 2001 的向量。逐元素除法解决了该问题。

于 2016-02-06T17:09:13.237 回答
0

资料来源: http: //www.mathworks.com/matlabcentral/newsreader/view_thread/315950

FFT 是数值离散傅里叶变换 (DFT) 的一种方法。

基本上,你问的没有意义。FFT 旨在以数字方式处理离散数据(数字序列)。

您想要的是符号表达式的傅立叶变换。为此,我相信你想要fourier.

于 2016-02-06T17:15:36.200 回答