MATLAB无法计算此函数的fft
:
syms t;
x= 1/(1+t^2);
X= fft(x)
并抛出此错误:
未定义的功能' fft'对于输入参数类型为' sym'。
为什么不对符号变量进行傅立叶变换?我认为这应该是因为我们可能希望将结果作为符号值获得。
我也尝试用非符号变量解决问题。
t= -10:0.01:10;
x= zeros(2001);
x= 1/(1+t.^2);
fft(x)
这次我的错误是:
矩阵尺寸必须达成一致。
但是,它们具有相同的尺寸。 我的错在哪里?
答案 0 :(得分:0)
Y = fft(X)使用快速傅里叶变换(FFT)算法计算X的离散傅里叶变换(DFT)。
符号函数是连续的,而不是离散的。因此,算法失败了。
关于你的第二个问题:使用逐元素运算符,添加一个点:
t= -10:0.01:10;
x= zeros(2001);
x= 1./(1+t.^2);
fft(x)
MATLAB抱怨矩阵维度,因为你试图用一个长度为2001的向量来划分标量(即1 x 1
矩阵)。元素分割解决了这个问题。
答案 1 :(得分:0)
来源:http://www.mathworks.com/matlabcentral/newsreader/view_thread/315950
FFT是数值离散傅里叶变换(DFT)的方法。
基本上,你提出的问题并不合理。 FFT被设计为在离散数据(数字序列)上以数字方式工作。
您想要的是符号表达式的傅里叶变换。为此,我相信你想要fourier
。