生成一个信号源模拟器的代码
时间: 2024-05-03 21:19:50 浏览: 7
以下是一个简单的信号源模拟器代码,可以生成正弦波、方波和三角波信号:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成正弦波信号
def generate_sine_wave(freq, duration, sample_rate):
time = np.arange(0, duration, 1 / sample_rate)
amplitude = np.sin(2 * np.pi * freq * time)
return time, amplitude
# 生成方波信号
def generate_square_wave(freq, duration, sample_rate):
time = np.arange(0, duration, 1 / sample_rate)
amplitude = np.sign(np.sin(2 * np.pi * freq * time))
return time, amplitude
# 生成三角波信号
def generate_triangle_wave(freq, duration, sample_rate):
time = np.arange(0, duration, 1 / sample_rate)
amplitude = np.abs(scipy.signal.sawtooth(2 * np.pi * freq * time, 0.5))
return time, amplitude
# 测试生成的信号
sample_rate = 44100
duration = 2
time, sine_wave = generate_sine_wave(440, duration, sample_rate)
time, square_wave = generate_square_wave(440, duration, sample_rate)
time, triangle_wave = generate_triangle_wave(440, duration, sample_rate)
plt.plot(time, sine_wave)
plt.plot(time, square_wave)
plt.plot(time, triangle_wave)
plt.legend(['Sine', 'Square', 'Triangle'])
plt.show()
```
这个代码使用了 NumPy 和 Matplotlib 库来生成并绘制信号。你可以根据需要调整参数,如频率、持续时间和采样率,以生成不同类型和不同属性的信号。