FFT error 'not supported to carry out script fft as a function'
Mostrar comentarios más antiguos
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



Respuesta aceptada
Más respuestas (1)
Walter Roberson
el 8 de Dic. de 2022
0 votos
you named your file fft.m which makes it impossible to call the Mathworks fft function. You need to rename your fft.m
5 comentarios
柊介 小山内
el 8 de Dic. de 2022
Walter Roberson
el 8 de Dic. de 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
柊介 小山内
el 9 de Dic. de 2022
柊介 小山内
el 9 de Dic. de 2022
Walter Roberson
el 9 de Dic. de 2022
Editada: Walter Roberson
el 9 de Dic. de 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.
Categorías
Más información sobre Calculus en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!














