• 《DSP using MATLAB》Problem 5.3


            这段时间爬山去了,山中林密荆棘多,沟谷纵横,体力增强不少。

    代码:

    %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    %%            Output Info about this m-file
    fprintf('
    ***********************************************************
    ');
    fprintf('        <DSP using MATLAB> Problem 5.3 
    
    ');
    
    banner();
    %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    % ------------------------------------------
    %  1  x1(n)=5sin(0.1pi*n)   n=[0:19], N=40
    % ------------------------------------------
    L = 20; n = [0:L-1]; N = 40; k = [-N/2:N/2];             % wave parameters
    xn_1 = [5*sin(0.1*pi*n), zeros(1, N-L)];
    Xk_1 = dfs(xn_1, N);                                     % DFS
    magXk = abs( [Xk_1(N/2+1 : N) Xk_1(1 : N/2+1)] );        % DFS magnitude
    angXk = angle( [Xk_1(N/2+1 : N) Xk_1(1 : N/2+1)] )/pi;   % DFS angle
    
    
    figure('NumberTitle', 'off', 'Name', 'P5.3 xn_1')
    set(gcf,'Color','white'); 
    stem([0:N-1], xn_1);
    xlabel('n'); ylabel('x(n)');
    title('xn1 sequence, N=40');  grid on;
    
    %% ------------------------------------------------------
    %%                 DFS(k) of xn1 sequence
    %% ------------------------------------------------------
    figure('NumberTitle', 'off', 'Name', 'P5.3 DFS(k) of xn_1')
    set(gcf,'Color','white'); 
    subplot(2,1,1); stem(k, magXk); %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('k'); ylabel('magnitude(k)');
    title('DFS magnitude of xn1, N=40');  grid on;
    subplot(2,1,2); stem(k, angXk); %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('k'); ylabel('angle(k)');
    title('DFS angle of xn1, N=40');  grid on;
    
    
    % ------------------------------------------
    %  2  x2(n)=5sin(0.1pi*n)   n=[0:19], N=80
    % ------------------------------------------
    L = 20; n = [0:L-1]; N = 80; k = [-N/2:N/2];            % wave parameters
    xn_2 = [5*sin(0.1*pi*n), zeros(1, N-L)];
    Xk_2 = dfs(xn_2, N);                                    % DFS
    magXk = abs( [Xk_2(N/2+1 : N) Xk_2(1 : N/2+1)] );       % DFS magnitude
    angXk = angle([Xk_2(N/2+1 : N) Xk_2(1 : N/2+1)] )/pi;   % DFS angle
    
    
    figure('NumberTitle', 'off', 'Name', 'P5.3 xn_2')
    set(gcf,'Color','white'); 
    stem([0:N-1], xn_2);
    xlabel('n'); ylabel('x(n)');
    title('xn2 sequence, N=80');  grid on;
    
    %% ------------------------------------------------------
    %%                 DFS(k) of xn2 sequence
    %% ------------------------------------------------------
    figure('NumberTitle', 'off', 'Name', 'P5.3 DFS(k) of xn_2')
    set(gcf,'Color','white'); 
    subplot(2,1,1); stem(k, magXk); %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('k'); ylabel('magnitude(k)');
    title('DFS magnitude of xn2, N=80');  grid on;
    subplot(2,1,2); stem(k, angXk); %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('k'); ylabel('angle(k)');
    title('DFS angle of xn2, N=80');  grid on;
    

      运行结果:

            这两个序列的基本周期不同,但是二者非零元素值相同。x2(n)相当于在x1的末尾进行补零操作,加了40个零。

    牢记: 1、如果你决定做某事,那就动手去做;不要受任何人、任何事的干扰。2、这个世界并不完美,但依然值得我们去为之奋斗。
  • 相关阅读:
    Centos 下oracle 11g 安装部署及手动建库过程
    MongoDB 存储引擎Wiredtiger原理剖析
    有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断
    windows 下my.ini的配置优化
    什么是purge操作
    linux内核调优参考
    通过第三方镜像仓库代理下载镜像
    微积分拾遗——链式法则
    Java中的RASP实现
    机器学习是什么
  • 原文地址:https://www.cnblogs.com/ky027wh-sx/p/9265257.html
Copyright © 2020-2023  润新知