news 2026/4/23 16:20:49

正弦波高频注入仿真模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
正弦波高频注入仿真模型

正弦波高频注入仿真模型

最近在研究正弦波高频注入的仿真模型,感觉这东西挺有意思的。高频注入技术在很多领域都有应用,比如电机控制、电力系统等。今天就来聊聊怎么用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库提供了强大的工具,可以轻松完成信号生成、叠加、频谱分析和滤波等操作。如果你对这方面感兴趣,不妨动手试试,说不定会有更多的发现。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 8:19:32

活动策划者必备的一站式微信投票源码系统解决方案全览

温馨提示:文末有资源获取方式策划一场成功的线上投票活动,是否让您疲于整合多个工具、担心数据安全、又苦恼于互动形式单一?现在,一款集多功能于一身的一站式解决方案,能彻底解放您的精力,让活动策划变得专…

作者头像 李华
网站建设 2026/4/23 8:15:37

技术选型指南,为何这款全栈开源的投票系统能赢得开发者青睐?

温馨提示:文末有资源获取方式该系统从架构设计到功能实现,均体现了以开发者为中心和长期主义的设计思路:前后端分离与跨端技术栈: 后端采用稳健的ThinkPHP框架,保障了业务逻辑的处理效率与安全性;前端基于U…

作者头像 李华
网站建设 2026/4/23 8:19:02

入门篇--2-Windows上如何用Conda松管理多个Python版本?

大家好,我是你们的老朋友Weisian,一个常年在Windows上写代码、调环境、修Bug的开发者。今天想和大家聊一个几乎所有Python 开发者都会遇到的“日常烦恼”:如何在Windows上干净、高效地管理多个Python版本? 你是不是也经历过这些场…

作者头像 李华
网站建设 2026/4/23 11:21:27

中山网络推广公司:进阶方向与经验总结

随着中山网络推广公司的不断发展,网络营销技术和数字化传播在提升区域品牌竞争力方面的作用愈加显著。近年来,中山的网络推广成效逐渐显现,但要在快速发展的数字化环境中持续优化,还面临着诸多挑战。本文将对中山网络推广的阶段性…

作者头像 李华
网站建设 2026/4/23 11:19:04

基于VUE的企业信息管理系统 [VUE]-计算机毕业设计源码+LW文档

摘要:随着企业数字化转型的加速,高效、集成的企业信息管理系统成为提升企业竞争力的关键。本文详细阐述了基于VUE框架开发的企业信息管理系统,涵盖系统需求分析、技术选型、架构设计、功能模块实现等内容。该系统整合了系统用户管理、新闻数据…

作者头像 李华
网站建设 2026/4/23 11:20:09

list 的cpp简单模拟实现

节点类模板 template<class T> struct list_node {T _data; // 节点存储的数据list_node<T>* _next; // 指向下一个节点的指针list_node<T>* _prev; // 指向前一个节点的指针list_node(const T& data T()):_data(data),_next(null…

作者头像 李华