过采样系列二:傅里叶变换与信噪比
原文来自公众号:工程师看海
后台回复:matlab FFT
可以得到原始matlab代码
欢迎转发支持
傅里叶变换的提出让人们看问题的角度从时域变成了频域,多了一个维度。快速傅里叶变换算法的提出普及了傅里叶变换在工程领域的应用,在科学计算和数字信号处理等领域,离散傅里叶变换(DFT)至今依然是非常有效的工具之一。
比如下图是一个幅度为1、频率为2Hz的正弦波和它的离散傅里叶变换后的结果
信噪比(SNR)是信号与噪声的比率,它是衡量通信或模拟系统性能的重要指标之一,与傅里叶变换更是有千丝万缕的联系。在很多情况下,我们是通过傅里叶变换来评估信噪比,如果评估方法不对,很难的到我们期望的结果,经常会事与愿违。
求解SNR的过程,我们是用‘评估SNR’来描述,这就是说我们无法精确计算出SNR,只能进行评估,事实也是如此。
评估SNR的方法分为时域和频域两种。我们以一组离散样本点为分析目标,看下如何评估SNR,及其误区。
时域估计SNR
Xs(n)为信号序列,Xn(n)为噪声序列,则信号X(n)=Xs(n)+Xn(n),是一组带噪离散序列,在时域上评估X(n)的信噪比公式如下:
其意义为分别求取离散信号、噪声功率和,计算二者之比。这里有个前提是,我们需要分离出信号与噪声,然后才能求解,
然而问题也在于此,对于一段给定的离散时间序列,我们很难完全分离出信号和噪声,所以时域评估SNR是有局限性的,而且不够直观,所以通常我们在频域下求解。
频域估计SNR
在频域上的SNR计算原理和时域很接近,还是求信号功率与噪声功率只比。最简单的方法是在频谱X(m)上设置阈值,阈值之上为信号,阈值之下为噪声。这样就会有阈值设置带来的估计准确性问题,同时信号频带范围内或多或少也会有噪声叠加进来,在频域计算SNR也是一个近似。
SNR以dB作为单位,SNR(dB)=10*log10(SNR)。
我们往往使用Matlab评估SNR,Matlab是非常强大的数学工具,其集成了SNR计算函数,如果应用不正确,误差会非常大,无法得到预期结果,举例如下。
下图是一个幅度为1、频率为2Hz的正弦波和它的离散傅里叶变换后的结果。
用Matlab SNR函数计算计算信噪比的结果如下,蓝色为感兴趣的信号成分,橙色为噪声。这个频域图就可以表征SNR,橙色的噪声数值越小、越低,说明信噪比越高、越好。即使红色圆圈部分有一点噪声,在评估单频率成分信号的SNR时,这依然是一个非常有效的手段。
假如一信号x(n)=sin(4pi*t)+0.5*sin(18pi*t),如下图是一个幅度为1、频率为2Hz的正弦波叠加幅度为0.5、频率为9Hz的正弦波的结果。
用Matlab SNR函数计算计算信噪比的结果如下,蓝色为感兴趣的信号成分,橙色为噪声,matlab舍弃了频率为9Hz、能量少的成分,只计算了2Hz信号的信噪比。
所以倘若我们的感兴趣信号比较复杂,就不能直接用SNR函数直接计算。
所以我们一定要在理解DFT与SNR关系的基础上,正确使用matlab才能得到期望的SNR结果。
在过采样中,信噪比、ADC有效位数、过采样率是有千丝万缕的联系,了解了基本的概念后,我们一步一步理解过采样的原理。
---------------------分割线---------------------
往期干货:
华为海思软硬件开发资料
过采样系列二:傅里叶变换与信噪比相关推荐
- 快速傅里叶变换python_【原创】OpenCV-Python系列之傅里叶变换(三十八)
OpenCV-Python系列之傅里叶变换 傅里叶变换 我们生活在时间的世界中,早上7:00起来吃早饭,8:00去挤地铁,9:00开始上班...以时间为参照就是时域分析. 但是在频域中一切都是静止的! ...
- PyTorch系列 (二): pytorch数据读取自制数据集并
PyTorch系列 (二): pytorch数据读取 PyTorch 1: How to use data in pytorch Posted by WangW on February 1, 2019 ...
- 阵列信号DOA估计系列(二).导向矢量与空间FFT(附代码)
阵列信号DOA估计系列(二).导向矢量 在DOA估计里面,经常会看到导向矢量这个名词,也有的地方叫方向矢量,方向矩阵,基本上都是array steering vector 的翻译. 本文首先对均匀线阵 ...
- 图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)
图机器学习(GML)&图神经网络(GNN)原理和代码实现(PGL)[前置学习系列二] 上一个项目对图相关基础知识进行了详细讲述,下面进图GML networkx :NetworkX 是一个 P ...
- 西门子S7-200PLC系列(二)
西门子S7-200PLC系列(二) 软元件(定义):用户使用的PLC中每一个输入/输出.内部存储单元.定时器和计数器等都称作软元件. 软元件(组成):电子电路和寄存器及存储单元组成 软元件有其不同的功 ...
- 数据与广告系列二十七:智能定向独特业务的独有炼丹配方
作者·黄崇远 『数据虫巢』 全文共4534字 题图ssyer.com " 没点独特的东西,怎么好意思说自己在炼仙丹." 本文强接上文<数据与广告系列二十六:知识迁移的Embe ...
- 数据与广告系列二十六:知识迁移的Embedding应用,智能化定向的解药
作者·黄崇远 『数据虫巢』 全文共4348字 题图ssyer.com " 效果广告后定向时代,虽有千般万难,我们一样还得解决定向智能的问题." 需要提前说明的是,这一篇会涉及到本系 ...
- A.图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)
图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...
- 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x-packV5.4.2安装
相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+klanaV5.4.2+x-p ...
最新文章
- 什么是php model类,thinkphp的自定义model类有什么作用?
- Hadoop集群配置(最全面总结)
- 新手搭建阿里云FTP服务器
- 数据结构Stack:关系以及方法
- python解决四舍五入问题
- XCTF-高手进阶区:PHP2
- 【模拟】Biotech
- Java EE 7:新增功能???
- matlab pca可视化,利用Matlab实现PCA demo展示
- phoneGap 中修改生成APP的名字
- 苏宁易购第二次债券购回基本方案:购回资金总额20亿元
- Maven 持续介绍与注意事项
- 韦诺之战wesnoth没有声音
- 企业服务总线 ESB 介绍和用例
- OSChina 周二乱弹 —— 这份躺着挣钱的工作
- 【JAVA】easyexcel 导出excel文件带多个图片
- 回顾知识点:计算机网络篇
- 一个有趣推理题的答案
- 关于移动端token解决方案
- 在qt实现手机通讯录系统_通讯录管理系统的设计与实现(QT,SQlite)
热门文章
- 如何利用PHP防范CC攻击
- google引擎地址
- hdu1004——Let the Balloon Rise
- 指纹传感器的测试软件,【Arduino】168种传感器系列实验(149)-AS608光学指纹识别模块-Arduino中文社区 - Powered by Discuz!...
- C# 合并、拆分PDF
- 如何合并多个PDF图为一张PDF图?(矢量无损,最简单)
- 基于Android智能跑步机设计与实现
- 安卓逆向分析之捕鱼达人
- 不可逆调速matlab,双闭环不可逆直流调速系统课程设计(matlab仿真设计).pdf
- c语言解析IP字符串