FFT error 'not supported to carry out script fft as a function'
Ältere Kommentare anzeigen
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



Akzeptierte Antwort
Weitere Antworten (1)
Walter Roberson
am 8 Dez. 2022
0 Stimmen
you named your file fft.m which makes it impossible to call the Mathworks fft function. You need to rename your fft.m
5 Kommentare
柊介 小山内
am 8 Dez. 2022
Walter Roberson
am 8 Dez. 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
柊介 小山内
am 9 Dez. 2022
柊介 小山内
am 9 Dez. 2022
Walter Roberson
am 9 Dez. 2022
Bearbeitet: Walter Roberson
am 9 Dez. 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.
Kategorien
Mehr zu Spectral Measurements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!














