信号幅值归一化

信号幅值归一化,第1张

本文主要实现将一维时序数据进行幅值归一化 1. 导包
import numpy as np
import math

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
2. 自定义函数
# 一维时序信号赋值归一化
def normalized(origin_signal):
  y = origin_signal - np.mean(origin_signal)  # 消除直流分量
  y = y / np.max(np.abs(y))  # 幅值归一化
  return y
3. 完整代码
import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

# 一维时序信号赋值归一化
def normalized(origin_signal):
  y = origin_signal - np.mean(origin_signal)  # 消除直流分量
  y = y / np.max(np.abs(y))  # 幅值归一化
  return y
  
data = [1,2,4,3,5,2,7,5,2,6,5,9,10,2,5,4,3]
origin_signal = np.array(data)

normalized_data = normalized(origin_signal)

plt.plot(origin_signal)
legend = "原始数据"
plt.legend(legend)
plt.show()

plt.plot(normalized_data)
legend = "幅值归一化"
plt.legend(legend)
plt.show()
4. 效果展示

原始信号:

幅值归一化信号:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/717509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存