接上文
此外还要谈一下采样率Fs的选取。
在我的数值计算中,采样率就是时间步Ts的倒数啦,一般是很大(比如我这里是20几万)
香浓—奈魁斯特采样定理
而采样率的选取其实是有规则的,即香浓—奈魁斯特采样定理:
要能从一组离散的采样点重建一个信号而不失真,采样频率应该是原信号最高频谐波的两倍以上。
即: 采样率≥2*最高频谐波
举例
这里做了几个例子来说明这一问题
用的这个网页的例子:http://blog.csdn.net/ouening/article/details/71079535
程序在0到1之间采样了1400个点,这就是x
然后给了一个y=f(x):
y=7sin(2π180x) + 2.8sin(2π390x)+5.1sin(2π600x)
程序里表达就是这样:
y=7*np.sin(2*np.pi*180*x) + 2.8*np.sin(2*np.pi*390*x)+5.1*np.sin(2*np.pi*600*x)
这个表达式很典型:
- 三个正弦函数的结合
- 振幅分别是7,2.8,5.1
- 频率呢分别是180/390/600
也就是说最大频率是600
所以采样频率取了1400>2*600
- Fs = 1400
处理出来的结果是这样的:
(四张图分别是1. 时域结果;2. 原始频域结果;3. 振幅无量纲后的频域结果;4. 振幅无量纲频率显示一半的的频域结果)
图中可以看到,频域的三个峰值,正好就位于三个频率180/390/600;而振幅值呢,就接近7/2.8/5.1的一半(但是还是差一些,特别是5.1;采样频率越高,振幅值也就越接近一半)
- 一个思考,振幅只有一半,是不是因为,有正负半轴?如果把另外半边的振幅算上,不就正好是振幅了?这样想来好像对得很。
- Fs = 1000
那么当参与频率低于两倍最大频率的时候,比如我取1000,结果是这样的:
频域图像显然就失真了
- Fs = 2000
而当我取更大采样频率时,比如2000,结果是这样的:
结果和1400是等价的,但是振幅会更高一些,更接近理想值
采样数和采样频率
这里构造x是用linespace
之前用的都是:
x=np.linespace(0,1,1400)
也就是在0-1这个区间内采1400个样
那么采样频率就是Fs=1400/1
通用地看,区间为X,采样数为N,则
x=np.linespace(0,X,N)
那么采样率Fs就是Fs=N/X
采样数增加,归一化后的频域结果应该是不变的
而归一化前,采样数越多,绝对振幅是越大的
比如对如下采样点进行处理:
x=np.linespace(0,2,2800)
这样采样频率依然是1400,处理出来的结果是:
其他图都没变化,只有第2张图,显示绝对振幅的那张,振幅变成了原来的两倍。
以上