FFT error 'not supported to carry out script fft as a function'
Mostra commenti meno recenti
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



Risposta accettata
Più risposte (1)
Walter Roberson
il 8 Dic 2022
0 voti
you named your file fft.m which makes it impossible to call the Mathworks fft function. You need to rename your fft.m
5 Commenti
柊介 小山内
il 8 Dic 2022
Walter Roberson
il 8 Dic 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
柊介 小山内
il 9 Dic 2022
柊介 小山内
il 9 Dic 2022
Walter Roberson
il 9 Dic 2022
Modificato: Walter Roberson
il 9 Dic 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.
Categorie
Scopri di più su Spectral Measurements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!














