数字信号处理:重要知识点整理_数字信号处理知识点总结-程序员宅基地

技术标签: 课程笔记  数字信号处理  

写在前面:本文中涉及的函数的使用场景为matlab

0 最重要!DFT和FFT的区别

https://www.vfe.cc/NewsDetail-765.aspx

1 连续时间信号频域分析

1)周期信号的傅里叶级数
① 三角形式的傅里叶级数:
1

② 指数形式的傅里叶级数:
2

其中,傅里叶级数为 在这里插入图片描述

傅里叶级数ak其实也是权重,可以用于合成信号(合成效果和谐波次数N有关,N越大越接近原信号),合成公式: 在这里插入图片描述

2)非周期信号的傅里叶变换
① 傅里叶变换:
5

② 傅里叶逆变换:
6

3)周期信号的频谱是离散的,非周期信号的频谱是连续的;
离散信号的频谱是周期的,连续信号的频谱是非周期的。

2 通过离散时间信号的Z变换表达式X(z)直接写出时域离散信号(序列)x(n)的方法

7

因此X(z)的系数即序列x(n)的值(只有离散时间信号即序列可以不用计算直接写!)

例:
8

对应的x1(n)为:9

注意是从高次幂到低次幂排列,原点即z^0的系数。但是对应的n1 = [0:2]是从小到大排列(注意原点位置)

3 部分分式法的MATLAB实现(求X(z)的部分展开式)

1)函数与格式:[r,p,k] = residuez(b,a)
2)用法:设返回参数r,p,k分别是:
10


在这里插入图片描述

注意同一个极点p3出现了两次,说明是二重极点
3)用于数字滤波器的并联型是通过系统函数(传递函数)H(z)的部分展开式实现的,所以该函数也可以用于实现数字滤波器的并联型
4)用residuez实现数字滤波器的并联型时,由于输出的r,p可能会有共轭复系数,需要转换成实数:
[b1,a1] = resideuz(R1,P1,0)

4 稳定系统

1)定义:当输入序列是有界的,则输出序列也有界,称系统是稳定的。
2)判断:
① 通过零极点的分布来判断:(对于因果系统)
稳定:H(z)的全部极点都落在单位圆内,即收敛域应该包含单位圆在内
临界稳定:一阶极点位于单位圆上(若有其他阶的,都在单位圆内),单位圆外无极点
不稳定:有极点落在单位圆外,或者单位圆上有重极点

5 求频响特性(系统函数H与对应的频点w)

1)函数与格式:[H,w] = freqz(b,a,N)
2)用法:输入b和a分别为系统函数H(z)的分子和分母系数矩阵,N为正整数,默认为512;
输出w包含了0-pi范围内的N个频率等分点,H是w对应的值
3)也可以通过手算出系统函数H(exp(j*w))实现

6 求离散系统的响应(求出某输入信号通过该系统得到的输出)

1)函数与格式:y = filter(b,a,Xn)
2)用法:实现差分方程的求解,因此这个只能用于离散系统(连续系统对应微分方程)求响应。其中b和a分别是差分方程的输出y和输入x的系数,Xn是输入信号,y是通过该系统的输出信号
3)当输入信号Xn为单位冲激信号(即单位脉冲信号)或单位阶跃信号时,可以用该函数求系统的单位冲激响应(即单位脉冲响应)或单位阶跃响应。

7 求系统的单位冲激响应

1)可以通过上面的filter函数求
2)函数与格式:y = impz(b,a,N)
3)用法:b和a同上,N表示冲激响应输出的序列个数,输出y是N个时域点对应的响应值。如果直接输出impz(b,a,N)可以直接画图,不用stem([0:N-1],y)

8 求系统的零极点

1)函数与格式:[z,p,k] = tf2zp(b,a)
2)用法:其中输入参数b是系统函数H(z)中分子的系数向量,a是分母的系数向量。输出的z为零点,p为极点,k为常数
3)也可以用roots函数分别求分子和分母的方程根,来求出系统的零极点

9 将零极点增益表示的H(z)转换成基本二阶形式

1)函数与格式:sos = zp2sps(z,p,k)
2)用法:其中z是零点,p是极点,k是常数项,输出的sos是矩阵:
在这里插入图片描述

对应的系统函数为(这只写出了某一行,多行的要相乘):
在这里插入图片描述

(注意这里的a就是分母的系数,写成系统函数时直接代数相加即可,但是在画图时级联型中的a是需要改变符号的)
3)由于数字滤波器的级联型是通过H(z)的基本二阶形式实现的,所以该函数也可以用于实现级联型

10 周期/非周期、连续/离散信号的傅里叶变换/傅里叶级数/DFT小结

在这里插入图片描述

11 加窗对信号频谱分析的影响

1)如果窗的宽度越大,即时间序列截取的越长,其频谱的旁瓣占的比例越小。当窗口宽度无限大时,即截取所有的时间序列,则只有主瓣,没有旁瓣。
2)频谱泄露是不可避免的,因为任何窗函数都不可能满足宽度无限大。但是选择好的窗函数,可以尽可能减少能量的泄露。
3)好的窗函数,是窗函数的频谱尽可能衰减的快,即主瓣和旁瓣的比例尽可能大。

12 fft中的点数L(即频域抽样的点数)的大小对频谱分析的影响

补零对原信号来说并没有增加任何信息,但是补零相当于对原信号的频谱做插值(时域增加采样点的个数,频域中频谱分辨率减小),能够减少频谱泄露

13 各种窗函数的产生

1)三角窗:bartlett、triang
2)布莱克曼窗:blackman
3)矩形窗:boxcar
4)汉明窗:hamming
5)汉宁窗:hanning
6)切比雪夫窗:chebwin
7)凯塞窗:kaiser

在这里插入图片描述

14 窗函数法设计FIR数字滤波器的步骤

(待补充)

15 频率采样法设计FIR滤波器的步骤

(待补充)

16 比较FIR滤波器的两种设计步骤的优缺点

1)窗函数法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)频率采样法
在这里插入图片描述

19 简述常用的IIR数字滤波器的设计方法

在这里插入图片描述
在这里插入图片描述

21 简述由模拟滤波器转换为IIR数字滤波器的两种常用变换方法的优缺点

1)脉冲响应不变法在这里插入图片描述

补充:脉冲响应不变法存在频谱混叠现象的原因是:数字滤波器频响是模拟滤波器频响的周期延拓。解决办法:
在这里插入图片描述

2)双线性变换法
优点:通过实现Z平面到S平面的映射,解决了脉冲响应不变法的混叠失真问题
缺点:频率之间的非线性变换问题,会产生新的问题:
1)一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了。
2)这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变。

17 脉冲响应不变法设计IIR数字滤波器的步骤

在这里插入图片描述

18 双线性变换法设计IIR数字滤波器的步骤

在这里插入图片描述

19 简述模拟滤波器转换为数字滤波器的要求和步骤

在这里插入图片描述
在这里插入图片描述

20 简述巴特沃斯滤波器和切比雪夫滤波器的比较

在这里插入图片描述

21 简述巴特沃斯型模拟低通滤波器设计步骤

巴特沃斯型:
在这里插入图片描述

切比雪夫型:

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Dabie_haze/article/details/105853124

智能推荐

Android自定义View-----TitleHead随列表拖动渐变---TitleHeadRecyclerView_android title 与 recyclerview 联动-程序员宅基地

文章浏览阅读757次。 仿照网易的有道词典的专栏详情的上拉下来效果。特点继承RecyclerView,重写onTouchEvent()事件,根据不同情况执行不同的操作。使用LayoutParams改变View参数,实现View的大小改变。使用setX()方法,改变View的坐标,实现View的移动动画。可把RecyclerView替换为其他类型的View,如ScrollerView、ListView等。除了Tit..._android title 与 recyclerview 联动

Xocde 12 pod 库 模拟器 library not found for -xxx解决办法_所有pod的库都不支持模拟器了-程序员宅基地

文章浏览阅读1.7k次。直接更新 Xcode12 运行模拟器 所有的pod里面的第三方开都找不到头文件,模拟器没问题 library not found for -xxx如图所示:解决办法:Xcode12 不知为什么会主动添加 VALID_ARCHS armv7 armv7s arm64如图:_所有pod的库都不支持模拟器了

QGIS编译(跨平台编译)之七十:【Windows编译错误处理】找不到vector_tile.pb.h、vector_tile.pb.cc-程序员宅基地

文章浏览阅读475次。QGIS编译;QGIS跨平台编译;Windows编译错误处理;找不到vector_tile;找不到vector_tile.pb;找不到vector_tile.pb.h;找不到vector_tile.pb.cc

HTTPS:让数据传输更安全_明文传输的特性-程序员宅基地

文章浏览阅读550次。浏览器安全主要划分为三大块内容:页面安全、系统安全和网络安全。前面我们用四篇文章介绍了页面安全和系统安全,也聊了浏览器和 Web 开发者是如何应对各种类型的攻击,本文是我们专栏的最后一篇,我们就接着来聊聊网络安全协议 HTTPS。我们先从 HTTP 的明文传输的特性讲起,在上一个模块的三篇文章中我们分析过,起初设计 HTTP 协议的目的很单纯,就是为了传输超文本文件,那时候也没有太强的加密传输的数据需求,所以 HTTP 一直保持着明文传输数据的特征。但这样的话,在传输过程中的每一个环节,数据都有可能被窃_明文传输的特性

工程数学基础 考试 要点 复习:矩阵论,数值计算_工程矩阵论期中考试-程序员宅基地

文章浏览阅读737次。v向量的1-范数∥x∥1=∑k=1n∣ξk∣\|x\|_1=\sum_{k=1}^n|\xi_k|∥x∥1​=∑k=1n​∣ξk​∣向量的2-范数∥x∥2=(∑k=1n∣ξk∣2)12\|x\|_2=(\sum_{k=1}^n|\xi_k|^2)^\frac12∥x∥2​=(∑k=1n​∣ξk​∣2)21​向量的\infty-范数∥x∥∞=max⁡1≤k≤n∣ξk∣\|x\|_\infty=\max_{1\leq k \leq n}|\xi_k|∥x∥∞​=max1≤k≤n​∣ξk​∣列范数=_工程矩阵论期中考试

opencsv解析CSV文件_opencsv 读取csv-程序员宅基地

文章浏览阅读1k次。opencsv解析CSV文件_opencsv 读取csv

随便推点

RTSP Windows专用播放器EasyPlayer : 稳定、兼容、高效、超低延时_多窗口rts流客户端-程序员宅基地

文章浏览阅读6.4w次,点赞6次,收藏26次。EasyPlayer RTSP Windows专用播放器EasyPlayer RTSP Windows 播放器是由EasyDarwin团队开发和维护的一个完善的RTSP流媒体播放器项目,视频编码支持H.264,H.265,MPEG4,MJPEG,音频支持G711A,G711U,G726,AAC,支持RTSP over TCP/UDP协议,支持软/硬解码,是一套极佳的安防流媒体平台播放组件!Ea_多窗口rts流客户端

EDM邮件群发:群发邮件不进垃圾箱的独家秘笈_不进垃圾箱的发件邮箱-程序员宅基地

文章浏览阅读5.5k次,点赞2次,收藏5次。EDM邮件群发:群发邮件不进垃圾箱的独家秘笈EDM邮件群发想要群发的邮件避免进入垃圾箱,不仅需要优化邮件内容和主题,管理收件人邮箱列表,还要有多服务器IP分流技术,控制发信速度,打乱收件人列表等手段,当然更少不了借助专业的邮件群发平台譬如U-Mail邮件群发。下面我们来介绍几个EDM邮件营销群发邮件不进垃圾箱的小秘笈:1.将收件人邮箱混合打乱,不要出现过多单一类型的邮箱群发时要尽量避..._不进垃圾箱的发件邮箱

windows 10 无法创建链接符号,解压文件怎么以管理员的方式解压?(已解决)_解压无法创建符号链接-程序员宅基地

文章浏览阅读3.4k次,点赞3次,收藏8次。文章目录问题概述问题解决拓展1.找到WinRA位置所在2.右键点击属性3.找到兼容性,下面勾选以管理员的方式运行就行了。点击确认问题概述当解压hadoop 3.2.2tar文件的时候报错 ,无法创建连接符号,可能需要管理员身份运行。其实这个问题的原因是因为有一些压缩包里面的文件的权限需要用到root,当就要用管理员的身份去运行,不然即使解压了,里面的一些文件不残缺的。进而导致我们的程序或者应用出错。那我们怎么样才能以管理员的方式运行呢?问题解决1.在你的菜单栏下面也就是windows左下方搜索_解压无法创建符号链接

qt开机自启动环境linux,ubuntu 设置qt程序开机启动-程序员宅基地

文章浏览阅读655次。1.建立一个桌面文件,forklift-app.desktopName填写程序的名字Exec执行程序的路径[Desktop Entry]Version=1.0Name=forklift-appExec=/home/likewei/project/release/forklift-app/AppRunStartupNotify=falseNoDisplay=trueType=ApplicationC..._linuxshezhiqtkaijiziqidong

SQLite3.8.4.2在Windows平台下的编译和使用_windows 编译sqlite 3.8.2-程序员宅基地

文章浏览阅读126次。下载源代码可以在下面的链接中找到“Source Code”一栏:http://www.sqlite.org/download.html当前提供了两个下载源,我们选择第一个sqlite-amalgamation-3080402.zip这个是将代码整合过的,解压后应该有下面几个文件:shell.csqlite3.c_windows 编译sqlite 3.8.2

python中星号(*),即(*train_x.shape)的用法_*x.shape-程序员宅基地

文章浏览阅读1.8w次,点赞15次,收藏34次。先看一段代码的的运行结果:import numpy as nptrain_x = np.linspace(-1,1,10)print(train_x.shape)print(train_x.shape[0])print(*train_x.shape) # *train_x.shape 与 train_x.shape[0] 的结果是一致的print(train_x[0]..._*x.shape

推荐文章

热门文章

相关标签