怎么对一个长度为180000的信号进行采样并给出代码
时间: 2023-11-22 21:55:35 浏览: 109
使用FFT算法对一个信号进行分析.rar
对信号进行采样,需要确定采样频率和采样时长。假设采样频率为f,采样时长为t,则采样点数N=f*t。如果信号长度为L,需要根据采样点数N对信号进行下采样或上采样,得到长度为N的采样信号。
下面给出一个Python的示例代码,对长度为180000的信号进行1000Hz的采样:
```python
import numpy as np
# 生成长度为180000的信号
L = 180000
fs = 8000 # 假设信号采样频率为8000Hz
t = np.arange(L) / fs
x = np.sin(2 * np.pi * 1000 * t) + 0.5 * np.sin(2 * np.pi * 2000 * t)
# 对信号进行1000Hz的采样
N = int(fs * t[-1]) # 采样点数
x_sampled = x[::int(L/N)] # 下采样,每隔L/N个点取一个点
# 显示采样前后的信号波形
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 4))
plt.plot(t, x, label='Original Signal')
plt.plot(np.arange(len(x_sampled))/fs, x_sampled, label='Sampled Signal')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.legend()
plt.show()
```
该代码将原始信号x采样频率设为8000Hz,生成长度为180000的信号。然后根据采样点数N=1000,对信号进行下采样,得到长度为1000的采样信号x_sampled。最后使用Matplotlib显示原始信号与采样信号的波形。
阅读全文