📄 fgp312.m
字号:
%《数字信号处理教程——MATLAB释义与实现》第三章演示程序fgp312
% 演示连续正余弦信号的正负频谱分量
% 电子工业出版社出版 陈怀琛编著 2004年9月
%
clear, clf, whitebg('w')
set(gcf,'color','w') % 置图形背景色为白
tf=1/50;dt=1/10000;t = 0:dt:tf; % 设定时间序列
freq = 5; w = 2*pi*freq; % 50 Hz角速度 (rad/s)
k=input( '输入k值:余弦为1,正弦为2 k = ');
switch k % 根据k值为1或2,确定调用哪个程序段
case 1 % 余弦情况
l1=plot([0 0.5],[0 0]); hold on % 线段1的图柄
set(l1,'erasemode','xor','LineWidth',2,'color','m')
l2=plot([0 -0.5],[0 0]);hold on; % 线段2的图柄
set(l2,'erasemode','xor','LineWidth',2,'color','g')
l3=plot([0 0],[0 0]);hold on; % 合成线段的图柄
set(l3,'erasemode','xor','LineWidth',4,'color','r')
l4=plot([0.5 0 -0.5],[0 0 0]);hold on; % 辅助折线段(构成平行四边形的折线)的图柄
set(l4,'erasemode','xor','LineWidth',1,'color','b','linestyle',:)
axis square; axis([-1.2 1.2 -1.2 1.2]); grid on
for ii = 1:length(t) % 不断更新四个句柄的数据
n1=(ii-1)*w*dt;
set(l1,'xdata',[0 0.5*cos(n1*w)],'ydata',[0 0.5*sin(n1*w)],'color','m')
set(l2,'xdata',[0 0.5*cos(n1*w)],'ydata',[0 -0.5*sin(n1*w)],'color','g')
set(l3,'xdata',[0 cos(n1*w)],'ydata',[0 0],'color','r')
set(l4,'xdata',[0.5 1 0.5]*cos(n1*w),'ydata',[0.5 0 -0.5]*sin(n1*w),'color','b','linestyle',:)
drawnow,shg % 每更新一次立即画图,形成动画
fft(randn(1,2^16)); % 减慢速度
end,pause(1)
case 2 % 正弦情况
l1=plot([0 0.5],[0 0]);hold on % 线段1的图柄
set(l1,'erasemode','xor','LineWidth',4,'color','m')
l2=plot([0 -0.5],[0 0]);hold on; % 线段2的图柄
set(l2,'erasemode','xor','LineWidth',4,'color','g')
l3=plot([0 1],[0 0]);hold on; % 合成线段的图柄
set(l3,'erasemode','xor','LineWidth',4,'color','r')
l4=plot([0.5 1 0.5],[0 0 0]);hold on; % 辅助折线段(构成平行四边形的折线)的图柄
set(l4,'erasemode','xor','LineWidth',1,'color','b','linestyle',:)
l5=plot([0 0.5],[0 0]);hold on; % 线段5(线段2的反号)的图柄
set(l5,'erasemode','xor','LineWidth',2,'color','g')
axis square; axis([-1.2 1.2 -1.2 1.2]); grid on
for ii = 1:length(t) % 不断更新四个句柄的数据
n1=(ii-1)*w*dt;
set(l1,'xdata',[0 0.5*cos(n1*w)],'ydata',[0 0.5*sin(n1*w)],'color','y')
set(l2,'xdata',[0 -0.5*cos(n1*w)],'ydata',[0 0.5*sin(n1*w)],'color','m','linestyle','-.')
set(l5,'xdata',[0 0.5*cos(n1*w)],'ydata',[0 -0.5*sin(n1*w)],'color','g')
set(l3,'xdata',[0 0],'ydata',[0 sin(n1*w)],'color','r')
set(l4,'xdata',[-0.5 0 0.5]*cos(n1*w),'ydata',[0.5 1 0.5]*sin(n1*w),'color','b','linestyle',:)
drawnow,shg % 每更新一次立即画图,形成动画
fft(randn(1,2^16)); % 减慢运行速度
end,pause(1)
otherwise
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -