傅里叶分析(1)

1 概述

傅里叶分析是信号分析中常用方法之一。傅里叶分析可将信号在时域和频域之间进行转换,从而分析信号在频域上的特点。

傅里叶分析(Fourier analysis)根据信号的时域数据特征,分为 4 个类别:

  • 傅里叶级数(Fourier series,FS):周期连续信号
  • 傅里叶变换(Fourier transform,FT):非周期连续信号
  • 离散傅里叶变换(discrete Fourier transform,DFT):周期离散信号
  • 离散时间傅里叶变换(discrete-time Fourier transform,DTFT):非周期离散信号

2 傅里叶级数

傅里叶级数描述了将周期函数(其周期为 T)转换为若干个三角函数之和的方法。被转换的周期函数在单个周期内允许存在有限个间断点(如方波函数)。

傅里叶级数的最基本表示方法为若干正弦、余弦函数的和,即正弦-余弦形式:

其中,各项系数的取值为:

通过三角函数变换,傅里叶级数也可表示为幅值-相位形式:

幅值-相位形式和正弦-余弦形式的系数关系为:

将周期函数转换为傅里叶级数的方法也称为谐波分析(harmonic analysis),每个级数项根据 n 取值称为 n 次谐波(harmonics)。理论上,周期函数包含无穷多谐波,实际应用中通常只取前若干次谐波截断近似。截断的谐波次数越高,则越接近原始函数。

 如图为方波的谐波叠加结果对比,很显然,使用的谐波数量越多则越接近方波真实形状。

周期函数的频谱特征为:

  • 一次谐波频率(基频)为 1/T
  • n次谐波频率为 n/T,为基频的整数倍
  • 可能存在 0 幅值的谐波
  • 幅值非 0 的谐波,次数越高,幅值越小

如方波频谱特征为:

  • 偶数次谐波(二次谐波、四次谐波等)幅值为 0
  • 奇数次谐波(一次谐波、三次谐波等)幅值为基频幅值的 1/n

如图为频谱分布。

正弦-余弦形式的傅里叶级数可根据欧拉公式改写成指数形式。

欧拉公式

傅里叶级数(指数形式)

指数形式和正弦-余弦形式的系数关系为:

3 傅里叶变换

傅里叶变换为傅里叶级数针对非周期函数的扩展。

非周期函数为周期趋近于无穷大的极限状态,此时基频 1/T 趋近于 0,频谱从离散点 n/T 变成连续函数。在数学处理中,傅里叶级数的求和操作变成傅里叶变换的求积分操作。

傅里叶变换为时域到频域的变换,其变换结果为频谱函数。

傅里叶变换计算公式为:

傅里叶逆变换为频域到时域的变换。傅里叶逆变换计算公式为:

比较指数形式傅里叶级数和傅里叶变换公式,在 T 趋向于无穷大时:

  • 频谱的频率取值从离散点 n/T 变成连续变量 ξ
  • 傅里叶级数的系数从离散数值 Cn 变成连续函数 F(ξ) 

sgn(x)的傅里叶变换

4 重要问题

4.1 复信号的频谱

物理意义的频率定义为单位时间内的重复次数,其取值必然为正数,不存在负频率的情况。

对于多个互相关联的信号,可将其进行组合以方便分析和处理,典型应用场景如波干涉分析等需要考虑信号相位影响的问题。一种常用方法为将信号表示为 z=f(t)+i*g(t) 的复函数形式。

复信号有实部和虚部两个自变量,为三维空间的函数。在三维空间中,定义旋转方向需要满足右手螺旋法则,负的角速度旋转方向与右手螺旋法则相反。根据角速度与频率之间的数量关系,可得到负频率。物理意义上的频率定义,其实际为负频率的绝对值。

频率符号对复信号的影响(图源:dsp.stackexchange.com)

频域函数 F(ξ) 为复函数,即存在复频率。复频率表示了频率的相位。

复频率及其相位图示(图源:eetimes.com)

若 f(t) 是纯实数的函数,其傅里叶变换后的频域函数 F(ξ) 为偶函数,其幅值和相位特点为:

  • 幅值为频率的偶函数
  • 相位为频率的奇函数

4.2 信号强度比较

信号在不同频率的强度差异可能跨数个数量级,难以直接比较或分析差异。工程应用中,也需要考虑信号之间的强度比例问题(如传感器信噪比),而不仅是信号强度本身。

为此,引入单位贝尔(B)来表征信号强度之间数量级关系。实际工程中通常采用分贝(dB),其换算为 1 dB = 0.1 B。

若比较标准为功率或与之成相关的物理量(如光强度、声强度等),dB 的数值计算公式为:

若比较标准为与功率的平方根成比例的物理量(如速度、电流、电压等),dB 的数值计算公式为:

上述算式中,p1 和 f1 为实际信号的物理量,p0 和 f0 为参考基准值。由于 dB 定义基于对数比例,因而不满足线性叠加关系。

各 dB 数值对应的比例值(图源:维基百科)

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

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

相关文章

如何在 Python 中执行 MySQL 结果限制和分页查询

Python MySQL 限制结果 限制结果数量 示例 1: 获取您自己的 Python 服务器 选择 “customers” 表中的前 5 条记录: import mysql.connectormydb mysql.connector.connect(host"localhost",user"您的用户名",password"您的密码"…

基于安卓android微信小程序的物流仓储系统

项目介绍 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个开发过程首先对物流仓储系统进行需求分析,得出物流仓储系统主要功能。接着对物流仓储系统进行总体设计和详细…

Vue.Draggable 踩坑:add 事件与 change 事件中 newIndex 字段不同之谜

背景 最近在弄自定义表单,需要拖动组件进行表单设计,所以用到了 Vue.Draggable(中文文档)。Vue.Draggable 是一款基于 Sortable.js 实现的 vue 拖拽插件,文档挺简单的,用起来也方便,但没想到接下来给我遇到了灵异事件……

PySide/PYQT如何用Qt Designer和代码来设置文字属性,如何设置文字颜色?

文章目录 📖 介绍 📖🏡 环境 🏡📒 实现方法 📒📝 Qt Designer设置📝 代码📖 介绍 📖 本人介绍如何使用Qt Designer/代码来设置字体属性(包含字体颜色) 🏡 环境 🏡 本文使用Pyside6来进行演示📒 实现方法 📒 📝 Qt Designer设置 首先打开Qt De…

如何在ModelScope社区魔搭下载所需的模型

本篇文章介绍如何在ModelScope社区下载所需的模型。 若您需要在ModelScope平台上有感兴趣的模型并希望能下载至本地,则ModelScope提供了多种下载模型的方式。 使用Library下载模型 若该模型已集成至ModelScope的Library中,则您只需要几行代码即可加载…

PostgreSQL 14.3 源码安装调试

摘要:介绍PostgreSQL 14.3 源码安装,postgresql使用和vscode源码调试。 1. 环境准备 1.1 系统参数修改 systemctl status firewalld.service #查看防火状态 systemctl stop firewalld.service #暂时关闭防火墙 systemctl disable firewalld.service …

爬虫怎么伪装才更安全

随着网络技术的不断发展,爬虫技术也越来越成熟,爬虫伪装技术也随之得到了广泛应用。在爬虫伪装技术中,如何伪装成正常的浏览器行为,让目标网站无法辨别出爬虫的存在,是爬虫伪装技术的核心。下面,我将从以下…

mysql8安装和驱动jar包下载

方式一:基于docker安装 下拉镜像 docker pull mysql:8.0.21 启动镜像 docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORDhadoop -d mysql:8.0.21 启动成功后,进入容器内部拷贝配置文件,到宿主主机 docker cp mysql:/etc/mysql…

人工智能基础——图像认知与OpenCV

人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

pandas笔记:读写excel

1 读excel read_excel函数能够读取的格式包含:xls, xlsx, xlsm, xlsb, odf, ods 和 odt 文件扩展名。 支持读取单一sheet或几个sheet。 1.0 使用的数据 1.1 主要使用方法 pandas.read_excel(io, sheet_name0, header0, namesNone, index_colNone, usecolsNon…

pyqt环境搭建

创建虚拟环境 # 用管理员身份运行 conda create --prefixE:\Python\envs\pyqt5stu python3.6 # 激活虚拟环境 conda activate E:\Python\envs\pyqt5stu # 退出虚拟环境 conda deactivate安装包 pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5-tools…

如何用Excel软件制作最小二乘法①

一、用自带的选项(不推荐),因为感觉只是近似,虽然结果一样 1.在Excel中输入或打开要进行在excel中输入或打开要进行最小二乘法拟合的数据,如图所示。 2.按住“shift”键的同时,用鼠标左键单击以选择数据&a…

【4】Gradle-快速入门使用【Gradle多模块项目详解】

目录 【4】Gradle-快速入门使用【Gradle多模块项目详解】创建多项目构建添加子项目命名建议 项目依赖项项目路径不同模块的build.gradle配置 子项目之间共享构建逻辑公约插件跨项目配置buildSrc开发公约插件 调整多模块项目配置修改项目树的元素 了解Gralde配置时间和执行时间并…

C#开发的OpenRA游戏之游戏设计思路

OpenRA设计思路 在OpenRA有很多部分的内容,比如UI、渲染、单元行为等等。 不过在地图里,所有单元、建筑物、其它物品都是采用Actor来实现。每个Actor包含一系列Trait属性。 Trait属性有info类和同名称操作类构成。有一个信息类实例在同一类型的所有参与者之间共享。每个Act…

【CSS】全局声明引入自定义字体

以下用vue项目为例,其他的也是类似! 在Vue.js中可以使用全局样式表来定义字体。通常,可以在项目中的主样式表中定义全局字体,然后确保该样式表在整个应用程序中被引入。 以下是一般的步骤: 在项目中创建一个全局样式…

CDN是如何减去源机压力的

CDN也叫内容分发网络(Content Delivery Network)。分布在不同地区的节点服务器组成的分布式网络。通过中心平台的各种功能模块,可以使用户直接访问到就近的节点上,更快获取到需要的内容,大大降低了网络拥堵&#xff0c…

红黑树,AVLTree树(平衡二叉树)迭代器原理讲解

红黑树,AVLTree树底层实现逻辑都是平衡二叉树(AVLTree高度平衡,红黑树以某种规则平衡),但终究不像链表的迭代器那样逻辑简单。 简单叙述以下,二叉树上面迭代器的运行逻辑,根据下面的图&#xff…

Nginx:如何实现一个域名访问多个项目

1. 背景介绍 最近在多个项目部署中遇到这样一个问题,一个域名如何实现多个项目的访问。因为不想自己单独去申请域名证书和域名配置,便想到了这个方案,结合Nginx的location功能实现了自己的需求,便记录下来。示例中是以项目演示&a…

从TCP到Socket,彻底理解网络编程是怎么回事

进行程序开发的同学,无论Web前端开发、Web后端开发,还是搜索引擎和大数据,几乎所有的开发领域都会涉及到网络编程。比如我们进行Web服务端开发,除了Web协议本身依赖网络外,通常还需要连接数据库,而数据库连…

linux的文件属性

在使用长格式查看目录信息时,会看到如下的结果。每一行代表对应的文件或者目录的详细信息。从左到右具体含义时文件属性、文件数、所有者、所属的组、文件大小、建立月份、建立日期、建立年份或时间及文件名 [rootmaster lib]# ll total 19260 drwxr-xr-x. 2 root…