当前位置: 首页 > news >正文

正弦波高频注入仿真模型

正弦波高频注入仿真模型

最近在研究正弦波高频注入的仿真模型,感觉这东西挺有意思的。高频注入技术在很多领域都有应用,比如电机控制、电力系统等。今天就来聊聊怎么用Python实现一个简单的正弦波高频注入仿真模型。

首先,我们需要生成一个正弦波信号。Python的numpy库在这方面非常给力。下面这段代码可以生成一个频率为1kHz的正弦波信号:

import numpy as np import matplotlib.pyplot as plt sampling_rate = 10000 # 采样率 frequency = 1000 # 信号频率 duration = 1 # 信号持续时间 t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) signal = np.sin(2 * np.pi * frequency * t) # 绘制信号 plt.plot(t, signal) plt.title('1kHz正弦波') plt.xlabel('时间 [s]') plt.ylabel('幅值') plt.show()

这段代码生成了一个1kHz的正弦波信号,并且用matplotlib库绘制了出来。sampling_rate是采样率,frequency是信号频率,duration是信号持续时间。np.linspace生成了时间轴,np.sin生成了正弦波信号。

接下来,我们需要在这个正弦波信号上注入高频信号。假设我们要注入一个10kHz的高频信号,代码可以这样写:

high_frequency = 10000 # 高频信号频率 high_signal = np.sin(2 * np.pi * high_frequency * t) # 叠加信号 combined_signal = signal + high_signal # 绘制叠加后的信号 plt.plot(t, combined_signal) plt.title('1kHz正弦波 + 10kHz高频信号') plt.xlabel('时间 [s]') plt.ylabel('幅值') plt.show()

这里我们生成了一个10kHz的高频信号,然后把它和之前的1kHz正弦波信号叠加在一起。combined_signal就是叠加后的信号。通过matplotlib绘制出来,可以看到信号中既有1kHz的成分,也有10kHz的成分。

为了更直观地观察高频注入的效果,我们可以对信号进行傅里叶变换,看看频谱分布:

from scipy.fft import fft, fftfreq # 计算FFT N = len(combined_signal) yf = fft(combined_signal) xf = fftfreq(N, 1 / sampling_rate) # 绘制频谱 plt.plot(xf[:N // 2], 2.0 / N * np.abs(yf[:N // 2])) plt.title('频谱') plt.xlabel('频率 [Hz]') plt.ylabel('幅值') plt.show()

这段代码使用了scipy.fft库中的fft函数来计算信号的傅里叶变换,fftfreq函数生成频率轴。通过绘制频谱图,可以清晰地看到1kHz和10kHz两个频率成分。

最后,我们可以通过滤波器来提取出高频信号。这里我们使用scipy.signal库中的巴特沃斯滤波器:

from scipy import signal # 设计滤波器 sos = signal.butter(4, [9000, 11000], 'bandpass', fs=sampling_rate, output='sos') filtered_signal = signal.sosfilt(sos, combined_signal) # 绘制滤波后的信号 plt.plot(t, filtered_signal) plt.title('滤波后的10kHz高频信号') plt.xlabel('时间 [s]') plt.ylabel('幅值') plt.show()

这段代码设计了一个4阶的巴特沃斯带通滤波器,通带范围是9kHz到11kHz。signal.sosfilt函数对叠加后的信号进行滤波,提取出10kHz的高频信号。通过matplotlib绘制出来,可以看到滤波后的信号基本只保留了10kHz的成分。

总的来说,正弦波高频注入的仿真模型实现起来并不复杂,Python的numpyscipymatplotlib库提供了强大的工具,可以轻松完成信号生成、叠加、频谱分析和滤波等操作。如果你对这方面感兴趣,不妨动手试试,说不定会有更多的发现。

http://www.cnnetsun.cn/news/91952.html

相关文章:

  • 初始化列表和特殊成员
  • (二)前端基础框架构建
  • vLLM推理引擎教程6-Nsight Systems性能分析
  • 基于MATLAB的燃料电池汽车参数匹配与能量管理策略优化及仿真模型研究资料库
  • AM247L-0000伺服电机
  • DoraemonKit(DoKit)使用教程:从集成到实战
  • 构筑 AI 理论体系:深度学习 100 篇论文解读 第十九篇:序列建模的焦点——注意力机制 Attention Mechanism (2015)
  • 【小白笔记】移除元素与删除有序数组中的重复项与轮转数组(三步反转)
  • 什么是关键字驱动测试?
  • 前沿技术借鉴研讨-2025.12.16(超声心动图综述/妊娠期糖尿病/降低CTG解读主观性)
  • 别让发成绩,耗掉你课后的半小时
  • 企业级 Prompt 管理中心:实验分流 + 曝光埋点 + 可回溯,版本化/AB/DSL/可观测全齐
  • 执行 install.sh 报错 `env: ‘bash\r‘: No such file or directory` 怎么解决?
  • Part 10|我给这套系统划的第一个边界
  • agent-zh.md
  • 为什么过滤 rtmpt 而不是 rtmp?
  • Navicat x 达梦技术指引 | 启用和配置AI助手
  • Transformer的注意力权重的理解
  • 解构 Codigger:从内核到无限生态的“进化阶梯”
  • 基于Python的高考志愿报名推荐系统源码设计与文档
  • 飞桨PaddlePaddle入门与核心实践
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十讲)
  • 热销榜单:2025年高口碑数字人推荐,解决你的选择难题!
  • 应“双碳”考核!安科瑞通信机房能耗监测方案,让PUE管控精准落地
  • 1天净流入10亿!A500ETF南方凭什么成为布局中国核心资产的优选?
  • Android 基础入门教程之RelativeLayout(相对布局)
  • 基于微信小程序的跑腿系统的设计与实现毕业设计项目源码
  • 基于SpringBoot的社区老年人健康知识阅读分享管理系统毕业设计项目源码
  • MySQL迁移达梦数据库,Quartz报错“无效的表或视图名”
  • Dify入门:搭建一个文件翻译智能体