工程师看海

文章数:417 被阅读:1282365

账号入驻

过采样系列二:傅里叶变换与信噪比

最新更新时间:2021-01-07
    阅读数:

分享,让知识变得更简单

看海的第 「28」 篇原创文章

欢迎转发支持

傅里叶变换的提出让人们看问题的角度从时域变成了频域,多了一个维度。快速傅里叶变换算法的提出普及了傅里叶变换在工程领域的应用,在科学计算和数字信号处理等领域,离散傅里叶变换(DFT)至今依然是非常有效的工具之一。




比如下图是一个幅度为1、频率为2Hz的正弦波和它的离散傅里叶变换后的结果。

公众号后台回复: matlab FFT

可以得到原始matlab代码




信噪比(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有效位数、过采样率是有千丝万缕的联系,了解了基本的概念后,我们一步一步理解过采样的原理。

---------------------分割线---------------------

往期干货:

电容6大特性参数,你知道几个?

电感参数有哪些?怎么选择电感?

工程师必须知道的LDO工作原理

三端子电容好在哪?

华为海思软硬件开发资料

硬件

工程师看海

扫码更精彩


 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved