简易函数发生器 基本要求:实现方波、锯齿波信号发生器功能。方波频率、占空比可设置。锯齿波信 号频率、幅度可调。
时间: 2023-07-31 08:07:56 浏览: 40
以下是一个简易的函数发生器,可以生成方波和锯齿波信号:
```python
import numpy as np
import matplotlib.pyplot as plt
def square_wave(frequency, duty_cycle, duration):
time = np.linspace(0, duration, int(duration * frequency), endpoint=False)
waveform = np.zeros_like(time)
waveform[time < duration * duty_cycle] = 1
return time, waveform
def sawtooth_wave(frequency, amplitude, duration):
time = np.linspace(0, duration, int(duration * frequency), endpoint=False)
waveform = amplitude * (2 * (time / (1./frequency)) % 1 - 1)
return time, waveform
# 示例代码,生成一个频率为1kHz,占空比为50%的方波信号
time, waveform = square_wave(1000, 0.5, 0.1)
plt.plot(time, waveform)
plt.show()
# 示例代码,生成一个频率为500Hz,幅度为2的锯齿波信号
time, waveform = sawtooth_wave(500, 2, 0.1)
plt.plot(time, waveform)
plt.show()
```
函数`square_wave`接受三个参数:频率、占空比和持续时间。它使用NumPy库生成一个等间隔的时间序列,并根据占空比生成一个方波波形。
函数`sawtooth_wave`接受三个参数:频率、幅度和持续时间。它也使用NumPy库生成一个等间隔的时间序列,并根据幅度生成一个锯齿波波形。
你可以根据需要修改这些函数的参数来生成不同的波形。