I got error with "error using plot, vectors must be the same length"
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos

1 comentario
dpb
el 11 de Oct. de 2023
Did you even look to see what you have done???
T=10;
Ts=0.01;
t=-T:Ts:T;
x=square(2*pi*t);
X=fft(x);
f=(-1/(2*Ts):1/Ts:1/(2*Ts))
m=abs(fftshift(X));
numel(f), numel(m)
Respuestas (1)
Paul
el 11 de Oct. de 2023
Hi Tran,
Next time, please copy/paste your code into the Question, which makes it much easier for people to help.
Original code
T = 10;
Ts = 0.01;
t = -T:Ts:T;
x1 = square(2*pi*t);
X1 = fft(x1);
frequencies = fftshift(-1/(2*Ts):1/Ts:1/(2*Ts));
magnitude_spectrum = abs(fftshift(X1));
Number of elements in the vectors
numel(frequencies)
numel(magnitude_spectrum)
So the error arises becasue 2001 elements can't be plotted against 2 elements.
The correct expression for frequencies in this case would be, assuming units of rad/sec which looks like what might be wanted
frequencies = (-1000:1000)/2001/Ts;
Also, because x1 is defined from -T to T, it's likely that ifftshift should be applied to x1 before taking its fft.
0 comentarios
Ver también
Categorías
Más información sobre Deep Learning Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!