zoukankan      html  css  js  c++  java
  • 《DSP using MATLAB》Problem 5.27

    代码:

    %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    %%            Output Info about this m-file
    fprintf('
    ***********************************************************
    ');
    fprintf('        <DSP using MATLAB> Problem 5.27 
    
    ');
    
    banner();
    %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    % -------------------------------------------------------------------
    %                                               
    % -------------------------------------------------------------------
    N = 4;
    n1 = [0:3];
    x1 = [1, 3, 2, -1];
    
    
    n2 = [0:3];
    x2 = [2, 1, 0, -1];
    
    % -----------------------------------
    %     1st way to Linear-Convolution
    % -----------------------------------
    [y1, ny1] = conv_m(x1, n1, x2, n2);
    
    
    
    % --------------------------------------------
    %   2nd way ----  circular conv(FREQ domain)
    % --------------------------------------------
    N2 = length(x1)+length(x2)-1;
    y2 = circonvf(x1, x2, N2);
    ny2 = ny1;
    
    % ---------------------------------------
    %   3rd way --- Cir Conv (TIME domain)
    % ---------------------------------------
    N3 = length(x1)+length(x2)-1;
    y3 = circonvt(x1, x2, N3);
    ny3 = ny1;
    
    
    
    
    N4 = 5;
    y4 = circonvt(x1, x2, N4);
    ny4 = [0:N4-1];
    
    
    figure('NumberTitle', 'off', 'Name', 'P5.27 x1(n) and x2(n)')
    set(gcf,'Color','white'); 
    subplot(2,1,1); stem(n1, x1); 
    xlabel('n'); ylabel('x1(n)');
    title('x1(n), N=4');  grid on;
    subplot(2,1,2); stem(n2, x2);  
    %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('n'); ylabel('x2(n)');
    title('x2(n), N=4');  grid on;
    
    
    
    figure('NumberTitle', 'off', 'Name', 'P5.27 Convolution')
    set(gcf,'Color','white'); 
    subplot(2,2,1); stem(ny1, y1); 
    xlabel('n'); ylabel('y1(n)');
    title('Linear-Conv y1(n), N=7');  grid on;
    subplot(2,2,2); stem(ny2, y2);  
    %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('n'); ylabel('y2(n)');
    title('Cir-Conv(FREQ domain) y2(n), N=7');  grid on;
    subplot(2,2,3); stem(ny3, y3);  
    %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('n'); ylabel('y3(n)');
    title('Cir-Conv(TIME domain) y3(n), N=7');  grid on;
    subplot(2,2,4); stem(ny4, y4);  
    %axis([-N/2, N/2, -0.5, 50.5]);
    xlabel('n'); ylabel('y4(n)');
    title('Cir-Conv(TIME domain) y4(n), N=5');  grid on;
    

      运行结果:

            上图中,y1是长度为7的线性卷积结果,y4是5点圆周卷积结果。

    牢记: 1、如果你决定做某事,那就动手去做;不要受任何人、任何事的干扰。2、这个世界并不完美,但依然值得我们去为之奋斗。
  • 相关阅读:
    查找(线性索引)
    查找(顺序表&有序表)
    数据结构图之六(关键路径)
    数据结构图之五(拓扑排序)
    数据结构图之四(最短路径--弗洛伊德算法)
    数据结构图之三(最短路径--迪杰斯特拉算法)
    数据结构图之二(最小生成树--克鲁斯卡尔算法)
    数据结构图之二(最小生成树--普里姆算法)
    数据结构图之一(基本概念,存储结构,两种遍历)
    数据结构--堆
  • 原文地址:https://www.cnblogs.com/ky027wh-sx/p/9460994.html
Copyright © 2011-2022 走看看