频率分辨率的一些分析

最近被逼着写去除地震仪器响应的相关程序,不得不重新对本科学的数字信号处理的相关内容进行了学习,对于频率分辨率,做了一些分析.同时牵扯到了香农定律以及奈奎斯特频率(Nyquist frequency),2.56,振幅的保真等相关信息.故记录如下,方便查阅.

香农采样定理是这样描述的:
采样频率 f s f_s fs​至少为关心的信号最高频率 f h f_h fh​( f m f_m fm​)的2倍。采样频率 f s f_s fs​的一半称为奈奎斯特频率。采样频率的一半也称为分析带宽,或简称为带宽.

我们这样描述时间分辨率,和频率分辨率:

频率分辨率:
1. 在使用 D F T DFT DFT时,在频率轴上的最小频率间隔. f 0 = 1 / T f_0 = 1/T f0​=1/T ( T T T 是时间序列的时间长度)
2. 理解为某一个算法(如功率谱估计方法),将原信号中的两个靠近的谱峰依旧能保持分开的能力.这是比较和检验不同算法性能好坏的指标.
时间分辨率:
在使用 D F T DFT DFT时,在时间轴上所能得到的最小时间间隔 T 0 T_0 T0​.即区分信号靠的很近的两个频率点的能力.

这里我们对于时间分辨率分析进行省略,在以后写频谱分析相关内容时,再做扩展.而重点考虑频率分辨率,因为解释一中的分析更加便于理解,且给出了通过时间序列长度来计算频率分辨率的方法,我们采用这种方式来分析.

import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fft, fftfreq, fftshift
# number of signal points
N = 400
# sample spacing
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
y =np.exp(100.0 * 1.j * 2.0*np.pi*x) + 0.5*np.exp(-80.0 * 1.j * 2.0*np.pi*x)+1.2yf = fft(y)
xf = fftfreq(N, T)
xf = fftshift(xf)
yplot = fftshift(yf)plt.plot(xf, 1.0/N * np.abs(yplot))
plt.grid()
plt.show()

这个例子来自于scipy.fftpack.fft 网页上的说明.这里采样点数 N = 400 N = 400 N=400,采样时间间隔 T 0 = 1.0 / 800 T_0 = 1.0/800 T0​=1.0/800,这样我们可以求出 f s = 1.0 / T 0 = 800 H z f_s = 1.0/T_0 = 800Hz fs​=1.0/T0​=800Hz,时间序列长度 T = N ∗ T 0 = 0.5 s T = N*T_0 = 0.5s T=N∗T0​=0.5s,则频率间隔(频率分辨率)为 f 0 = 1.0 / T = 2 H z f_0 = 1.0/T = 2Hz f0​=1.0/T=2Hz
这里我们设置了一个时间序列y,有频率100Hz,-80Hz,以及0Hz.对其进行傅里叶变换fft,用fftshift将频率系数在0Hz处对称,同时利用fftfreq,得到对称的频率值

图中我们发现这样可以非常好的求得频率域的振幅.

现在我们考虑我们说的频率间隔(频率分辨率) f 0 = 2 H z f_0 = 2Hz f0​=2Hz,简单的我们把-80Hz改写成102Hz(这里把其振幅也改成1.0).

图中,可以看出并不能区分出102Hz,100Hz之间的区别.同样如果两者之间的差别小于2Hz,更加不可能看出其间的差异.而当我们将这个间隔提高到4Hz.


图中.我们可以分辨出两者之间的波峰差异了,虽然波峰差异较小,这个例子可以比较直观的理解频率分辨率的概念.值得注意的是,两者振幅的改变,有了香农定律,我们很好的恢复了频率部分,但对于振幅部分,这样仍然有明显的失真,而给出了恢复振幅部分的方式

采样频率 f s f_s fs​应该大于10倍信号频率才不会引起明显的失真

为了说明这点,我们将采样频率 f s f_s fs​提高到2000Hz,即设置采样时间间隔 T 0 = 1. / 2000 s T_0 = 1./2000s T0​=1./2000s,同时为更好的区分两个频率时,将104Hz,提高到200Hz.

如图,采样频率为800Hz,满足香农定律,频率信号没有失真,但是200Hz振幅信号明显失真.

当采样频率提高到2000Hz时(需要分析的最高信号频率的10倍),振幅信号得到了很好的恢复.

另外,对于工程上使用2.56倍而非2.倍的采样频率的原因(这个于实际物理滤波器不可能是理想滤波器有关),在这里就超过了本文的讨论范围.

reference

少不了Alan V. Oppenheim的相关著作:
信号与系统
离散时间信号处理

另外有些博主的博文
采样定理为2倍,为何用2.56倍进行采样
采样频率到底多高才不会使信号幅值明显失真
关于频谱分析中两个重要指标:频率分辨率和时间分辨率的理解及计算
采样频率、采样点数、频率分辨率

频率分辨率的一些分析相关推荐

  1. 信号处理之圆周卷积与DFT频率分辨率分析

    信号处理之圆周卷积与DFT频率分辨率分析 求4点圆周卷积与线性卷积 DFT频率分辨率分析 求4点圆周卷积与线性卷积 一. 已知x1(n)=[2,4,3,1],x2(n)=[2,1,3],采用时域和频域 ...

  2. 分析时域窗长度和FFT计算点数对频率分辨率和栅栏效应的影响

    目录 频率分辨率 栅栏效应 频谱泄漏 实验结果: 窗长度改变: 改变fft计算点数 分析: 代码: 频率分辨率 频率分辨率是指将两个相邻谱峰分开的能力.在实际应用中是指分辨两个不同频率信号的最小间隔. ...

  3. 信号处理:傅立叶变换的波形分辨率和频率分辨率

    我们知道,快速傅里叶变换(FFT)是信号处理的重要数学工具.一般而言,n点信号的离散傅里叶变换(DFT)的变换结果(频域)也是n个数据点.但在实际应用中,对实际信号作FFT 时,常常涉及到变换前数据需 ...

  4. matlab混叠现象与频率分辨率,连续时间信号频谱分析研究及MATLAB实现

    0.引言在信号处理过程中,频域分析方法往往比时域分析方法更方便和有效.对于确知连续时间信号,其频域分析可以通过连续时间傅里叶变换来进行,但是,这样计算出来的结果仍然是连续函数,计算机不能直接加以处理. ...

  5. matlab ifft频率分辨率,[FFT] matlab中关于FFT的使用(理解频率分辨率、补零问题)

    [FFT] matlab中关于FFT的使用(理解频率分辨率.补零问题).txt我这人从不记仇,一般有 仇当场我就报了.没什么事不要找我,有事更不用找我!就算是believe中间也藏了一个lie! 我那 ...

  6. matlab 采样点数,信号频率、采样频率、频率分辨率以及FFT信号补零

    采样点数,信号频率.采样频率.采样点数的区分 包含matlab代码讲解示例 清晰明了 采样点数,信号频率.采样频率.采样点数 首先,频率指的是物质在单位时间内完成周期性变化的次数叫做频率,常用f表示. ...

  7. 【转载】采样频率、采样点数、频率分辨率

    原作者: 辰忆书阁 原链接:http://www.360doc.com/myfiles.aspx?reg=1&app=1&type=3 1.频率分辨率的2种解释 解释一:频率分辨率可以 ...

  8. 【频域分析及处理】1. 数字角频率w、模拟角频率Ω、频率分辨率

    数字角频率.模拟角频率的 由来 已知有某实际存在的原始 模拟信号: y ( t ) = s i n ( Ω t ) = s i n ( 2 π f t ) y(t)=sin(Ωt)=sin(2\pi ...

  9. 关于频谱分析中两个重要指标:频率分辨率和时间分辨率的理解及计算

    当今最常见时频分析方法主要有四种,分别是基于短时傅立叶变换法,基于小波变换法,Choi-Williams分布法和Hilbert-Hang变换法,经实验测得Hilbert-Huang具有最高的频率分辨率 ...

最新文章

  1. GPT-3 1750亿参数少样本无需微调,网友:「调参侠」都没的当了
  2. 算法--06谷歌面试:字符串中第一个只出现一次的字符(Java实现)
  3. 结转本年利润的有关分录
  4. wxWidgets随笔(5)-utf8中文(1)
  5. 算法训练 字符串的展开c语言
  6. 美国“四院院士”特伦斯谈人工智能“瓶颈”:远未达极限,数学家已经有了实现AI可解释性的理论工具...
  7. mysql主从复制 火墙_MySQL高级知识(十五)——主从复制
  8. 一个合格程序员的标准
  9. Windows 禁止mysql 自动更新
  10. eclipse打不开,报错 java was started with exit code=13
  11. FreeSwitch中的会议功能
  12. 规划--如何成为一名web安全工程师
  13. 微软xgp有哪些地区服务器,选择微软XGP订阅服务后,除了《荒野大镖客2》还有这些游戏值得玩...
  14. OEM-ODM-OBM
  15. RT-Thread荣登CSDN“2019 优秀物联网案例 TOP 30+”榜单!
  16. UE4加载Excel表格CSV数据及解决中文乱码问题
  17. HTML中的单行注释标签是,html如何单行和多行注释呢 ?
  18. c语言用sort函数选择排序,简单选择排序(Simple Selection Sort)的C语言实现
  19. Java 小白 设计电池类,在电池类的构造方法中声明一节5号电池的电压为1.5伏,使用this关键字调用电池类中的构造方法,实现电压为9伏的叠层电池,
  20. 搜狗搜索曝光“搜狗商店” 人工智能概念产品可提升人类能力

热门文章

  1. 汇编语言--ARM汇编
  2. uniapp生成抖音小程序 问题记录
  3. SQL: 视图和表的区别
  4. 情人节表白专用小系统
  5. 【Java书笔记】:《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》第2部分-自动内存管理,第3部分-虚拟机执行子系统,第5部分-高效并发
  6. 音效工具Boom 3D
  7. 计算机桌面管控系统,金盾桌面安全管理系统
  8. 使用capl和uds进行.bin文件的刷写
  9. 打开anaconda-navigator一直卡在loading applications界面的解决方法总结
  10. Cadence Orcad Capture 妙用Intersheet Reference页面指示图文教程