MATLAB中如何实现巴特沃斯滤波器处理信号相关性 matlab,在线等。。。

&&&&数字信号处理教程――MATLAB释义与实现&(第3版)(MATLAB名家之作&...
&39.00当当价
(8.31折)电子书加价购
加价换购以下任意一件商品
请选择配送地址
钻石会员自营订单满49元(含)免运费
其他会员自营订单满59元(含)免运费
不足金额订单收取运费5元起
商品问答(%s条)
当当价:&27.80
版 次:1页 数:字 数:印刷时间:开 本:16开纸 张:胶版纸印 次:1包 装:平装丛书名:国际标准书号ISBN:3所属分类:&&&
陈怀琛教授编著的《数字信号处理教程--MATLAB释义与实现(第3版)》系统地讲解了数字信号处理的基本理论和方法,注重物理概念的阐述,尽量把matlab的多媒体功能用于图形、动画和声音等形象的演示,是一本自始至终使用matlab来阐述问题和进行计算的数字信号处理教材。本书适合作为电子信息专业的大学本科学生教材,对于学过数字信号处理课程,但没有用matlab来解决有关问题的研究生和工程技术人员,也有很好的参考价值。
经典畅销书,自第1版出版以来,销售近两万册。本书的程序集、部分题解及相关课件,读者可通过博文视点网站及作者主页找到并下载。
本教程系统地讲解了数字信号处理的基本理论和方法,注重物理概念的阐述,尽量把MATLAB的多媒体功能用于图形、动画和声音等形象的演示,是一本自始至终使用MATLAB来阐述问题和进行计算的数字信号处理教材。本教程中的全部例题程序和演示程序都可以免费从网上下载。本教程把《数字信号处理》课程定位为讲述“用数字方法处理(任何)信号”的技术,因此,对模拟信号的计算机处理给予了充分的篇幅,而这正是目前许多数字信号处理教材的弱点。
本书适合作为电子信息专业的大学本科学生教材,书中采用了大小两种字号混排,目的是适应不同专业和不同要求的本科学生。对于学过数字信号处理课程,但没有用MATLAB来解决有关问题的研究生和工程技术人员,也有很好的参考价值。
陈怀琛,1934年12月生于上海,毕业于军事电信工程学院,曾到美国宾西法尼亚大学系统工程系做访问学者。一直在西安电子科技大学担任教学、科研和管理工作,先后在机械系、自动控制系和电子工程系讲授过十多门课程,并任副校长,主管科研和研究生教育。曾兼任中国自动化学会理事、中国电子学会教育学会副理事长、陕西人民对外友协副会长、陕西省自动化学会副理事长等职务。
从1995年起,陈怀琛教授致力于推动大学课程和教学计算机化,目标是使教师和学生用计算机取代计算器来解决各课程的问题。在把MATLAB语言应用于大学课程教育方面,出版了多本著作:《控制系统CAD和MATLAB语言》(1996年12月)、《数字信号处理及其MATLAB实现》(1998年10月译)、《MATLAB及其在理工课程中的应用指南》(2000年1月)、《MATLAB及在电子信息课程中的应用》(2002年1月)、《数字信号处理教程――MATLAB释义与实现》(2004年10月)、《线性代数实践及MATLAB入门》(2005年10月)、《工程线性代数(MATLAB版)》(2007年9月)等。2009年,被教育部高教司指定为“用MATLAB和建模实践改造工科线性代数教育”项目的负责人,组织带领16所高校共同实施。
第1章 数字信号处理的发展及应用 1
1.1 数字信号处理的兴起 1
1.2 数字信号处理的任务 1
1.2.1 数字信号处理的应用 1
1.2.2 信号处理的主要任务 2
1.2.3 数字信号处理 3
1.3 信号采样和复原实例 4
1.4 本书概貌的说明 5
1.4.1 对“数字信号处理”内涵的理解 5
1.4.2 关于MATLAB语言 6
1.4.3 本书的组成 6
复习思考题 7
第2章 时域中的离散信号和系统 9
2.1 模拟信号与其采样序列的关系 9
第1章 数字信号处理的发展及应用 1
1.1 数字信号处理的兴起 1
1.2 数字信号处理的任务 1
1.2.1 数字信号处理的应用 1
1.2.2 信号处理的主要任务 2
1.2.3 数字信号处理 3
1.3 信号采样和复原实例 4
1.4 本书概貌的说明 5
1.4.1 对“数字信号处理”内涵的理解 5
1.4.2 关于MATLAB语言 6
1.4.3 本书的组成 6
复习思考题 7
第2章 时域中的离散信号和系统 9
2.1 模拟信号与其采样序列的关系 9
2.2 基本序列及序列的基本运算 10
2.2.1 序列的表示方法 10
2.2.2 常用的典型序列 11
2.2.3 序列的运算和变换 13
2.3 序列的周期延拓、奇偶分解和卷积 17
2.3.1 周期延拓 17
2.3.2 奇偶分解 18
2.3.3 复数域的分解 18
2.3.4 序列的卷积 20
2.4 时域离散系统 21
2.4.1 线性系统 21
2.4.2 线性时不变离散系统 22
2.4.3 LTI离散系统的数学描述――线性常系数差分方程 22
2.4.4 用MATLAB的递推解法 24
2.5 脉冲响应――用时间序列表征的系统特性 24
2.5.1 脉冲响应的特性 24
2.5.2 用解析卷积方法求系统输出 25
2.5.3 用向量?矩阵乘法进行卷积计算 26
2.5.4 用脉冲响应判断系统的因果性 28
2.5.5 用脉冲响应判断系统的稳定性 28
2.5.6 用脉冲响应分类数字滤波器 28
2.6 序列运算的MATLAB函数列表 29
复习思考题 30
第3章 离散序列的两种傅里叶变换 32
3.1 序列信号的周期性和频率 32
3.1.1 序列信号的周期性 32
3.1.2 序列信号的频率 33
3.1.3 有限带宽序列 36
3.2 离散时间傅里叶变换(DTFT) 36
3.2.1 离散时间傅里叶变换(DTFT)的定义 36
3.2.2 DTFT的性质 37
3.2.3 DTFT的解析计算示例 37
3.2.4 DTFT的数值计算示例 38
3.2.5 用MATLAB计算DTFT 40
3.2.6 MATLAB计算举例 41
3.3 系统频率特性及其计算 44
3.4 周期序列的频谱――离散傅里叶级数 46
3.4.1 从一个计算实例出发 46
3.4.2 周期序列的傅里叶级数 47
3.4.3 用MATLAB计算离散傅里叶级数 49
3.5 离散傅里叶变换(DFT) 50
3.5.1 离散傅里叶变换(DFT)的定义 50
3.5.2 用MATLAB计算DFT和IDFT 51
3.5.3 两种离散傅里叶变换(DFT与DTFT)的关系 52
3.6 离散傅里叶变换(DFT)的特性 53
3.6.1 隐含周期性 54
3.6.2 循环移位性质 55
3.6.3 循环折叠性质 56
3.6.4 循环卷积特性 57
复习思考题 60
第4章 信号频谱的高效计算 64
4.1 各种傅里叶变换及其相互关系 64
4.1.1 傅里叶变换的主要类型 64
4.1.2 DFT与其他变换的直接关系 65
4.2 快速傅里叶变换(FFT) 66
4.2.1 时域抽取(DIT)基二FFT算法 66
4.2.2 用MATLAB程序描述FFT算法 70
4.2.3 基四和其他基的FFT算法 71
4.2.4 其他FFT算法 71
4.3 用FFT计算离散时间序列的频谱 73
4.3.1 有限长离散时间序列的频谱计算 73
4.3.2 用补零方法由FFT求DTFT 74
4.3.3 无限长序列的频谱计算 75
4.4 连续信号采样中的频谱变换 77
4.4.1 时域采样定理(奈奎斯特定理) 77
4.4.2 由离散序列重构模拟信号 80
4.5 连续信号的频谱计算 82
4.5.1 非周期连续信号的频谱计算 83
4.5.2 连续周期信号的频谱计算 88
4.6 从频谱计算序列信号(IDFT) 90
4.6.1 频率域采样定理 90
4.6.2 从频谱计算离散时间序列 91
4.6.3 从频谱计算连续时间信号 94
4.7 用FFT计算能量 96
4.8 小结 97
复习思考题 97
第5章 变换域中的离散时间系统 101
5.1 z变换 101
5.1.1 z变换的定义与收敛性 101
5.1.2 z变换的重要特性和定理 104
5.1.3 z变换的计算实例 105
5.2 z反变换和差分方程的解 105
5.2.1 用留数定理求z反变换 106
5.2.2 用部分分式法求z反变换 106
5.2.3 幂级数法(长除法)求z反变换 108
5.2.4 用z变换解差分方程 110
5.3 z域中对系统的描述 112
5.3.1 系统函数(传递函数) 112
5.3.2 正幂系统函数和零极增益形式 115
5.3.3 零极点分布与系统的因果性和稳定性 116
5.4 z平面上的谱分析 117
5.5 理想滤波器 118
5.5.1 数字滤波器的基本概念 118
5.5.2 理想的因果低通滤波器的频率特性 119
5.5.3 线性相位条件对脉冲响应对称性的要求 120
5.5.4 考虑因果性和对称性对理想滤波器的影响 122
5.6 低阶数字滤波器 122
5.6.1 一阶数字滤波器 122
5.6.2 二阶数字滤波器 125
5.6.3 梳状滤波器的零极点分布 126
5.7 全通滤波器 127
复习思考题 128
第6章 数字滤波器结构 131
6.1 概述 131
6.2 滤波器的信号流图结构及解法 132
6.2.1 信号流图 132
6.2.2 信号流图方程的计算机解法 133
6.2.3 信号流图与数字系统的网络结构图 135
6.3 FIR基本网络结构 135
6.3.1 概述 135
6.3.2 直接形式 136
6.3.3 级联形式 136
6.3.4 线性相位形式 137
6.3.5 频率样本结构 138
6.4 IIR基本网络结构 141
6.4.1 直接形式 142
6.4.2 级联形式 143
6.4.3 并联形式 145
6.5 格型滤波器及其信号流图解法 146
6.6 各种结构形式的转换和比较 147
6.6.1 各种结构形式的转换 147
6.6.2 从计算的复杂性做比较 148
6.6.3 从减小系数量化影响做比较 148
复习思考题 148
第7章 FIR滤波器设计 151
7.1 数字滤波器设计的基本要求 151
7.1.1 数字滤波器的设计基本步骤 151
7.1.2 数字滤波器的主要指标 151
7.1.3 为什么以低通滤波器为典型 154
7.2 线性相位滤波器的特性 154
7.2.1 线性相位和符幅特性(Amplitude Response) 154
7.2.2 符幅特性的计算举例 158
7.2.3 计算符幅特性的MATLAB程序 159
7.2.4 线性相位滤波器的零极点分布 161
7.3 设计FIR滤波器的窗函数法 161
7.3.1 对脉冲响应进行截断的分析方法 161
7.3.2 矩形窗截断的定量分析 163
7.3.3 几种常用窗函数的介绍 166
7.3.4 MATLAB提供的窗函数 167
7.3.5 用窗函数设计FIR滤波器的步骤 169
7.4 利用频率样本法设计FIR滤波器 175
7.4.1 预期频率特性的设置方法 175
7.4.2 频率样本法的设计过程 176
7.4.3 MATLAB中频率样本法的设计函数 180
7.5 FIR滤波器的最优设计法 181
复习思考题 184
第8章 IIR滤波器设计 186
8.1 关于模拟滤波器的预备知识 186
8.1.1 模拟滤波器的指标 186
8.1.2 以模拟滤波器为基础的设计方法 188
8.2 模拟滤波器原型的设计 189
8.2.1 巴特沃斯低通滤波器 189
8.2.2 切比雪夫I型低通滤波器 194
8.2.3 切比雪夫II型低通滤波器 198
8.2.4 椭圆低通滤波器 200
8.2.5 滤波器原型的相位响应 202
8.3 由模拟滤波器变换为数字滤波器 202
8.3.1 脉冲响应不变法 203
8.3.2 双线性变换法 208
8.4 模拟滤波器的频带变换 216
8.4.1 低通到低通的频带变换 217
8.4.2 低通到高通的频带变换 217
8.4.3 低通到带通的频带变换 218
8.4.4 低通到带阻的频带变换 219
8.4.5 信号处理工具箱中的频带变换函数 220
8.5 MATLAB中直接设计IIR数字滤波器的函数 223
8.6 IIR和FIR数字滤波器的比较 224
复习思考题 225
第9章 信号处理工程化的MATLAB工具 228
9.1 信号处理工具(sptool)的介绍 228
9.2 MATLAB中的滤波器设计工具 231
9.3 系数量化和运算量化的影响 234
9.3.1 数的浮点和定点表示方法 234
9.3.2 系数量化对FIR滤波器的影响举例 236
9.3.3 系数量化对IIR滤波器的影响举例 237
9.3.4 运算量化和溢出问题 238
9.3.5 滤波器设计工具中的量化处理 239
9.3.6 定点(Fix-point)工具箱 240
9.4 系统仿真(Simulink)工具简介 240
9.4.1 概述 240
9.4.2 模块库及模型的建立 241
9.4.3 仿真的运行 242
9.5 MATLAB与嵌入式代码的衔接 243
9.6 基于模型的开发流程 244
9.7 嵌入式代码开发的一个实例 246
9.8 数字信号处理的未来 250
参考文献 263
附录A 信号处理工具箱函数集 252
附录B 本书自编子程序索引表 258
附录C 例题程序索引表 259
附录D 图形生成和演示程序索引表 262
本书自2004年出版以来,受到学术界和工程界的广泛好评。主要原因在于它是国内第一本用计算机作为解题和演示工具的信号处理教材,并且非常强调物理意义和实际应用。但我们发现,购买本书的多为教师和工程师,本科院校选择它作为教材的还不够多。其原因可能有二:一是相当多大学的三年级学生还没有MATLAB的基础;二是这本教材的内容相对于本科的教学要求还有些偏多偏深,上次修订时就有过予以精简的设想,但没有实施。
随着时间的推移,全国各个大学对科学计算语言日益重视。2009年,教育部高教司推行了“利用信息技术工具改造课程项目”,推动了许多大学课程的计算机化。有的学校在大
本书自2004年出版以来,受到学术界和工程界的广泛好评。主要原因在于它是国内第一本用计算机作为解题和演示工具的信号处理教材,并且非常强调物理意义和实际应用。但我们发现,购买本书的多为教师和工程师,本科院校选择它作为教材的还不够多。其原因可能有二:一是相当多大学的三年级学生还没有MATLAB的基础;二是这本教材的内容相对于本科的教学要求还有些偏多偏深,上次修订时就有过予以精简的设想,但没有实施。
随着时间的推移,全国各个大学对科学计算语言日益重视。2009年,教育部高教司推行了“利用信息技术工具改造课程项目”,推动了许多大学课程的计算机化。有的学校在大一的线性代数、物理等课程以及大二的力学、电路、信号与系统等课程中开始讲授和使用MATLAB语言,这些学生到了大三时已经有了初步的MATLAB编程能力,推广这本教材也就有了较好的基础。逐渐地有更多学校的老师希望使用这本书做教材,建议我们按普及知识的思路对本书进行改编,这促进了我们进一步修订的决心。
此次修订中,我们保留了所有讲述基本概念的文字、程序和图形,更加注意上下文的衔接,自始至终运用MATLAB程序阐述问题,提供了其他教材没有的图形、曲线和动画。全书提供了演示程序、例题程序、解题子程序近160个,与前两版相差不多。书中仍用大小两种字号排版,并附有大量思考题和习题,便于读者按先简后繁的次序循序渐进地阅读。书中采用的大小两种字号中,小字属于可以不学的次要内容,便于学生自学时跳过。作为基本要求,全书用大字印刷的内容不到200页。如果学生有了初步的MATLAB语言基础,在本科教学计划时间内掌握本书所讲内容应该是不困难的。
这一版的程序集取名为dsk04t。实际上该版的程序都包含在前两版的程序集中。例题程序名原来是按例题编号取的,由于例题的减少,会造成编号的变化,遇到这种情况,我们将按新的编号确定程序名,并在后面加一个字母“t”,以免与以前的程序名混淆。例如原来的例3.2.4,原有的程序名为hc324,在修订版中其编号变为了例3.2.2,在程序集dsk04t中它的程序名就改为hc322t,不过这种情况不多,绝大多数例题程序的编号都没有变化。
该书是国内第一本用计算机作为解题和演示工具的信号处理教材,并且非常强调物理意义和实际应用。从数字信号处理的理论到MATLAB实践,书中均有详细的指导。陈怀琛教授随本书赠送读者该教程的相关课件及程序集,读者可免费下载使用。
在线试读部分章节
2.2.1 序列的表示方法
当把一个经等间隔采样的信号表示为序列后,就抽掉了它的采样周期T的信息。如果序列的长度有限,就可以用一个向量来表示。然而这样一个向量并没有包含采样位置(或时间先后)的信息。因此,完全表示序列x(n)要用x和n两个向量,例如序列x(n)
?1.4,3,1,4,3.1,7}(双下画线表示n?0处的采样点),即x(?3) ? 2,x(?2) ? 1.2,x(?1) ?
?1.4,x(0) ? 3,…,所以要用n和x两个向量才能完全地表示一个序列:
n ? [?3,?2,?1,0,1,2,3,4];
x ? [2,1.2,?1.4,3,1,4,3.1, 7 ];
stem(n,x);
%绘制离散信号
位置向量n是顺序增加的整数,所以在MATLAB中可以简化表示为n ?
[?3:4];而因变量x是一个模拟量数组,可以有小数,甚至可以是无理数。有些序列,因为采样位置从n ?
0开始,就省写了n向量,只用x向量来表示序列x[n]。在MATLAB的信号处理工具箱函数中,对输入序列大多都采取这种设定,以减少输入变元的数目,实际上n仍然存在。如果x的长度是N
? length(x),即默认n ?
0:N?1。由于MATLAB中的变量下标是从1开始的,此时x的下标仍不是n,而应该是?1,x的下标范围为(1:N)。所以,即使在MATLAB的默认条件下,x的下标也并不等于位置向量n。在本书中给出的序列运算的函数程序,输入和输出序列都用n和x两个向量表示,所以存在一个与MATLAB的信号处理工具箱函数衔接的问题,需要做简单的处理。
如果x是实数数组,则称为实序列;如果x是复数数组,则称为复序列;一个复序列可以分解为两个实序列的合成:
其中,都是实序列,它们分别为序列x(n)的实部和虚部。因此可以用实序列的理论和方法来处理。复序列也可以用它的幅度和相角来表示:
其中,幅度|x(n)|和相角
(n)也都是实序列。借助幅度和相位可以利用向量形式来简化一些繁杂的数学公式,直观地理解数字信号处理中许多深奥的概念。
如果x的长度N ?
length(x)有界,则称之为有限序列;如果N无界,则称之为无限长序列。实际中遇到的序列都是有限序列,无限长序列是一种数学模型,只有理论意义。
如果对应的n、x都有确定的取值,则称之为确知序列;如果取值随机,则称之为随机序列。在现实中不存在完全的确知信号,因为现实中的信号都不可避免地受到噪声的污染。由此,对确知序列的研究更多的是理论上的意义,有助于探究如何更好地从噪声污染的信号中提取有用的信息,这是信号处理非常重要的任务之一。
2.2.2 常用的典型序列
(1)单位脉冲序列(unit impulse sequence)? (n)
其特点是仅在n = 0处取值为1,n为其他值处均为零。它类似于模拟信号中的单位冲激函数? (t)。
后面要常常用到迟延的单位脉冲序列。其脉冲的作用起点不是0而是 ,表示为:
为了方便调用,本书建立一个MATLAB函数impseq.m,用来生成迟延的单位脉冲序列。其输入参数为序列起始位置ns、序列终止位置nf及脉冲位置np。函数如下:
function [x,n] = impseq(np,ns,nf)
% 生成 x(n) = delta(n-np); ns <= n <= nf
% ----------------------------------------------
% ns为序列起始位置,nf为序列终止位置,np为脉冲位置
% 调用方式 [x,n] = impseq(ns,ns,nf)
if ns>np|ns>nf|np>nf
error('输入位置参数不满足ns <= np <= nf')
else n = [ns:nf];
x = [(n-np) == 0];
end % 单位脉冲序列的产生
这里出现了本书第一个自编的MATLAB函数文件,写得比较完整。程序中的核心部分是第一行和倒数第二行,缺了这两行,程序将不能工作。第二行至第六行都是以%开始的,它们是注释语句。在键入help
impseq时将显示这几行内容,以便用户正确调用这个函数。以if打头的第7行、第8行是用来检验输入参数的正确性的。输入参数错误时它会显示错误的信息。在MATLAB语法上用了完整的if-else-end语句。现在起本书中的函数程序将省略某些辅助语句,以节省篇幅。但在我们提供的程序集中,将给出完整的程序。
注意,倒数第二行的核心语句采用了逻辑语句x = [(n-np) == 0]。在n =
ns:nf的一串值中,只有一个值能满足这个逻辑式,因而只在这个n =
np处,x为1,在其余的n值处,x均为0,形成了迟延np的单位脉冲序列x。读者也可以试用其他方法来写这条核心语句,不过本书提供的这条语句可能是最简练的。
(2)单位阶跃序列(unit step sequence)u(n)
它类似于模拟信号中的单位阶跃函数u(t),u(n)和? (n)的关系如下:
由于后面常会用到这个序列,本书也建立一个函数stepseq.m,用来生成迟延的单位阶跃序列。其输入参数为序列起始位置ns、序列终止位置nf及阶跃位置np。函数如下:
function [x,n] = stepseq(np,ns,nf)
n = [ns:nf]; x = [(n-np) >= 0]; % 单位阶跃序列的产生
它与impseq函数的差别只是把逻辑语句中的“等于号”改成了“大于等于号”,读者也可以尝试用其他语句来实现此程序中的核心语句。
(3)矩形序列(rectangular sequence)
式中的N为序列的长度。矩形序列可以方便地用单位阶跃序列之差来生成:
所以不必为它编子程序了。
(4)复指数序列(complex exponential sequence)
(2.2.10)
若ω = 0,它是实指数序列;若α = 0,它是虚指数序列 ,故其实部为余弦序列,虚部为正弦序列。
例2.2.1:编写MATLAB程序来产生下列基本脉冲序列。
a.单位脉冲序列:起点ns = 0,终点nf = 10,在np = 3处有一单位脉冲(ns≤np≤nf);
b.单位阶跃序列:起点ns = 0,终点nf = 10,在np = 3前为0,在ns处及以后为1(ns≤np≤nf);
c.复数指数序列:取a = ?0.2,ω = 0.5,起点为ns3 = ?2,终点为10。
解:这些基本序列的表达式比较简单,编写程序也不难。对于单位脉冲序列和单位阶跃序列,我们直接调用了上面编写的子程序。编写的程序hc221如下:
clear,ns=0;nf=10;np=3;ns3=-2
[x1,n1]=impseq(np,ns,nf); % 单位脉冲序列的产生
[x2,n2]=stepseq(np,ns,nf); % 单位阶跃序列的产生
n3 = ns3: x3=exp((-0.2+0.5j)*n3); % 复数指数序列
subplot(2,2,1),stem(n1,x1);title('单位脉冲序列')
subplot(2,2,3),stem(n2,x2,'.');title('单位阶跃序列')
subplot(2,2,2),stem(n3,real(x3),’x’);line([-5,10],[0,0]) %
title('复指数序列'),ylabel('实部')
subplot(2,2,4),stem(n3,imag(x3),'filled');
line([-5,10],[0,0]),ylabel('虚部')
程序运行结果如图2.2.1所示。
在程序中采用了stem绘图函数来代替plot。因为plot是用来画连续曲线的,它自动把各点用直线连接起来,所以不适于表现脉冲序列。本例中几条绘图语句stem使用了不同的“点形”输入参数,因此各条曲线上的标志方式不同,读者可以参照其进行使用。stem命令在绘制序列时用得很频繁,要熟悉它的用法。在后面的程序中,将省略大同小异的subplot、xlabel、title,以及plot、stem、line等绘图和标注语句。
(5)正余弦序列(the sine/cosine sequence)
其中?为以弧度为单位的相角,例如,要产生
可以用下列MATLAB语句:
n = [0:10]; x = 3*cos(0.1*pi*n+pi/3) + 2*sin(0.5*pi*n);
(6)随机序列(random sequence)
许多实际的序列是不能用确定性的数学式来描述的,对这些序列称之为随机序列。在MATLAB中,有两种基本的人造的随机序列(也称伪随机序列)可供调用。Rand(N,
M)函数产生在[0, 1]均匀分布的N ? M元随机矩阵。Randn(N, M)则产生均值为0,方差为1的N ?
M元正态分布高斯随机矩阵。
书摘与插画
店铺收藏成功数字巴特沃斯滤波器设计这是《信号与系统》课上的题目,原题如下:试设计一个数字低通滤波器,不仅具有模拟巴特沃斯滤波器的幅度响应,而且具有线性相位响应.用Matlab编程计算具有巴特沃斯幅频响应的线性相位滤波器的单位样值响应,并画出30阶的波形.
小传君0583
1-2基于Butterworth模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率Omega=0.2*pi,阻带截止频率Omega=0.3*pi,通带波动值Rp=1dB,阻带波动值Rs=15dB,设Fs=4000Hz.代码:wp=0.2*ws=0.3*Fs=4000;T=1/Fs; OmegaP=(2/T)*tan(wp/2);OmegaS=(2/T)*tan(ws/2);rp=1;rs=15;as=15;ripple=10^(-rp/20);attn=10^(-rs/20);[n,wn]=buttord(OmegaP,OmegaS,rp,rs,'s');[z,p,k]=Buttap(n);[b,a]=zp2tf(z,p,k);[bt,at]=lp2lp(b,a,wn);[b,a]=bilinear(bt,at,Fs);[db,mag,pha,grd,w]=freqz_m(b,a);%%下面绘出各条曲线subplot(2,2,1);plot(w/pi,mag);title('Magnitude Frequency幅频特性');xlabel('w(/pi)');ylabel('|H(jw)|');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);set(gca,'YTickMode','manual','YTick',[0 attn ripple 1]);gridsubplot(2,2,2);plot(w/pi,db);title('Magnitude Frequency幅频特性(db)');xlabel('w(/pi)');ylabel('dB');axis([0,1,-30,5]);set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);set(gca,'YTickMode','manual','YTick',[-60 -as -rp 0]);gridsubplot(2,2,3);plot(w/pi,pha/pi);title('Phase Frequency相频特性');xlabel('w(/pi)');ylabel('pha(/pi)');axis([0,1,-1,1]);set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);gridsubplot(2,2,4);plot(w/pi,grd);title('Group Delay群延时');xlabel('w(/pi)');ylabel('Sample');axis([0,1,0,15]);set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);grid
为您推荐:
其他类似问题
扫描下载二维码&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
数字信号处理巴特沃斯滤波器的汉明窗设计
下载积分:800
内容提示:数字信号处理巴特沃斯滤波器的汉明窗设计
文档格式:DOC|
浏览次数:12|
上传日期: 17:58:06|
文档星级:&#xe60b;&#xe612;&#xe612;&#xe612;&#xe612;
该用户还上传了这些文档
数字信号处理巴特沃斯滤波器的汉明窗设计
官方公共微信就是关于巴特沃斯滤波器的程序的编写.我们要做个题目...是用巴特沃斯滤波器对语音信号进行滤波.3、\x05设计巴特沃斯(切比雪夫或椭圆)滤波器.利用buttord计算滤波器阶数:[N,Wn] = buttord(Wp,Ws,Rp,Rs);利用butter计算滤波器系数:[b,a] = butter(N,Wn).根据人的声音的特点,设计出不同截止频率的滤波器:(以下参数在带入MATLAB中时,均需要规一化)低通:Wp=1000Hz;Ws=1200Hz;高通:Wp=2000Hz;Ws=1600Hz;带通:Wp=[1000Hz 2000Hz];Ws=[800Hz 2500Hz];阶数那些是根据什么来算?是下面给出的数据?RP跟RS又怎么确定?想问下.能附上程序跟说明么?
设计滤波器只要完成这两步就可以了,得到合适的b和a就算设计完了.[N, Wn] = buttord(Wp, Ws, Rp, Rs);[b,a] = butter(N,Wn)但是已知条件中的Wp和Ws是不能直接代入的,必需转换Wp=Wp*2/Ws=Ws*2/fs;这就是所谓的归一化.fs是信号的采样频率.如果题目中没有给出,可以根据人声特点取44100Hz.如果题目中给了,就用题目的采样频率.Rp和Rs如果题目没有给,可以自己指定.一般可选Rp=1,Rs=40高通,和上面过程一样带通,过程一样,Wp=[]
Ws=[800 2500]
带通的里面...应该怎么写入程序格式咧?难道用.还是其他的什么?而且我最开始用的wavrecord里面设置的是uint8的格式...后面利用filter滤波器会提示我underfinded functiong。。。这个又是什么问题咧?
程序是一样的,只要把原来的比如Wp=1000换成Wp=[],Ws=1200Hz换成 Ws=[800 2500]就行了呀
请问。。。。加入随机噪声....应该怎么写咧- -...
如果x是原始信号,a=0.5是随机信号的比例系数,xnew是加了随机噪声后的信号。
xnew=x+a*randn(size(x))
如果觉得噪声大小不合适,可以改变a的大小
能麻烦你帮我写一段程序么?设置一个高斯白噪声.....SNR为6.....然后跟频率为8000的余弦函数相乘以后....与原始函数y相加.....原始函数的采样频率为8K....最后再设计一个高通或者低通滤波器将噪声滤掉....得到原来的函数Y.....
你对这个题目的表述有问题,包括高斯白噪声本身没有SNR的概念,8000余弦和采样频率8k矛盾等等。请贴个原始题目的图片上来
原始语音信号y=wavrecord(fs*3,fs,'double')。。。。采样频率为8000HZ...现在要求为原始语音信号加入高频噪音....再设计合适的滤波器滤掉噪声.....滤波器的话....尽量采用filter吧- -...别的我不太懂。
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 matlab 的文章

 

随机推荐