Canmv k230 案例5.3——应用小波变换—奇异性检测(三)
小波函数
函数性质
代码
# 基础示例 奇异性检测
import array
import math
PI = 3.14159265358979323846264338327950288419716939937510
rx = [] # 空列表,用于储存生成的输入数据
def input_data(): # 输入列表,突变信号
for i in range(200):
data0 = 50 * math.exp(i/300) * math.sin(2 * PI * i * 0.01)
rx.append(data0) # 类型不能转换是为什么?
for i in range(200,300):
data1 = 50 * math.exp(i/300) * math.sin(2 * PI * i * 0.01 *200)+30
rx.append(data1)
for i in range(300,400):
data2 = 50 * math.exp(i/300) * math.sin(2 * PI * i * 0.01 *200)+10
rx.append(data2)
for i in range(400,500):
data3 = 50 * math.exp(i/300) * math.sin(2 * PI * i * 0.01 *200)+10 + 250 * math.sin(2*PI *i *0.003)
rx.append(data3)
input_data()
print(rx)
yy=[]
# 长度为5
# 高斯函数一阶导数
G1=[-0.270670566473225,-0.606530659712633,0,0.606530659712633,0.270670566473225]
y=[0,0,0,0,0]
for i in range(490):
x=rx[0+i:5+i]
for i in range(5):
y[i]=G1[i]*x[i]
yy.append(sum(y))
print(yy)
设置适当的滤波器实现波形突变检测,实际效果,串口输出结果如下图所示