FFT error 'not supported to carry out script fft as a function'
Show older comments
I want to plot a graph as below. so I wrote a program using fft. but error message 'not supported to carry out script fft as a function' displayed. What should I do?
syms t f
T=5.0*10^(-10);
roll = 0.3;%roll-off β
A = pi*t/T;
x(t)= sin(A)/A*cos(roll*A)/(1-(2*roll*t/T)^2);
ht=matlabFunction(x(t));
y=fft(x(t));
X = f;
Y = y;
plot(X,Y);
formula of x(t),X(f) and graph I want to plot(green line) are shown as follows



Accepted Answer
More Answers (1)
Walter Roberson
on 8 Dec 2022
0 votes
you named your file fft.m which makes it impossible to call the Mathworks fft function. You need to rename your fft.m
5 Comments
柊介 小山内
on 8 Dec 2022
Walter Roberson
on 8 Dec 2022
In your code, your x(t) is a symbolic function.
You can never fft() a symbolic function or symbolic expression. fft() is strictly the discrete fourier transform, which must be applied to numeric values (especially double precision), not to symbolic values (even if they are symbolic numbers).
If you wanted to take the fourier transform of a symbolic function or symbolic expression you would use fourier
柊介 小山内
on 9 Dec 2022
柊介 小山内
on 9 Dec 2022
Walter Roberson
on 9 Dec 2022
Edited: Walter Roberson
on 9 Dec 2022
syms t f
T = sym(5.0)*10^(-10);
roll = sym(0.3);%roll-off β
A = sym(pi)*t/T;
x(t)= sin(A)/A*cos(roll*A)/(1-(2*roll*t/T)^2);
y(f)=fourier(x(t))
char(x)
Notice that the result has unevaluated calls to fourier(). That means that fourier() was unable to compute the fourier transform of that function.
I checked on Wolfram Alpha, which was able to come up with a transformation... but MATLAB is not able to do so.
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!













