代码:

%% ------------------------------------------------------------------------
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 3.4 \n\n'); banner();
%% ------------------------------------------------------------------------ % ----------------------------------------------
% Rectangle Window sequence
% ----------------------------------------------
M = 101; n1_start = 0; n1_end = M;
n1 = [n1_start : n1_end - 1]; x1 = ones(1, length(n1)); figure('NumberTitle', 'off', 'Name', 'Problem 3.4 x1(n) Rectangle');
set(gcf,'Color','white');
stem(n1, x1);
xlabel('n'); ylabel('x1');
title(sprintf('x1(n) sequence, M = %d', M)); grid on; MM = 500;
k = [-MM:MM]; % [-pi, pi]
%k = [0:M]; % [0, pi]
w = (pi/MM) * k; [X1] = dtft(x1, n1, w); magX1 = abs(X1); angX1 = angle(X1); realX1 = real(X1); imagX1 = imag(X1); figure('NumberTitle', 'off', 'Name', 'Problem 3.4 DTFT of Rm(n)');
set(gcf,'Color','white');
subplot(2,1,1); plot(w/pi, magX1/max(magX1)); grid on;
title('Magnitude Part');
xlabel('frequency in \pi units'); ylabel('Magnitude');
subplot(2,1,2); plot(w/pi, angX1); grid on;
title('Angle Part');
xlabel('frequency in \pi units'); ylabel('Radians'); % --------------------------------------------------
% Hanning Window Sequence
% --------------------------------------------------
%n2_start = -9; n2_end = 15;
%n2 = [n2_start : n2_end];
n2 = n1;
x2 = 0.5 * (1 - cos(2*pi*n1/(M-1))) .* x1; figure('NumberTitle', 'off', 'Name', 'Problem 3.4 x2(n) Hanning');
set(gcf,'Color','white');
stem(n2, x2);
xlabel('n'); ylabel('x2');
title(sprintf('x2(n) sequence, M = %d', M)); grid on; MM = 500;
k = [-MM:MM]; % [-pi, pi]
%k = [0:M]; % [0, pi]
w = (pi/MM) * k; [X2] = dtft(x2, n2, w); magX2 = abs(X2); angX2 = angle(X2); realX2 = real(X2); imagX2 = imag(X2); figure('NumberTitle', 'off', 'Name', 'Problem 3.4 DTFT of Cm(n)');;
set(gcf,'Color','white');
subplot(2,1,1); plot(w/pi, magX2/max(magX2)); grid on;
title('Magnitude Part');
xlabel('frequency in \pi units'); ylabel('Magnitude');
subplot(2,1,2); plot(w/pi, angX2); grid on;
title('Angle Part');
xlabel('frequency in \pi units'); ylabel('Radians'); % --------------------------------------------------
% Triangular Window Sequence
% --------------------------------------------------
%n3_start = -3; n3_end = 10;
%n3 = [n3_start : n3_end];
n3 = n1;
x3 = (1 - abs(M-1-2*n3)/(M-1)) .* x1; figure('NumberTitle', 'off', 'Name', 'Problem 3.4 x3(n) Triangular');
set(gcf,'Color','white');
stem(n3, x3);
xlabel('n'); ylabel('x3');
title(sprintf('x3(n) sequence, M = %d', M)); grid on; MM = 500;
k = [-MM:MM]; % [-pi, pi]
%k = [0:M]; % [0, pi]
w = (pi/MM) * k; [X3] = dtft(x3, n3, w); magX3 = abs(X3); angX3 = angle(X3); realX3= real(X3); imagX3 = imag(X3); figure('NumberTitle', 'off', 'Name', 'Problem 3.4 DTFT of Tm(n)');;
set(gcf,'Color','white');
subplot(2,1,1); plot(w/pi, magX3/max(magX3)); grid on;
title('Magnitude Part');
xlabel('frequency in \pi units'); ylabel('Magnitude');
subplot(2,1,2); plot(w/pi, angX3); grid on;
title('Angle Part');
xlabel('frequency in \pi units'); ylabel('Radians'); % ---------------------------------------------
% Hamming Window sequence
% ---------------------------------------------
%n4_start = 0; n4_end = 50;
%n4 = [n4_start : n4_end];
n4 = n1;
x4 = (0.54 - 0.46 * cos(2*pi*n4/(M-1))) .* x1; figure('NumberTitle', 'off', 'Name', 'Problem 3.4 x4(n) Hamming');
set(gcf,'Color','white');
stem(n4, x4, 'filled');
xlabel('n'); ylabel('x4');
title(sprintf('x4(n) sequence, M = %d', M)); grid on; MM = 500;
k = [-MM:MM]; % [-pi, pi]
%k = [0:M]; % [0, pi]
w = (pi/MM) * k; [X4] = dtft(x4, n4, w); magX4 = abs(X4); angX4 = angle(X4); realX4= real(X4); imagX4 = imag(X4); figure('NumberTitle', 'off', 'Name', 'Problem 3.4 DTFT of Hm(n)');;
set(gcf,'Color','white');
subplot(2,1,1); plot(w/pi, magX4/max(magX4)); grid on;
title('Magnitude Part');
xlabel('frequency in \pi units'); ylabel('Magnitude');
subplot(2,1,2); plot(w/pi, angX4); grid on;
title('Angle Part');
xlabel('frequency in \pi units'); ylabel('Radians');

  运行结果:

矩形窗:

汉宁窗:

三角窗:

汉明窗:

《DSP using MATLAB》Problem 3.4的更多相关文章

  1. 《DSP using MATLAB》Problem 7.27

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  2. 《DSP using MATLAB》Problem 7.26

    注意:高通的线性相位FIR滤波器,不能是第2类,所以其长度必须为奇数.这里取M=31,过渡带里采样值抄书上的. 代码: %% +++++++++++++++++++++++++++++++++++++ ...

  3. 《DSP using MATLAB》Problem 7.25

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  4. 《DSP using MATLAB》Problem 7.24

    又到清明时节,…… 注意:带阻滤波器不能用第2类线性相位滤波器实现,我们采用第1类,长度为基数,选M=61 代码: %% +++++++++++++++++++++++++++++++++++++++ ...

  5. 《DSP using MATLAB》Problem 7.23

    %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info a ...

  6. 《DSP using MATLAB》Problem 7.16

    使用一种固定窗函数法设计带通滤波器. 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  7. 《DSP using MATLAB》Problem 7.15

    用Kaiser窗方法设计一个台阶状滤波器. 代码: %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  8. 《DSP using MATLAB》Problem 7.14

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  9. 《DSP using MATLAB》Problem 7.13

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  10. 《DSP using MATLAB》Problem 7.12

    阻带衰减50dB,我们选Hamming窗 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

随机推荐

  1. python 函数参数介绍

    python 函数参数介绍 python 使用过程总,总会遇到 *args,**kw形式的参数,总是一头雾水,而且网上介绍的或是叫法不一,为此专门深入实践进而了解了函数参数的使用 具体请看代码 #-* ...

  2. Codeforces Round #364 (Div. 1) (差一个后缀自动机)

    B. Connecting Universities 大意: 给定树, 给定2*k个点, 求将2*k个点两两匹配, 每个匹配的贡献为两点的距离, 求贡献最大值 单独考虑每条边$(u,v)$的贡献即可, ...

  3. python-day49--前端 html

    一.列表标签 1.有序列表 <ol>       (order list ) 在浏览器中显示包括:padding , 有序排列     <li>:列表中的每一项. 2.无序列表 ...

  4. priority_queue与bfs不得不说的古寺

    前几天写到bfs,看到之前写的,突然感觉不对,后来发现自己把点权值默认当成了边权值,导致一直走不出来: 点权值嘛,就是经过这个点时,要付出这么多的代价,边权值则是经过边时付出,二者有区别滴: 边权值求 ...

  5. UVA-10118 Free Candies (DP、记忆化搜索)

    题目大意:有4堆糖果,每堆有n个,有一只最多能容5个糖果的篮子.现在,要把糖果放到篮子里,如果篮子中有相同颜色的糖果,放的人就可以拿到自己的口袋.如果放的人足够聪明,问他最多能得到多少对糖果. 题目分 ...

  6. MVC5 学习笔记 controller

    主要参考书籍<ASP.NET MVC5 高级编程(第5版) > 作者:Jon Galloway等 1. MVC 表示 模型-视图-控制器.MVC是一种用于开发应用程序的模式,具备良好的架构 ...

  7. OA项目(MVC项目)

    1. 新建,项目,其他项目类型,空白解决方案 2. 选中解决方案,添加,新建项目,类库: (1)添加OA.Model,删除其中的Class1.cs (2)添加OA.DAL(数据访问层),删除Class ...

  8. 013PHP文件处理——filemtime filectime fileatime date_default_timezone_set touch

    <?php /** * filemtime filectime fileatime date_default_timezone_set touch */ /*filemtime:获取文件的修改时 ...

  9. Openwrt working with patches in the build system (8)

    Reference :https://openwrt.org/docs/guide-developer/build-system/use-patches-with-buildsystem exampl ...

  10. 关于display:grid layout

    .wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; grid-auto-rows: min ...