网站首页 > 技术教程 正文
在时序信号分析中,我们常常会从时域和频域两个方面来观察信号特征。而在进行频域观察时,会用到傅里叶变换,即FFT。那么我们应该取多长的数据点数来作FFT变换,其输出的频率谱就足够揭示主要的频域特征呢?在本文中,我们不去讲原理,而是通过简单的实际例子的绘图观察来理解这个问题。
首先,我们引入依赖模块,
import numpy as np
import matplotlib.pyplot as plt
然后,我们构造一段长为4秒的信号,如下,
t = np.arange(4000)/1000
x = np.sin(2*np.pi *10*t) + \
3*np.sin(2*np.pi*50*t)+ \
5*np.sin(2*np.pi*400*t)
信号中,包含了频率为10, 50和400的三个成分。4秒采样4000个点,采样频率为1000Hz。
我们绘图看看这个信号在时域长什么样,取前100个点绘图
fig = plt.figure(figsize=(10,3))
plt.plot(t[:100],x[:100])
然后我们开始绘频域图,默认情况下,matplotlib psd绘图的NFFT等于256
_ = plt.psd(x, Fs=1000)
可见这个默认值对于我们的例子而言是足够有效的。
下面,我们刻意将NFFT变小,
_= plt.psd(x, Fs=1000, NFFT=16)
其绘图效果如下
这下子就很不准确了,看起来频率向两旁泄露了。
我们将NFFT提高到32,
这时,三个频率就比较接近了。因此,我们应该设置较大的NFFT。
下面是将NFFT提高到1024的效果,
这个图中,三个主要频率的频峰特别细。
因此,条件允许的情况下,我们在作FFT变换时,应该给足够大的NFFT值。
但这里也有一个要权衡的例外,即如果信号的频率是时变的,那么NFFT较大时,意味着用于FFT变换的数据段内包含的频率变化较多,误差反而可能又变大了。这种情况下,可以尝试使用welch方法、或小波方法等。
猜你喜欢
- 2024-11-10 FFT计算结果中的栅栏现象(用fft计算的频谱为何一定会存在栅栏效应误差)
- 2024-11-10 FFBE幻影战争FFT联动角色评价(ffbe幻影战争中文攻略wiki)
- 2024-11-10 5G(NR)网络中的物理层的时间单位(5g系统中物理层的关键技术)
- 2024-11-10 频谱为什么会泄漏?(频谱泄露使频率降低)
- 2024-11-10 华擎海外发布27英寸FHD 180Hz显示器PG27FFT1A与PG27FFT1B
- 2024-11-10 通过FFT来计算螺旋天线的匝数(螺旋天线设计计算公式)
- 2024-11-10 示波器FFT查看信号频谱和设置的方法
- 2024-11-10 「信号与处理 二 」FFT滤波与卷积滤波的比较
- 2024-11-10 为什么FFT有负频率(matlab)(matlab fft变换后为什么要除以n)
- 2024-11-10 关于FFT频谱幅度要乘2/N的理解(fft幅频图)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)