代码:

%% ------------------------------------------------------------------------
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 3.18 \n\n'); banner();
%% ------------------------------------------------------------------------ %% -------------------------------------------------------------------
%% y(n)=x(n)+x(n-2)+x(n-4)+x(n-6)
%% -0.81y(n-2)-0.81*0.81y(n-4)-0.81^3*y(n-6)
%% -------------------------------------------------------------------
a = [1, 0, 0.81, 0, 0.81^2, 0, 0.81^3]; % filter coefficient array a
b = [1, 0, 1, 0, 1, 0, 1]; % filter coefficient array b MM = 500; [H, w] = freqresp1(b, a, MM); magH = abs(H); angH = angle(H); realH = real(H); imagH = imag(H); %% --------------------------------------------------------------------
%% START H's mag ang real imag
%% --------------------------------------------------------------------
figure('NumberTitle', 'off', 'Name', 'Problem 3.18 H1');
set(gcf,'Color','white');
subplot(2,1,1); plot(w/pi,magH); grid on; %axis([-1,1,0,1.05]);
title('Magnitude Response');
xlabel('frequency in \pi units'); ylabel('Magnitude |H|');
subplot(2,1,2); plot(w/pi, angH/pi); grid on; axis([-1,1,-1.05,1.05]);
title('Phase Response');
xlabel('frequency in \pi units'); ylabel('Radians/\pi'); figure('NumberTitle', 'off', 'Name', 'Problem 3.18 H1');
set(gcf,'Color','white');
subplot(2,1,1); plot(w/pi, realH); grid on;
title('Real Part');
xlabel('frequency in \pi units'); ylabel('Real');
subplot(2,1,2); plot(w/pi, imagH); grid on;
title('Imaginary Part');
xlabel('frequency in \pi units'); ylabel('Imaginary');
%% -------------------------------------------------------------------
%% END X's mag ang real imag
%% ------------------------------------------------------------------- %% --------------------------------------------------
%% x1(n)=5+10*(-1)^n
%% --------------------------------------------------
M = 200;
n1 = [0:M];
x1 = 5 + 10*(-1).^n1; y1 = filter(b, a, x1); figure('NumberTitle', 'off', 'Name', sprintf('Problem 3.18.1 M = %d',M));
set(gcf,'Color','white');
subplot(2,1,1);
stem(n1, x1);
xlabel('n'); ylabel('x1');
title(sprintf('x1(n) input sequence, M = %d', M)); grid on;
subplot(2,1,2);
stem(n1, y1);
xlabel('n'); ylabel('y1');
title(sprintf('y1(n) output sequence, M = %d', M)); grid on; %% --------------------------------------------------
%% x2(n)=1+cos(0.5pin+pi/2)
%% -------------------------------------------------- n2 = n1;
x2 = 1 + cos(0.5*pi*n2+pi/2); y2 = filter(b, a, x2); figure('NumberTitle', 'off', 'Name', sprintf('Problem 3.18.2 M = %d',M));
set(gcf,'Color','white');
subplot(2,1,1);
stem(n2, x2);
xlabel('n'); ylabel('x');
title(sprintf('x2(n) input sequence, M = %d', M)); grid on;
subplot(2,1,2);
stem(n2, y2);
xlabel('n'); ylabel('y');
title(sprintf('y2(n) output sequence, M = %d', M)); grid on; %% --------------------------------------------------
%% x3(n)=2sin(pin/4) + 3cos(3pin/4)
%% -------------------------------------------------- n3 = n1;
x3 = 2*sin(pi*n3/4) + 3*cos(3*pi*n3/2); y3 = filter(b, a, x3); figure('NumberTitle', 'off', 'Name', sprintf('Problem 3.18.3 M = %d',M));
set(gcf,'Color','white');
subplot(2,1,1);
stem(n3, x3);
xlabel('n'); ylabel('x');
title(sprintf('x3(n) input sequence, M = %d', M)); grid on;
subplot(2,1,2);
stem(n3, y3);
xlabel('n'); ylabel('y');
title(sprintf('y3(n) output sequence, M = %d', M)); grid on; %% ------------------------------------------------------------------------------
%% x4(n)=1+2cos(pin/4)+3cos(2pin/4)+4cos(3pin/4)+5cos(4pin/4)+6cos(5pin/4)
%% ------------------------------------------------------------------------------ n4 = n1;
sum = 0;
for i = 0:5
sum = sum + (i+1)*cos(i*pi*n4/4);
end
x4 = sum; y4 = filter(b, a, x4); figure('NumberTitle', 'off', 'Name', sprintf('Problem 3.18.4 M = %d',M));
set(gcf,'Color','white');
subplot(2,1,1);
stem(n4, x4);
xlabel('n'); ylabel('x');
title(sprintf('x4(n) input sequence, M = %d', M)); grid on;
subplot(2,1,2);
stem(n4, y4);
xlabel('n'); ylabel('y');
title(sprintf('y4(n) output sequence, M = %d', M)); grid on; %% -----------------------------------------------------------------
%% x5(n)=cos(pin)
%% ----------------------------------------------------------------- n5 = n1; x5 = cos(pi*n5); y5 = filter(b, a, x5); figure('NumberTitle', 'off', 'Name', sprintf('Problem 3.18.5 M = %d',M));
set(gcf,'Color','white');
subplot(2,1,1);
stem(n5, x5);
xlabel('n'); ylabel('x');
title(sprintf('x5(n) input sequence, M = %d', M)); grid on;
subplot(2,1,2);
stem(n5, y5);
xlabel('n'); ylabel('y');
title(sprintf('y5(n) output sequence, M = %d', M)); grid on; %% -----------------------------------------------------------------
%% x0(n)=Acos(w0n+theta)
%% -----------------------------------------------------------------
A = 3;
w0 = 0.2*pi;
theta = 0; n0 = n1; x0 = A * cos(w0*n0+theta); yss = filter(b, a, x0);
figure('NumberTitle', 'off', 'Name', sprintf('Problem 3.18.6 M = %d',M));
set(gcf,'Color','white');
subplot(2,1,1);
stem(n0, x0);
xlabel('n'); ylabel('x');
title(sprintf('x0(n) input sequence, M = %d', M)); grid on;
subplot(2,1,2);
stem(n0, yss);
xlabel('n'); ylabel('y');
title(sprintf('yss(n) output sequence, M = %d', M)); grid on;

  运行结果:

1、LTI系统的频率响应

第1小题:

第2小题:

第3小题:

第4小题:

第5小题:

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

  1. 《DSP using MATLAB》Problem 6.18

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

  2. 《DSP using MATLAB》Problem 5.18

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% O ...

  3. 《DSP using MATLAB》Problem 4.18

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  4. 《DSP using MATLAB》Problem 2.18

    1.代码: function [y, H] = conv_tp(h, x) % Linear Convolution using Toeplitz Matrix % ----------------- ...

  5. 《DSP using MATLAB》Problem 8.18

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  6. 《DSP using MATLAB》Problem 5.15

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

  7. 《DSP using MATLAB》Problem 4.15

    只会做前两个, 代码: %% ---------------------------------------------------------------------------- %% Outpu ...

  8. 《DSP using MATLAB》Problem 7.27

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

  9. 《DSP using MATLAB》Problem 7.26

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

随机推荐

  1. 雷林鹏分享:C# 运算符重载

    C# 运算符重载 您可以重定义或重载 C# 中内置的运算符.因此,程序员也可以使用用户自定义类型的运算符.重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的.与其 ...

  2. LeetCode--083--删除排序链表中的重复元素

    问题描述: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2-&g ...

  3. 玲珑杯 ACM热身赛 #2.5 A 记忆化搜索+瞎搞

    #include <cstdio> #include <vector> #include <iostream> #include <algorithm> ...

  4. python 多线程稀疏矩阵乘法

    import threading, time import numpy as np res = [] class MyThread(threading.Thread): def __init__(se ...

  5. 学习总结(ASP.NET MVC 5)

    1. 无论什么时候,如果要写一个新的 MVC 的程序(网站),打开VS之后第一步永远都是“创建新的 ASP.NET MVC 项目” (“新建项目”—→“Web(Visual C#)”—→“ASP.NE ...

  6. gitlab永久设置密码

    在 .gitconfig 文件中加入: [credential]       helper = store .git-credentials close address

  7. BZOJ1461 字符串的匹配

    什么字符串...明明是两个数列... 分类上来讲,还是一道很好的noip题...(雾) 首先,kmp会不会?(答:会!) 其次,树状数组求顺序对会不会?(再答:会!) 讲完了!>.< 进入 ...

  8. httpclient cookie保持会话

    COOKIE保持回话 httpclient4.x自带维护回话的功能,只要使用同一个httpclient且未关闭连接,就可以使用相同的回话来访问其他要求登陆验证的服务. 如果需要使用HttpClient ...

  9. Python & PyCharm & Django 搭建web开发环境

    一.安装软件 1.安装 Python 2.7.PyCharm.pip(Python包管理工具).Django ( pip install Django) 二.部署 1.PyCharm 新建Django ...

  10. Jena解析rdf、nt、ttl格式数据

    比如有一个ttl格式的文件名为cco.ttl package com.jena; import java.io.InputStream; import com.hp.hpl.jena.rdf.mode ...