2024-09-01
售卖作品
00

目录

题目
效果
梯形波100个点产生方法
锯齿波100个点产生方法
c代码和proteus仿真

题目

114

波形发生器的制作

设计要求

设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。设置5个开关K1~K5(从

上到下),分别对应正弦波、方波、三角波、梯形波、锯齿波,按一下其中一个开关,则选择出所要

产生的波形。

效果

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

梯形波100个点产生方法

python:

python
import numpy as np import matplotlib.pyplot as plt # 定义梯形波参数 total_points = 100 min_value = 0 max_value = 255 # 假设每个部分的点数相等,因此每部分25个点 points_per_section = total_points // 4 # 生成梯形波的各个部分 rising_edge = np.linspace(min_value, max_value, points_per_section, endpoint=False) top = np.full(points_per_section, max_value) falling_edge = np.linspace(max_value, min_value, points_per_section, endpoint=False) bottom = np.full(total_points - 3 * points_per_section, min_value) # 合并生成完整的梯形波 trapezoidal_wave = np.concatenate((rising_edge, top, falling_edge, bottom)) # int 化 trapezoidal_wave = trapezoidal_wave.astype(int) print(trapezoidal_wave.tolist()) # 绘制梯形波形 plt.plot(trapezoidal_wave) plt.title('Trapezoidal Wave') plt.ylim(min_value - 10, max_value + 10) plt.show()

在这里插入图片描述

锯齿波100个点产生方法

python

python
import numpy as np import matplotlib.pyplot as plt # 定义锯齿波参数 total_points = 100 # 一个周期的总点数 max_value = 255 num_teeth = 2 # 一个周期内锯齿波的数量 # 计算单个锯齿波的点数 points_per_tooth = total_points // num_teeth # 生成单个锯齿波 single_tooth = np.linspace(0, max_value, points_per_tooth, endpoint=False) # 生成完整的锯齿波,由两个单个锯齿波拼接而成 sawtooth_wave = np.tile(single_tooth, num_teeth) sawtooth_wave = sawtooth_wave.astype(int) sawtooth_wave = sawtooth_wave.tolist() # sawtooth_wave = sawtooth_wave[::-1] print(sawtooth_wave) # 绘制锯齿波形 plt.plot(sawtooth_wave) plt.title('Sawtooth Wave') plt.ylim(-10, max_value + 10) # 设置y轴范围以略微超出最小和最大值 plt.show()

在这里插入图片描述

c代码和proteus仿真

python
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!