栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

一、采样频率到底是选择2倍还是10倍?让我用python来给你展示

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一、采样频率到底是选择2倍还是10倍?让我用python来给你展示

文章目录
  • 一、什么是采样频率?
  • 二、什么是采样定理?
  • 三、采样率究竟应该定?
  • 四、让python来看看采样率问题
  • 五、结论

一、什么是采样频率?

  采样频率,也称为采样速度或者采样率,定义了单位时间内从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机单位时间内能够采集多少个信号样本。

二、什么是采样定理?

  所谓采样定理 ,又称香农采样定理,奈奎斯特采样定理,是信号处理学科中的一个重要基本结论。
  采样定理指出,只有采样频率高于信号带宽的两倍,原来的连续信号才可以从采样样本中完全重建出来。采样频率的一半(即奈奎斯特频率)低于信号带宽,那么此时这些离散的采样点就会导致混叠现象。
  如果信号的带宽是100Hz,那么为了避免混叠现象采样频率必须大于200Hz。换句话说就是采样频率必须至少是信号中最大频率分量频率的两倍,否则就不能从信号采样中恢复原始信号。
  关于采样定理如何理解,已有不少大神进行了讲解,这里不再细说。可以查看如何理解 Nyquist 采样定理?,当然还是建议有能力的同学,深入理解一下时域卷积公式及其变换到频域后的特点,就一目了然了。如果大家认为有必要讲解,可以留言回复,我可以从理论上给大家推导一下。

三、采样率究竟应该定?

  数字测量应用所需的采用率为多少?一些工程师对于 Nyquist 理论深信不疑,并且认为只要采样率是示波器带宽的 2 倍便足矣。而其他工程师则不相信建立于 Nyquist 标准的数字滤波技术,更愿意使用采样率为带宽技术指标 10 至 20 倍的示波器。实际情况介于二者之间。

四、让python来看看采样率问题

  下面我们分别用不同倍数采样率,对同一个周期内的信号进行采集,分析采集后数据的功率(即曲线下方的面积)。对于正弦信号 x = c o s ( 2 π f t ) mathrm{x}=cos(2pi ft) x=cos(2πft),其在一个周期内的面积积分(即能量)为:
4 × ∫ 0 1 4 f cos ⁡ ( 2 π f t ) d t = 1 2 π f sin ⁡ ( 2 π f t ) ∣ 0 1 4 f = 2 π f (4.1) 4timesint_{0}^{frac{1}{4f}}cos {(2pi ft)}d_t=frac{1}{2pi f}sin{(2pi ft)}|_{0}^{frac{1}{4f}}=frac{2}{pi f}tag{4.1} 4×∫04f1​​cos(2πft)dt​=2πf1​sin(2πft)∣04f1​​=πf2​(4.1)
  令采样频率 f s = N f f_s=Nf fs​=Nf,则各采样时间为 t = n N f ( 其 中 : n = 1 , 2 , 3 … N ) t =frac{n}{Nf}(其中:n=1,2,3dots N) t=Nfn​(其中:n=1,2,3…N)。带入到式(4.1)中,则需求解的是离散信号 cos ⁡ ( 2 π f n N ) ( 其 中 : n = 1 , 2 , 3 … N ) cos{(2pi ffrac{n}{N})}(其中:n=1,2,3dots N) cos(2πfNn​)(其中:n=1,2,3…N)包围的面积。

# 导入模块
import matplotlib.pyplot as plt
import numpy as np
# 设定采样倍数
N = np.arange(2, 50, 1)
# 令待计算信号的频率为10Hz
f = 10
# 计算离散曲线下方面积
aera = []
for _N in N:
    n = np.arange(_N) + 1
    _aera = []
    # 摒除初始相位带来的误差
    for i in range(20):
        sig = np.abs(np.cos(2*np.pi*n /_N + 2*np.pi*i/20))
        _aera.append(np.trapz(sig, dx=1/(_N*f)))
    aera.append(np.mean(_aera))
error = (np.array(aera) - 2/(f * np.pi))/(2/(f * np.pi))*100
plt.plot(N, error)
plt.xlabel("f_s/f")
plt.show()

图4.1 不同采样倍数下的能量误差
五、结论

  由以上分析可知,一般来说,如果只关心信号的频率组成,遵循采样定理即可;如果关心信号的幅值,那么,采样频率应大于10倍的信号频率(只有10%的误差)才不会引起明显的幅值失真。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/587685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号