代码:

%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 5.11 \n\n'); banner();
%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % --------------------------------------------------------------
% 1 h(n) = [0.9^n] n=[0:5]
% -------------------------------------------------------------- nn1 = [0:5];
hh1 = 0.9 .^ nn1;
NN1 = length(hh1); % length is 6 %m = mod_1(nn1, NN1);
h = [hh1 zeros(1, 2)]; % padding zeros
n = [nn1 max(nn1)+1:max(nn1)+2]; figure('NumberTitle', 'off', 'Name', 'P5.11.1 Causal Real LSI h(n)')
set(gcf,'Color','white');
subplot(2,1,1); stem(nn1, hh1);
xlabel('n'); ylabel('h(n)');
title('h(n)=0.9^n ori sequence'); grid on;
subplot(2,1,2); stem(n, h);
xlabel('n'); ylabel('h(n)');
title('h(n) padding zeros'); grid on; %% =============================================================================
%% DTFT H(w) of hn sequence, w=[0:2pi],
%% =============================================================================
MM = 500;
[Hw_DTFT, w] = dtft1(h, n, MM); magHw_DTFT = abs(Hw_DTFT); angHw_DTFT = angle(Hw_DTFT)/pi;
realHw_DTFT = real(Hw_DTFT); imagHw_DTFT = imag(Hw_DTFT); %% --------------------------------------------------------------
%% START H_DTFT's mag ang real imag
%% --------------------------------------------------------------
figure('NumberTitle', 'off', 'Name', 'P5.11.1 H(w) DTFT of h(n)');
set(gcf,'Color','white');
subplot(2,2,1); plot(w/pi,magHw_DTFT); grid on; % axis([-2,2,0,15]);
title('Magnitude Part');
xlabel('frequency in \pi units'); ylabel('Magnitude |H\_DTFT|');
subplot(2,2,3); plot(w/pi, angHw_DTFT); grid on; % axis([-2,2,-1,1]);
title('Angle Part');
xlabel('frequency in \pi units'); ylabel('Rad \pi'); %axis([-200,200,0,2]); subplot('2,2,2'); plot(w/pi, realHw_DTFT); grid on;
title('Real Part');
xlabel('frequency in \pi units'); ylabel('Real');
subplot('2,2,4'); plot(w/pi, imagHw_DTFT); grid on;
title('Imaginary Part');
xlabel('frequency in \pi units'); ylabel('Imaginary');
%% --------------------------------------------------------------
%% END H_DTFT's mag ang real imag
%% -------------------------------------------------------------- %% ------------------------------------------------------------------
%% DFT(k) of hn sequence, k=[0:N-1]
%% w=2pi*k/N k=Nw/(2pi)
%% ------------------------------------------------------------------
N1 = length(h);
k1 = [0 : N1-1];
%k2 = [-N : N-1];
%k3 = [-N/2 : N/2];
Hk_DFT = dft(h, N1); % DFT
magHk_DFT = abs( Hk_DFT ) % DFT magnitude
angHk_DFT = angle( Hk_DFT )/pi % DFT angle
realHk_DFT = real(Hk_DFT); imagHk_DFT = imag(Hk_DFT); figure('NumberTitle', 'off', 'Name', 'P5.11.1 DFT(k) of h(n)')
set(gcf,'Color','white');
subplot(2,1,1); stem(k1, magHk_DFT); hold on; plot(N1*w/(2*pi), magHw_DTFT,'r--'); hold off;
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('magnitude(k)');
title('DFT magnitude of h(n), N=8'); grid on;
subplot(2,1,2); stem(k1, angHk_DFT); hold on; plot(N1*w/(2*pi), angHw_DTFT,'r--'); hold off;
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('angle(k)');
title('DFT angle of h(n), N=8'); grid on;

  运行结果:

只会第1小题。

8点DFT基本能反映DTFT的幅度谱,但相位谱感觉稍有欠缺。

第2小题不会做。

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

  1. 《DSP using MATLAB》Problem 7.11

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

  2. 《DSP using MATLAB》Problem 6.11

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

  3. 《DSP using MATLAB》Problem 4.11

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

  4. 《DSP using MATLAB》Problem 8.11

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

  5. 《DSP using MATLAB》Problem 7.16

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

  6. 《DSP using MATLAB》Problem 7.6

    代码: 子函数ampl_res function [Hr,w,P,L] = ampl_res(h); % % function [Hr,w,P,L] = Ampl_res(h) % Computes ...

  7. 《DSP using MATLAB》Problem 5.21

    证明: 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  8. 《DSP using MATLAB》Problem 5.20

    窗外的知了叽叽喳喳叫个不停,屋里温度应该有30°,伏天的日子难过啊! 频率域的方法来计算圆周移位 代码: 子函数的 function y = cirshftf(x, m, N) %% -------- ...

  9. 《DSP using MATLAB》Problem 5.14

    说明:这两个小题的数学证明过程都不会,欢迎博友赐教. 直接上代码: %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

随机推荐

  1. QuickStart系列:docker部署之PostgreSQL

    mysql --> mariadb --> postgresql 官网简介 https://www.postgresql.org/ 使用的镜像名称 centos/postgresql-96 ...

  2. java⑨

    do-while,先执行一次,再判断! do{ 循环体 }while(循环条件); 经典案例: 1. 需求:    01.记录每次用户购买的商品金额! 之后进行 结账!    02.增加购买商品的数量 ...

  3. day02 运算符和编码

    今日所学 主要是运算符和编码的初认识, 1   还有比较运算 ==,!=,<>,>,<,>=,<=等 2  .  赋值运算 =,+=,-=等 还有今天的难点逻辑运算 ...

  4. 反片语 UVA 156

    //该单词不能通过字母重排,得到输入文本中的另外一个单词.在判断是否满足条件时,字母部分大小写 #include<iostream> #include<vector> #inc ...

  5. 3.8 C++继承机制下的析构函数

    参考:http://www.weixueyuan.net/view/6365.html 总结: 构造函数的执行顺序是按照继承顺序自顶向下的,从基类到派生类,而析构函数的执行顺序是按照继承顺序自下向上, ...

  6. RandomStringUtils的使用

    //产生5位长度的随机字符串,中文环境下是乱码 RandomStringUtils.random(5); //使用指定的字符生成5位长度的随机字符串 RandomStringUtils.random( ...

  7. golang切片类型

    切片slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型 可以直接创建或从底层数组获取生成 使用len()获取元素个数,cap()获取容量 ...

  8. pycharm 利用virtualenv为每个项目配置venv

    1.在某个位置安装一个虚拟环境 2.项目运行是配置virtualenv生成的环境 3.重启terminal 安装依赖: exp => pip install django

  9. 1.带宽&吞吐量

    1.带宽         网络带宽是指在一个固定的时间内(1秒),能通过的最大位数据.就好象高速公路的车道一样,带宽越大,好比车道越多 带宽是一个非常有用的概念,在网络通信中的地位十分重要.带宽的实际 ...

  10. Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块

    文章目录 1. 实战的开端 – Maven搭建 2. 参数的配置 - 属性参数类 3. 真的很简单 - 简单的服务类 4. 自动配置的核心 - 自动配置类 5. spring.factories 不要 ...