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

数字信号处理Python示例(10)生成平稳信号和非平稳信号

文章目录

  • 前言
  • 一、平稳信号和非平稳信号
    • 1.平稳信号(Stationary Signal):
    • 2.非平稳信号(Non-Stationary Signal):
  • 二、生成平稳信号和非平稳信号的实验设计
  • 三、生成平稳和非平稳信号的Python代码
  • 四、仿真结果及分析
  • 写在后面的话


前言

本文首先介绍了平稳信号和非平稳信号的概念,然后给出生成平稳信号和非平稳信号的Python代码,最后给出仿真结果并对结果进行了分析。

一、平稳信号和非平稳信号

平稳信号和非平稳信号是信号处理中的两个基本概念,它们描述了信号统计特性的变化情况。

1.平稳信号(Stationary Signal):

  1. 统计特性不变: 平稳信号的统计特性(如均值、方差等)不随时间变化。这意味着信号在不同时间段的性质是相同的。

  2. 自相关函数: 对于平稳信号,其自相关函数仅取决于时间间隔,而与具体的时间点无关。

  3. 例子: 许多自然现象和电子系统产生的信号,如白噪声、正弦信号等,都可以是平稳的。

2.非平稳信号(Non-Stationary Signal):

  1. 统计特性变化: 非平稳信号的统计特性随时间变化。这意味着信号在不同时间段的性质是不同的。

  2. 自相关函数: 对于非平稳信号,其自相关函数不仅取决于时间间隔,还取决于具体的时间点。

  3. 例子: 语音信号、线性调频信号、生物医学信号、金融市场数据等都是非平稳的,因为它们的特性会随时间而变化。

信号处理中所处理的绝大多数信号都是非平稳的。从这篇文章开始,将介绍并生成一些平稳和非平稳信号。

另外,在处理非平稳信号时,通常需要对信号进行分段,使得每个分段内的信号近似为平稳信号,然后对每个分段分别进行处理。这种方法在时间-频率分析(如短时傅里叶变换)和时频分析(如小波变换)中得到了广泛应用。这将在后续文章中逐一介绍。

二、生成平稳信号和非平稳信号的实验设计

本实验涉及生成平稳和非平稳信号。平稳信号为一个固定频率的正弦信号,其表达式如下:

在这里插入图片描述

如果把上述正弦信号表达式中的时间自变量t替换为t2,这等效于把正弦信号的固定频率f替换为f*t,将会导致信号的频率随时间变化。其表达式如下:

在这里插入图片描述

由于这个信号的频率随时间变化,所以被视为是非平稳的。

下面给出生成这两种信号Python代码及其运行结果。

三、生成平稳和非平稳信号的Python代码

生成平稳和非平稳信号的Python代码如下:

# 导入必要的库
import numpy as np                     # numpy用于数学计算
import matplotlib.pyplot as plt       # matplotlib.pyplot用于绘图# 定义时间轴
t = np.linspace(0, 2, 1000)  # 生成从0到2秒的时间点,共1000个点# 定义正弦波参数
A = 1     # 幅度
f = 5     # 频率(赫兹)
phi = 0   # 相位(弧度)# 生成平稳信号(正弦信号):
xst = A * np.sin(2 * np.pi * f * t + phi)         # 平稳信号# 生成非平稳信号:
xnst = A * np.sin(2 * np.pi * f * t ** 2 + phi)   # 非平稳信号# 画图
# 使用subplot创建一个2行1列的子图布局,并选中第一个子图进行绘制
plt.subplot(2, 1, 1)
# 在第一个子图中绘制平稳信号
plt.plot(t, xst)
# 设置x轴和y轴的标签
plt.xlabel('Time')
plt.ylabel('Amplitude')
# 设置子图的标题
plt.title('平稳信号')# 使用subplot选中第二个子图进行绘制
plt.subplot(2, 1, 2)
# 在第二个子图中绘制非平稳信号
plt.plot(t, xnst)
# 设置x轴和y轴的标签
plt.xlabel('Time')
plt.ylabel('Amplitude')
# 设置子图的标题
plt.title('非平稳信号')# 使用tight_layout自动调整子图参数,避免标签之间的重叠
plt.tight_layout()  
# 在所有子图上添加网格线
plt.grid(True)
# 显示绘制的图像
plt.show()

四、仿真结果及分析

以下是执行代码后画图的结果。

在这里插入图片描述

结果分析:

  1. 第一个子图展示了平稳信号,即一个标准的正弦波。这个信号的频率和幅度在整个时间轴上保持不变。
  2. 第二个子图展示了非平稳信号。在这个信号中,由于时间项 t2 的存在,频率随时间变化,导致信号的非平稳性。随着时间的推移,正弦波的周期变得更短,这表明频率在增加。
  3. 可以得出结论:平稳信号的频率不随时间变化,非平稳信号的频率随着时间增加而变化。

写在后面的话

这是《数字信号处理python示例》系列文章的第10篇。整个系列将使用python语言示例说明数字信号处理的基本原理与工程应用。给出的所有Python程序将努力做到简单且具有说明性。在数字信号处理的理论方面,将尽量避免数学上的推导与证明,而注重其物理意义阐述和工程应用的介绍。

感谢您的阅读!




http://www.mrgr.cn/news/69583.html

相关文章:

  • 使用 PyTorch 实现 AlexNet 进行 MNIST 图像分类
  • <项目代码>YOLOv8 草莓成熟识别<目标检测>
  • 安科瑞工业绝缘监测装置:保障煤矿井下6kV供电系统安全运行的关键应用——安科瑞 丁佳雯
  • MySQL第八章,JDBC:java操作数据库
  • 用MVVM设计模式提升WPF开发体验:分层架构与绑定实例解析
  • Flutter开发应用安装二次打开闪退,ios解决方案
  • Python练习15
  • 分页存储小总结
  • JavaScript day02 笔记
  • 基于Spring Boot的养老保险管理系统的设计与实现,LW+源码+讲解
  • 高速光耦——推动工业生产自动化飞跃的关键力量
  • 【网络原理】万字详解 UDP 和 TCP
  • 现场工程师日记-MSYS2迅速部署PostgreSQL主从备份数据库
  • 今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 11月10日,星期日
  • 云计算在教育领域的应用
  • 数据库基础(11) . SQL脚本
  • 用ArkTS写一个登录页面(实现简单的逻辑)
  • 1.4 算法设计策略与分析方法
  • 测试实项中的偶必现难测bug--苹果支付丢单问题
  • Linux2 指令(二)
  • 计算机网络(3)
  • 基于Springboot+Vue的心理咨询系统 (含源码数据库)
  • 如何选情绪龙头
  • 单页面应用和多页面应用区别及优缺点
  • 【Docker容器化技术】docker安装与配置、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
  • 从认识 VNode VDOM 到实现 mini-vue