⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fgp312.m

📁 数字信号处理教程MATLAB释义与实现里面大量的例程
💻 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 + -