📄 exn941.m
字号:
%《MATLAB及其在理工课程中的应用指南》(十一五规划版)第九章例9-4-1程序
% 频谱分量合成时域波形的演示
% 西安电子科技大学出版社出版 陈怀琛编著 2007年5月
%(参考文献:张华容,“极形轨迹发生器”,机械科学与技术,20卷4期,2001年7月)
%
clear,close all,format compact
N=input('N(输入向量个数,限定N不大于4)= ');
a=zeros(1,4);w=zeros(1,4); % 置所有向量初始幅度和频率为零
for i=1:N % 给需要赋值的向量赋值
i,a(i)=input('振幅a(i)= ');
w(i)=input('角频率w(i)=');
end
% dt=input('dt=')
t=0:0.1:15;lt=length(t);
p=a'*ones(1,lt).*exp(j*w'*t); % 各频谱分量随时间变化的复数值
q=cumsum(p); % 各频谱分量的累加值随时间变化的复数值
figure(1),l1=plot(0,q(1,1)) % 画出第一向量的初值,建立其句柄
axis equal;axis([-2 2 -2 2]*1.5*abs(a(1)));hold on;grid on % 规定坐标范围
set(l1,'erasemode','xor','LineWidth',3,'color','k')
l2=plot(q(1,1),q(2,1)); % 画出第二向量与第一向量叠加后的初值,建立其句柄
set(l2,'erasemode','xor','LineWidth',3,'color','b')
l3=plot(q(2,1),q(3,1)); % 画出第三向量与第一、二向量叠加后初值,建立其句柄
set(l3,'erasemode','xor','LineWidth',3,'color','m')
l4=plot(q(3,1),q(4,1)); % 画出第四向量与第一、二、三向量叠加后初值,建立其句柄
set(l4,'erasemode','xor','LineWidth',3,'color','g')
% 不断给对象的数据参数xdata,ydata赋予新值
for ii = 1:length(t)
set(l1,'xdata', [0,real(q(1,ii))],'ydata',[0,imag(q(1,ii))]) % 每次给四个向量句柄赋新值
set(l2,'xdata', real([q(1,ii),q(2,ii)]),'ydata',imag([q(1,ii),q(2,ii)]))
set(l3,'xdata', real([q(2,ii),q(3,ii)]),'ydata',imag([q(2,ii),q(3,ii)]))
set(l4,'xdata', real([q(3,ii),q(4,ii)]),'ydata',imag([q(3,ii),q(4,ii)]))
fft(rand(1,2^16));drawnow,shg % 减慢速度,显示当前图形
end
plot(real(q(4,:)),imag(q(4,:))),v=axis,grid on % 画出合成复信号的端点轨迹
hold off,pause,set(gcf,'color','w')
figure(2),
subplot(2,2,1),plot(real(q(4,:)),imag(q(4,:))),grid on
subplot(2,2,3),plot(real(q(4,:)),t),grid on % 画出实信号的时间波形
subplot(2,2,2),plot(t,imag(q(4,:))),grid on % 画出虚信号的时间波形
set(gcf,'color','w')
shg,pause,figure(3)
subplot(2,1,1),plot(t,real(q(4,:))),grid on % 画出实信号的时间波形
subplot(2,1,2),plot(t,imag(q(4,:))),grid on % 画出虚信号的时间波形
shg,set(gcf,'color','w')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -