how to plot the signal maintained in frequency domain in 3d i tried but as you can see its not what i want :(
1 次查看(过去 30 天)
显示 更早的评论
t=-10:0.1:10;
C=0;
t0=1;
T=t/t0;
A=1+(1i.*C);
fymax=4.5.*pi;
B=T.^2;
ut=exp((-0.5.*A.*B)+(4.5i*pi*exp(-A.*B)));
%-----figure 1--------------
plot(t,abs(ut))
xlabel('normalized time')
ylabel('spectral intensity')
% -----figure 2------------
figure
I=fftshift(fft(ut));
S=I.^2;
plot(abs(S))
xlabel('normalized frequency')
ylabel('spectral intensity')
%%%%
figure
z=-10:0.1:10;
plot3(z,t,S)
grid on
axis square
0 个评论
回答(2 个)
Walter Roberson
2013-12-6
You didn't say anything about what you want it to look like.
Your C is a scalar, so A is a scalar.
Your t0 is a scalar, your t is a vector, so T is a vector, so your B is a vector.
A.*B is scalar times vector, so it is a vector, so both sides of the "+" in the exp() are vectors. So ut is a vector.
With ut being a vector, fft(ut) is a vector, fftshift() of a vector is a vector, so I is a vector. Vector individually squared is vector so S is a vector.
Your z is a vector. Your t is a vector. Your S is a vector. Therefore your plot3() will be a single 3D line, not a surface or a series of mesh lines. Your plot3() is not gaining any visualization power relative to plot(), as the value being plotted (S) in no way depends upon z.
Wayne King
2013-12-6
编辑:Wayne King
2013-12-6
"ok let me ask y ou something different if i want the values of the frequency obtained due to fft but i only have the given as shown in the code the time can i obtain the values of the frequency after the fft?? can u tell me how??"
t=-10:0.1:10;
t0=1;
T=t/t0;
A=1+(1i.*C);
B=T.^2;
ut=exp((-0.5.*A.*B)+(4.5i*pi*exp(-A.*B)));
subplot(211)
plot(t,real(ut)); title('Real Part - ut');
subplot(212)
plot(t,imag(ut)); title('Imaginary Part - ut');
Your signal ut is sampled at time intervals of 0.1 (seconds), so that means the DFT will be periodic in frequency with a period of 10 Hz. The frequency increment (spacing) between the DFT bins is Fs/N where Fs is the sampling frequency - here 10 Hz and the length of the input signal, ut.
figure;
udft = fftshift(fft(ut));
dt = 0.1;
df = 1/(length(ut)*dt);
Fs = 1/dt;
freqvec = -Fs/2+df:df:Fs/2;
plot(freqvec,abs(udft));
xlabel('Hz'); ylabel('|U(f)|');
5 个评论
Walter Roberson
2013-12-7
Please post the current version of your code. The code you have above does not use fymax after it is created.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spectral Measurements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!