# Plot complex signal with imaginary and complex

25 views (last 30 days)
nirwana on 23 Mar 2023
Edited: Star Strider on 23 Mar 2023
Hi....i would like to plot imaginary and real number of my signal. The expected output as shown below, but i don'e know which plot in matlab that i have to use. Please help me

Star Strider on 23 Mar 2023
Edited: Star Strider on 23 Mar 2023
This is relatively straightforward —
Fs = 1000;
Tlen = 10;
t = linspace(0, Tlen*Fs, Tlen*Fs+1)/Fs;
s = exp(1j*t*2*pi);
Res = real(s);
Ims = imag(s);
figure
plot3(t, Res, Ims, '-k', 'DisplayName','Complex Signal')
hold on
plot3(t, Res, zeros(size(Res))-1, 'DisplayName','Re')
plot3(t, zeros(size(Ims))+1, Ims, 'DisplayName','Im')
hold off
axis('equal')
legend('Location','best')
grid on
xlabel('Time','Rotation',30)
ylabel('Real', 'Rotation',-33)
zlabel('Imaginary')
Tweak it to get the results you want.
.

### More Answers (2)

Antoni Garcia-Herreros on 23 Mar 2023
Hello Nirwana,
You can take a look at this thread
You could try something like this
plot3(x,y,z)
hold on
plot3(x, 2*ones(size(y)), z, 'LineWidth', 2); % project in x-z axis at y=1
plot3(x, y, -2*ones(size(x)), 'LineWidth', 2); % project in y-z axis at z=-2

John D'Errico on 23 Mar 2023
n = 2000;
t = linspace(0,500,n);
Signal = cos(t/10) + i*sin(t/10); % a simple signal, as a function of time.
plot3(t,real(Signal),imag(Signal),'r-')
hold on
plot3(t,repmat(1.5,1,n),imag(Signal),'b-')
plot3(t,real(Signal),repmat(-1.5,1,n),'c-')
ylim([-1.5 1.5])
zlim([-1.5 1.5])
xlabel 'Time'
ylabel 'Real part'
zlabel 'Imaginary part'