Python学习之波形图

Python学习之波形图

一、效果图

在这里插入图片描述

二、代码实现

代码很简单,大小可以随意设置

import numpy as np
from scipy.fftpack import fft, ifft
import matplotlib.pyplot as plt
from matplotlib.pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

# 采样点选择1400个,因为设置的信号频率分量最高为600赫兹,根据采样定理知采样频率要大于信号频率2倍,所以这里设置采样频率为1400赫兹(即一秒内有1400个采样点,一样意思的)
x = np.linspace(0, 1, 1400)

# 设置需要采样的信号,频率分量有200,400和600
y = 7 * np.sin(2 * np.pi * 200 * x) + 5 * np.sin(2 * np.pi * 400 * x) + 3 * np.sin(2 * np.pi * 600 * x)

fft_y = fft(y)  # 快速傅里叶变换

N = 1400
x = np.arange(N)  # 频率个数
half_x = x[range(int(N / 2))]  # 取一半区间

abs_y = np.abs(fft_y)  # 取复数的绝对值,即复数的模(双边频谱)
angle_y = np.angle(fft_y)  # 取复数的角度
normalization_y = abs_y / N  # 归一化处理(双边频谱)
normalization_half_y = normalization_y[range(int(N / 2))]  # 由于对称性,只取一半区间(单边频谱)

plt.subplot(231)
plt.plot(x, y)
plt.title('原始波形')

plt.subplot(232)
plt.plot(x, fft_y, 'black')
plt.title('双边振幅谱(未求振幅绝对值)', fontsize=9, color='black')

plt.subplot(233)
plt.plot(x, abs_y, 'r')
plt.title('双边振幅谱(未归一化)', fontsize=9, color='red')

plt.subplot(234)
plt.plot(x, angle_y, 'violet')
plt.title('双边相位谱(未归一化)', fontsize=9, color='violet')

plt.subplot(235)
plt.plot(x, normalization_y, 'g')
plt.title('双边振幅谱(归一化)', fontsize=9, color='green')

plt.subplot(236)
plt.plot(half_x, normalization_half_y, 'blue')
plt.title('单边振幅谱(归一化)', fontsize=9, color='blue')

plt.show()





### Cadence 工具中的波形图功能 Cadence 是一款广泛应用于电子设计自动化 (EDA) 的软件套件,其主要模块之一 OrCAD 和 Allegro 提供了强大的电路仿真和分析能力。关于在 Cadence 中创建波形图的功能,以下是具体说明: #### 波形图的支持情况 Cadence 支持通过 PSpice 模拟器生成并显示波形图。PSpice 是一种用于电路仿真的工具,能够执行直流、交流、瞬态等多种类型的仿真,并自动生成相应的波形数据[^1]。 #### 创建波形图的操作方法 要利用 Cadence 创建波形图,可以按照以下方式实现: 1. **设置仿真类型** 在启动仿真之前,需定义所需的仿真类型(如 DC 扫描、AC 分析或瞬态分析)。这一步决定了最终生成的波形种类及其特性[^2]。 2. **运行仿真过程** 使用 Cadence 软件界面中的 “Simulate” 命令来触发仿真操作。完成后,系统会自动打开一个窗口展示初步的结果。 3. **访问 Waveform Viewer** 完成上述步骤后,在结果查看阶段可调用内置的 `Waveform Viewer` 来观察信号随时间或其他变量变化的趋势。此工具允许用户调整视图比例、标注特定节点电压电流数值等功能。 4. **保存与导出波形文件** 如果需要进一步处理或者分享这些图形资料,则可以通过菜单选项将当前显示的内容另存为图片格式或者是 CSV 数据表形式以便后续编辑使用。 ```python # 示例 Python 脚本片段演示如何控制外部程序接口获取某些参数值 import subprocess def run_pspice_simulation(): try: result = subprocess.run(['path_to_cadence_executable', '--run-simulation'], check=True, capture_output=True) print(result.stdout.decode()) except Exception as e: print(f"Error occurred while running simulation: {e}") if __name__ == "__main__": run_pspice_simulation() ``` 以上脚本仅为示意用途,实际应用时应替换路径及相关命令行参数以适配本地安装环境配置需求。 #### 注意事项 - 确保已正确加载目标网表文件至项目工程目录下; - 对于复杂多级反馈结构网络模型可能涉及较长计算周期,请耐心等待直至全部完成后再评估效果; - 部分高级特性和插件扩展依赖额外授权许可购买激活才能解锁完全潜力发挥空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不服输的小乌龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值