数字信号处理复习(一):离散傅里叶变换(DFT)

news2024/11/15 23:20:24

一:为什么需要离散傅里叶变换

我们知道在傅里叶变换中存在连续信号和离散信号变换从而诞生了有拉普拉斯变换(连续信号)Z变换(离散信号),这两种变换是方便以前没有计算机时工程师们手动计算傅里叶变换。而随着计算机算力增加,我们希望通过计算机帮助我们计算出傅里叶变换,所以离散傅里叶变换(DFT)(本次讲解)和快速傅里叶变换(FFT)(留在下一篇讲解)就产生了。

二:离散傅里叶变换的思路

思路:想要对一个连续变换的频谱进行抽样

遇到问题:我们所进行采样的工具都是在时域中进行采样,没有进行频域采样的工具。

解决方法:利用时域和频域的性质,如果让时域信号周期化,则频域就变成离散的了。

三:离散傅里叶变换的定义

3.1定义公式

正变换(DFT)和反变换(IDFT)的公式如下图所示:

 公式中:

k为频域中的自变量,X(k)为频域中的序列;

n为时域中的自变量,X(n)为时域中的序列;

N为变换区间的长度(需要注意在DFT中一定要强调是多少长度的DFT,因为不同长度DFT值是有不一样的);

下面两张图中的红点分别表示R_4(n)取N=4、8的结果图:

 

 

其中W{_{N}}^{nk}=e^{-j\tfrac{2\pi }{N}nk}W{_{N}}=e^{-j\tfrac{2\pi }{N}}

3.2W{_{N}}的理解性计算

我们由3.1中的公式可以知道W{_{N}}=e^{-j\tfrac{2\pi }{N}}那就可以理解成将一个圆平均分成N份并逆时针读数,如下图N=4时W{_{N}}的取值:

 其中W{_{N}}^{0}=1;W{_{N}}^{1}=-j;W{_{N}}^{2}=-1;W{_{N}}^{3}=j(之后数字按照周期重复出现)

四:离散傅里叶周期延拓

4.1周期延拓中的符号

如下图符号所示:

其中\tilde{x}(n)为周期序列,x((n))_{N}为以N为周期的周期延拓。

其中x(n)和\tilde{x}(n)的关系如下图所示

 

4.2周期延拓的三种情况

周期延拓的关键参数:x(n)序列长度M,周期延拓序列长度N。

(1)当M=N时,直接周期延拓即可,如下图

 (2)当M<N时,需要在序列后补齐N-M个零,再进行周期延拓,如下图:

(3)当 M>N时,M=6,N=4时,可以看到以N=4为周期进行延拓的话会有混叠部分,我们把从混叠部分开始的N个数作为周期延拓后的序列,下图周期延拓后的结果为6,8,4,3。

 五:周期序列的傅里叶级数(DFS)

DFT和DFS区别:DFS信号本身就是周期的(自然周期),而不是靠我们上述方法进行周期延拓而来的(而DFT的周期是因为W{_{N}}具有周期性,而产生的一种隐含周期,这种周期不是序列自己拥有的那种自然周期,而是通过人为通过序列循环而得到的,所以常常令它的周期与DFT变换周期相匹配)。

因为本身是周期的,不满足绝对可和的傅里叶变换的要求,更谈不上有频域的采样了,所以我们使用傅里叶级数(DFS)来解决。

如下图对比:

 那么就做题而言什么时候使用DFS,那个时候使用DFT呢?如下图解析:

 六:离散傅里叶变换性质

6.1线性

 PS:(1)两个有限长序列的长度可以不一样

(2)但是取变换区间长度时需要取两者长度的最大值,避免混叠的现象。

6.2循环移位性

(1)序列的循环移位:

 

我们用一个例题来直观的看待:

答案如下:

1)先进行补零,然后再周期延拓即可

 2)先将X(n)左移两位,再进行周期延拓即可

3)对2)中的结果进行从N=0-7取值即可

 

从直觉上来看得到的序列只是进行的将原来序列在N=0,1的值移位到了N=5,6处,所以得名循环移位。

(2)时域循环移位定理

(3)频域循环移位定理 

 6.3循环卷积定理

 

给一个例题方便大家理解:

 答案如下:

或者说可以使用简单算法,利用线性卷积和循环卷积的关系求解,具体求解方式,可看最后参考资料的第二点,这里不再赘述。 

6.4 DFT的复共轭性

(1)x(n)的复共轭序列定义

(2)x(n)的复共轭对称特性

 这条性质可以用来减少计算机计算时的时间复杂度(因为可以利用一部分已知的序列求出另一部分未知序列,如知道奇数序列可以得到偶数序列)。

七:频域采样定理

PS:若给出的序列M<N时,先使用周期延拓的方法,先得到x(n)的主值序列,再进行采样即可。 

 八:参考资料

(1)视频P20-P26

3-3频率域采样定理_哔哩哔哩_bilibili

 (2)利用线性卷积和循环卷积的关系求解线性卷积

线性卷积和循环卷积(圆周卷积)_循环卷积和圆周卷积一样吗_叶夏隐的博客-CSDN博客

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

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

相关文章

同构:编程中的数学(文末送书4本)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

多项目管理难在哪,多项目同时进行该如何做好进度管理?

最近&#xff0c;听到群里的项目经理吐槽&#xff0c;手上有10多个项目同时进行&#xff0c;工作起来手忙脚乱&#xff0c;杂乱无章&#xff0c;让他压力特别大。 对于项目经理来说&#xff0c;多项目并行推进的情况已是常态。从工作层面来说&#xff0c;不仅在各项目之间抢资…

解决 fatal: Authentication failed for ‘https://github.com/*/*.git/‘

原因&#xff1a;github 的认证策略发生了改变&#xff0c;在 2021年8月13日 的时候&#xff0c;用户名加密码的认证方式被去掉了&#xff0c;换成了 个人令牌&#xff08;Personal Access Token&#xff09;的校验方式。 官网解决方案&#xff1a;管理个人访问令牌 - GitHub …

数分面试题- 面试智力题

目录标题 1、如何用3L和5L桶量取4L水2、有两圈蚊香&#xff0c;一圈烧完需要1小时&#xff0c;怎么才能确定出15分钟/45分钟时间3、提灯过桥问题4、开关灯问题5、赛道赛跑问题6、砝码称重问题6.1 有10瓶药&#xff0c;每瓶有10粒药&#xff0c;其中有一瓶是变质的。好药每颗重1…

家政保洁维修上门预约系统开发;

家政保洁维修上门预约系统开发&#xff1b; 保洁&#xff0c;家电清洗等上门业务系统&#xff0c;支持派单接单&#xff0c;按区域&#xff0c;就近分配、套餐年卡等&#xff1b; 育婴月嫂系统 保姆筛选&#xff0c;简历主页&#xff0c;推荐跟进&#xff0c;在线合同&#xf…

IPO观察丨背靠百度、专注医疗内容营销,为何健康之路举步维艰?

互联网医疗赛道竞争加剧下&#xff0c;相关企业不仅在市场扩张上角逐&#xff0c;也在IPO道路上持续追赶。 仅就6月份而言&#xff0c;就有药师帮、方舟云康、健康之路等几家企业在持续推进上市进程&#xff0c;其中&#xff0c;药师帮已于6月28日成功登陆港交所&#xff0c;而…

pycharm断点调试

第一步&#xff1a;打上断点 第二步&#xff1a;进入调试模式 第三步&#xff1a;分析button作用 Resume Program&#xff1a;进入下一个断点show execution point (F10) &#xff1a;显示当前所有断点step over(F8) &#xff1a;单步调试&#xff0c;若函数A内存在子函数时&a…

改变下拉框中内容显示的顺序方法

在官网上&#xff1a; 如图所示&#xff1a;先点击龙须面&#xff0c;再点击虾仔煎的时候&#xff0c;会在下拉框中按照用户的点击顺序显示出来。 问题&#xff1a;前端如何按照黄金糕-双皮奶-虾仔煎-龙须面的顺序显示点击的值呢&#xff1f;这样做的一个好处就是按后端的顺序…

【2023】性感美少女-InsCode Stable Diffusion 美图活动一期

作者&#xff1a;闲散的不务正业的运维目录 一、 Stable Diffusion 模型在线使用地址&#xff1a;二、Stable Diffusion如何使用三、模型相关版本和参数配置&#xff1a;四、图片生成提示词与反向提示词&#xff1a;五、种子及对应图片&#xff1a;六、总结 一、 Stable Diffus…

Qt的发展如何?它是否是一个就业的好选择?

Qt是一种流行的跨平台应用程序开发框架&#xff0c;被广泛用于构建图形用户界面&#xff08;GUI&#xff09;和嵌入式应用程序。它具有良好的可移植性和可扩展性&#xff0c;并支持多种编程语言&#xff0c;如C、Python和JavaScript。 Qt的发展一直稳步推进&#xff0c;并且在…

I.MX6ULL_Linux_驱动篇(39) 阻塞和非阻塞IO

阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两种设备访问模式&#xff0c;在编写驱动的时候一定要考虑到阻塞和非阻塞。本章我们就来学习一下阻塞和非阻塞 IO&#xff0c;以及如何在驱动程序中处理阻塞与非阻塞&#xff0c;如何在驱动程序使用等待队列和 poll 机制。 阻塞…

HTML5+CSS3+JS小实例:可自由拖拽排序的表格

实例:可自由拖拽排序的表格 技术栈:HTML+CSS+JS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=…

嗨爆全场!联诚发大屏与荧光棒闪耀周杰伦海口演唱会!

6月29日-7月2日&#xff0c;2023周杰伦嘉年华世界巡回演唱会海口站在海口五源河体育场震撼开唱&#xff0c;来自世界各地的数万名歌迷粉丝齐聚椰城&#xff0c;共享狂欢盛宴。联诚发LCF龙腾S系列LED透明屏和智慧荧光棒系列产品在演唱会现场大放异彩&#xff0c;陪伴粉丝朋友们一…

2023 全球数字经济大会人工智能高峰论坛,和鲸科技入选北京市人工智能行业赋能典型案例

7月&#xff0c;由国家发展改革委、工业和信息化部、科技部、国家网信办、商务部、中国科协联合北京市人民政府共同主办“2023全球数字经济大会”在京召开&#xff0c;本届活动主题为“数据驱动发展&#xff0c;智能引领未来”。其中“人工智能高峰论坛”重点围绕通用人工智能大…

Leetcode-每日一题【61.旋转链表】

题目 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3] 示例 2&#xff1a; 输入&#xff1a;head [0,1,2], k 4输出&#xff1a…

网页的动静分离设置

我们都知道nginx处理静态网页是强项,而tomcat处理动态网页是强项.我们可以发挥他们共同的优点.nginx处理静态页面而tomcat处理动态页面 进入nginx配置文件改 总结 1.改配置文件最好复制一份 2.做一步验证一步 才知道哪里出错了 3.出错了别着急先看页面在浏览器能不能打开 不…

Python 字节数组方式写入kafka(含报错return ‘<SimpleProducer batch=%s>‘ % self.async)

一、背景 项目开发了一个类似kafka tools查询工具的kafka 查询&#xff0c;现在需要测试一下如果通过字节数组的形式写入&#xff0c;看看查询有没有问题 二、kafka查询代码 Python代码示例&#xff1a; from kafka import KafkaProducer import json# 创建Kafka生产者 pro…

搭建高性能数据库集群之三:Keepalived实现MySQL集群高可用

搭建高可用集群&#xff0c;2台HAProxy 可实现Mycat多节点的集群高可用和负载均衡&#xff0c;而HAProxy 的高可用&#xff0c;由Keepalived来实现。Keepalived负责为该台服务器抢占vip(虚拟IP)&#xff0c;抢到后对该主机访问。 搭建高可用集群&#xff1a; 上图&#xff0…

开源全新H5充值系统源码/自定义首页+充值页面/灵活对接上游渠道接口

开源全新H5充值系统源码&#xff0c;系统基于thinkphp框架开发&#xff0c;功能已全完善&#xff0c;可灵活对接其他上游渠道接口&#xff0c;默认对接了大猿人接口&#xff0c;另外可无限制自定义创建充值页面&#xff0c;首页支持后台自定义修改&#xff0c;支持三级分销&…

No1.精选前端面试题,享受每天的挑战和学习

文章目录 如何实现分页功能如何实现vue虚拟列表功能浏览器的渲染原理JS中Map、WeakMap和Object的区别 如何实现分页功能 要实现分页功能&#xff0c;主要涉及以下几个方面的步骤&#xff1a; 数据源&#xff1a;首先需要有一个数据源&#xff0c;可以是数据库、文件、API接口等…