📅  最后修改于: 2023-12-03 15:07:01.582000             🧑  作者: Mango
信号采样定理是数字信号处理中的一个重要概念。这个定理告诉我们,当数字信号中的采样频率等于信号最高频率的两倍时,能够完全重构原始模拟信号。
信号采样定理是指:若用周期为T的冲激串对连续时间x(t)进行抽样,则在使采样频率 fs>=2fm时,从采样信号xs(t)中可恢复出原始信号的全部信息。其中,fs为抽样频率,fm为信号最大频率
信号重构原理是指,如果原始模拟信号的带宽为B,则在采样频率为2B的情况下,通过一定的数字信号处理算法,我们可以完全重构原始模拟信号。这是因为,在采样频率为2B的情况下,我们可以获得足够多的采样点信息,从而通过插值或者滤波等算法,重构出原始模拟信号。
当采样频率低于信号最高频率的两倍时,会出现采样失真,即信号不能完全重构。当采样频率高于信号最高频率的两倍时,为了避免浪费存储空间和计算资源,减小采样频率可以更好的处理信号。
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 生成一个频率为5Hz的正弦波信号
fs = 100
t = np.linspace(0, 1, fs, endpoint=False)
x = np.sin(2 * np.pi * 5 * t)
# 对信号进行采样
Ts = 0.01
n = np.arange(0, len(x))
xn = np.sin(2 * np.pi * 5 * n * Ts)
# 用低通滤波器还原原始信号
b, a = signal.butter(4, 0.1, 'lowpass')
filtered_xn = signal.filtfilt(b, a, xn)
# 绘制对比图
fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True)
ax0.plot(t, x)
ax0.set_title('Original Signal')
ax1.plot(t, filtered_xn)
ax1.set_title('Reconstructed Signal')
plt.show()
这里我们先生成一个频率为5Hz的正弦波信号,然后以采样频率为100Hz进行采样,以0.01s采样时间采样,采样得到一个离散的信号xn。接着,我们用一个低通滤波器对xn进行还原,得到重构后的信号,用来与原始信号进行对比。从图中可以看出,重构后的信号与原始信号几乎完全重合,说明采样频率在这个例子中大于信号最高频率的两倍,可以完全重构原始信号。