matlab 8.4,《DSP using MATLAB》Problem 8.42

7e50f49aedadc89c19800e624b74986e.png

代码:

%% ------------------------------------------------------------------------

%% Output Info about this m-file

fprintf(‘\n***********************************************************\n‘);

fprintf(‘ Problem 8.42 \n\n‘);

banner();

%% ------------------------------------------------------------------------

% Digital Filter Specifications: Elliptic bandstop

wsbs = [0.40*pi 0.48*pi]; % digital stopband freq in rad

wpbs = [0.25*pi 0.75*pi]; % digital passband freq in rad

Rp = 1.0 % passband ripple in dB

As = 80 % stopband attenuation in dB

Ripple = 10 ^ (-Rp/20) % passband ripple in absolute

Attn = 10 ^ (-As/20) % stopband attenuation in absolute

% Calculation of Elliptic filter parameters:

[N, wn] = ellipord(wpbs/pi, wsbs/pi, Rp, As);

fprintf(‘\n ********* Elliptic Filter Order is = %3.0f \n‘, N)

% Digital Elliptic bandstop Filter Design:

[bbs, abs] = ellip(N, Rp, As, wn, ‘stop‘);

[C, B, A] = dir2cas(bbs, abs)

% Calculation of Frequency Response:

[dbbs, magbs, phabs, grdbs, wwbs] = freqz_m(bbs, abs);

% ---------------------------------------------------------------

% find Actual Passband Ripple and Min Stopband attenuation

% ---------------------------------------------------------------

delta_w = 2*pi/1000;

Rp_bs = -(min(dbbs(1:1:ceil(wpbs(1)/delta_w+1)))); % Actual Passband Ripple

fprintf(‘\nActual Passband Ripple is %.4f dB.\n‘, Rp_bs);

As_bs = -round(max(dbbs(ceil(wsbs(1)/delta_w)+1:1:ceil(wsbs(2)/delta_w)+1))); % Min Stopband attenuation

fprintf(‘\nMin Stopband attenuation is %.4f dB.\n\n‘, As_bs);

%% -----------------------------------------------------------------

%% Plot

%% -----------------------------------------------------------------

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 8.42 Elliptic bs by ellip function‘)

set(gcf,‘Color‘,‘white‘);

M = 1; % Omega max

subplot(2,2,1); plot(wwbs/pi, magbs); axis([0, M, 0, 1.2]); grid on;

xlabel(‘Digital frequency in \pi units‘); ylabel(‘|H|‘); title(‘Magnitude Response‘);

set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [0, 0.25, 0.40, 0.48, 0.75, M]);

set(gca, ‘YTickMode‘, ‘manual‘, ‘YTick‘, [0, 0.01, 0.8913, 1]);

subplot(2,2,2); plot(wwbs/pi, dbbs); axis([0, M, -120, 2]); grid on;

xlabel(‘Digital frequency in \pi units‘); ylabel(‘Decibels‘); title(‘Magnitude in dB‘);

set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [0, 0.25, 0.40, 0.48, 0.75, M]);

set(gca, ‘YTickMode‘, ‘manual‘, ‘YTick‘, [ -80, -40, 0]);

set(gca,‘YTickLabelMode‘,‘manual‘,‘YTickLabel‘,[‘80‘; ‘40‘;‘ 0‘]);

subplot(2,2,3); plot(wwbs/pi, phabs/pi); axis([0, M, -1.1, 1.1]); grid on;

xlabel(‘Digital frequency in \pi nuits‘); ylabel(‘radians in \pi units‘); title(‘Phase Response‘);

set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [0, 0.25, 0.40, 0.48, 0.75, M]);

set(gca, ‘YTickMode‘, ‘manual‘, ‘YTick‘, [-1:0.5:1]);

subplot(2,2,4); plot(wwbs/pi, grdbs); axis([0, M, 0, 50]); grid on;

xlabel(‘Digital frequency in \pi units‘); ylabel(‘Samples‘); title(‘Group Delay‘);

set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [0, 0.25, 0.40, 0.48, 0.75, M]);

set(gca, ‘YTickMode‘, ‘manual‘, ‘YTick‘, [0:20:50]);

% ------------------------------------------------------------

% PART 2

% ------------------------------------------------------------

% Discrete time signal

Ts = 1; % sample intevals

n1_start = 0; n1_end = 200;

n1 = [n1_start:n1_end]; % [0:200]

xn1 = sin(0.44*pi*n1); % digital signal

% ----------------------------

% DTFT of xn1

% ----------------------------

M = 500;

[X1, w] = dtft1(xn1, n1, M);

%magX1 = abs(X1);

angX1 = angle(X1); realX1 = real(X1); imagX1 = imag(X1);

magX1 = sqrt(realX1.^2 + imagX1.^2);

%% --------------------------------------------------------------------

%% START X(w)‘s mag ang real imag

%% --------------------------------------------------------------------

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 8.42 X1 DTFT‘);

set(gcf,‘Color‘,‘white‘);

subplot(2,1,1); plot(w/pi,magX1); grid on; %axis([-1,1,0,1.05]);

title(‘Magnitude Response‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Magnitude |H|‘);

set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [0, 0.2, 0.44, 0.6, 0.8, 1.0, 1.2, 1.4, 1.56, 1.8, 2]);

subplot(2,1,2); plot(w/pi, angX1/pi); grid on; %axis([-1,1,-1.05,1.05]);

title(‘Phase Response‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Radians/\pi‘);

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 8.42 X1 DTFT‘);

set(gcf,‘Color‘,‘white‘);

subplot(2,1,1); plot(w/pi, realX1); grid on;

title(‘Real Part‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Real‘);

set(gca, ‘XTickMode‘, ‘manual‘, ‘XTick‘, [0, 0.2, 0.44, 0.6, 0.8, 1.0, 1.2, 1.4, 1.56, 1.8, 2]);

subplot(2,1,2); plot(w/pi, imagX1); grid on;

title(‘Imaginary Part‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Imaginary‘);

%% -------------------------------------------------------------------

%% END X‘s mag ang real imag

%% -------------------------------------------------------------------

% ------------------------------------------------------------

% PART 3

% ------------------------------------------------------------

yn1 = filter(bbs, abs, xn1);

n2 = n1;

% ----------------------------

% DTFT of yn1

% ----------------------------

M = 500;

[Y1, w] = dtft1(yn1, n2, M);

%magY1 = abs(Y1);

angY1 = angle(Y1); realY1 = real(Y1); imagY1 = imag(Y1);

magY1 = sqrt(realY1.^2 + imagY1.^2);

%% --------------------------------------------------------------------

%% START Y1(w)‘s mag ang real imag

%% --------------------------------------------------------------------

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 8.42 Y1 DTFT‘);

set(gcf,‘Color‘,‘white‘);

subplot(2,1,1); plot(w/pi,magY1); grid on; %axis([-1,1,0,1.05]);

title(‘Magnitude Response‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Magnitude |H|‘);

subplot(2,1,2); plot(w/pi, angY1/pi); grid on; %axis([-1,1,-1.05,1.05]);

title(‘Phase Response‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Radians/\pi‘);

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 8.42 Y1 DTFT‘);

set(gcf,‘Color‘,‘white‘);

subplot(2,1,1); plot(w/pi, realY1); grid on;

title(‘Real Part‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Real‘);

subplot(2,1,2); plot(w/pi, imagY1); grid on;

title(‘Imaginary Part‘);

xlabel(‘digital frequency in \pi units‘); ylabel(‘Imaginary‘);

%% -------------------------------------------------------------------

%% END Y1‘s mag ang real imag

%% -------------------------------------------------------------------

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 8.42 x(n) and y(n)‘)

set(gcf,‘Color‘,‘white‘);

subplot(2,1,1); stem(n1, xn1);

xlabel(‘n‘); ylabel(‘x(n)‘);

title(‘xn sequence‘); grid on;

subplot(2,1,2); stem(n1, yn1);

xlabel(‘n‘); ylabel(‘y(n)‘);

title(‘yn sequence‘); grid on;

运行结果:

我自己假设通带1dB,阻带衰减80dB。

在此基础上设计指标,绝对单位,

7e59d0dfed02e1ee656da729a92b4250.png

ellip函数(MATLAB工具箱函数)得到Elliptic带阻滤波器,阶数为5,系统函数串联形式系数如下图。

要想得到题目中的10阶的话,阻带衰减估计需要达到160dB左右,觉得没必要那么大。

c81482ab1506b17bf3df83cd4232f540.png

Elliptic带阻滤波器,幅度谱、相位谱和群延迟响应

beead803cf7f9584a3a0b6a3f8e260e6.png

输入离散时间信号x(n)的谱如下,可看出,频率分量0.44π

c21df7fbe00481f6184473aa54178e1b.png

通过带阻滤波器后,得到的输出y(n)的谱,好像变乱了,o(╥﹏╥)o

136cd56162d852504b2867d287dbf9fe.png

输入和输出的离散时间序列如下图

52e727b20b246fcf1f44f165d1eb2dc2.png

原文:https://www.cnblogs.com/ky027wh-sx/p/11808896.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lua的string.gsub初使用

今天在学习lua,熟悉项目代码的过程中,发现string.gsub好高级,所以在此mark下。 以下是lua5.1的官方文档介绍。 string.gsub (s, pattern, repl [, n])Returns a copy of s in which all occurrences of the pattern have been replaced by a …

php程序变量,PHP 变量

PHP 变量变量是用于存储信息的"容器":实例$x5;$y6;$z$x$y;echo $z;?>运行实例 与代数类似x5y6zxy在代数中,我们使用字母(如 x),并给它赋值(如 5)。从上面的表达式 zxy ,我们可以计算出 z 的值为 11。在 PHP 中&…

漏洞:WebRTC 泄漏用户IP

WebRTC又称为“网页即时通信”,是一组API函数,它经过W3C组织的认证,支持浏览器之间的语音通话、视频聊天和P2P模式分享文件。 这个协议主要包括:getUserMedia,RTCPeerConnection,RTCDataChannels&…

怎么在电脑安装php文件夹在哪个文件夹,php进行文件上传时找不到临时文件夹怎么办,电脑自动保存的文件在哪里...

php进行文件上传时找不到临时文件夹怎么办PHP上传文件时找不到临时文件夹怎么办,php上传文件时找不到临时文件夹的解决方案:先打开php.ini配置文件;然后修改内容[upload _ tmp _ dir’ c :/windows/temp ‘],文件夹路径要根据自己…

【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。...

【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术 作者:西川善司日文链接 http://www.4gamer.net/games/202/G020288/20150811091/计算机图形和交互技术的学术大会【SIGGRAPH 2015】,在北美时间的8月9日到13日召…

php边框圆角,css3圆角和圆角边框使用方法总结

在CSS3出现之前,想要实现圆角的效果可以通过图片或者用margin属性实现,传统的圆角生成方案,需要多张图片作为背景图案。CSS3出现以后,就不需要浪费时间去制作多张图片了,大大的减少了工作量,提高了网页的性…

php中二进制函数,PHP-----函数和二进制

递归-----函数本身调用本身。每一个栈中的变量都是独立的,不受外部变量的影响,除非传参。这一点和Js不一样。在一个php页面中要引用其他的php文件可以使用require,require_once或者include,include_once;require引入的文件如果不存…

php 文件类型 html,HTML的文档类型怎么选择

声明帮助浏览器正确地显示网页。声明(推荐学习:HTML入门教程)Web 世界中存在许多不同的文档。只有了解文档的类型,浏览器才能正确地显示文档。HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确…

mysql安装im,mysql安装记录

zip下载及安装教程:https://blog.csdn.net/qq_41307443/article/details/79839558我按照步骤操作遇到了一些问题记录一下:1 没有 ini ,文件,自己建立一个新的 .ini文件。自己的系统没显示后缀,我配置了一下;2 启动服务…

python爬取网页表格数据匹配,python爬虫——数据爬取和具体解析

标签:pattern div mat txt 保存 关于 json result with open关于正则表达式的更多用法,可参考链接:https://blog.csdn.net/weixin_40040404/article/details/81027081一、正则表达式:1.常用正则匹配:U…

前端学习(1598):ref转发

第一种方式 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src&…

PHP opencv Dlib,Face_Recognition

Face_Recognition使用Opencv和Dlib实现基于视频的人脸识别文件夹介绍1、Resources\pictures此文件夹下存放人脸保存结果2、Resources\video此文件夹下存放带标注视频保存结果3、Resources\faceS此文件夹下存放各个人物的图片&#xff0c;用于人脸库的建立4、Resources\featureD…

Examining Open vSwitch Traffic Patterns

In this post, I want to provide some additional insight on how the use of Open vSwitch (OVS) affects—or doesn’t affect, in some cases—how a Linux host directs traffic through physical interfaces, OVS internal interfaces, and OVS bridges. This is somethi…

Docker 面临的安全隐患,我们该如何应对

【编者按】对比虚拟机&#xff0c;Docker 在体量等方面拥有显著的优势。然而&#xff0c;当 DevOps 享受 Docker 带来扩展性、资源利用率和弹性提升的同时&#xff0c;其所面临的安全隐患同样值得重视&#xff0c;近日 Chris Taschner 在 SEI 上撰文进行了总结。本文系 OneAPM …

Oracle从小白到大牛的刷题之路(建议收藏学习)

目录 前言 数据表结构 数据库文件&#xff08;按照顺序导入&#xff09; 1基本SQL-SELECT 1.1基本SQL-SELECT语句笔记 1.2 基本SQL-SELECT语句练习 2过滤和排序数据 2.1过滤和排序数据笔记 2.2过滤和排序数据练习 3单行函数 3.1单行函数笔记 3.2单行函数练习 4多表…