python实现信号预加重
预加重可使信号的频谱变得平坦,公式如下:
S
(
n
)
=
x
(
n
)
−
α
⋅
x
(
n
−
1
)
S\left( n \right) =x\left( n \right) -\alpha \cdot x\left( n-1 \right)
S(n)=x(n)−α⋅x(n−1)
其中其中α一般取值为0.97、0.95
功能:实现信号预加重
输入x为原信号,是一个numpy的1D张量
输出y为预加重信号,是一个numpy的1D张量
调用格式{y = PreEmphasised(x)}
调用:
def PreEmphasised(x):
PointNumbers=len(x)
PreEmphasis=x
PointNumbers=int(PointNumbers)#转化为整型
for i in range(1,PointNumbers,1):#range(PointNumbers),PointNumbers需为整型
PreEmphasis[i]=PreEmphasis[i]-0.97*PreEmphasis[i-1]
return (PreEmphasis)
运行:
import numpy as np
import math
y0 = np.array([1.,2.,3.,4.,5.])
print('y0=',y0)
def PreEmphasised(x):
PointNumbers=len(x)
PreEmphasis=x
PointNumbers=int(PointNumbers)#转化为整型
for i in range(1,PointNumbers,1):#range(PointNumbers),PointNumbers需为整型
PreEmphasis[i]=PreEmphasis[i]-0.97*PreEmphasis[i-1]
return (PreEmphasis)
y1 = PreEmphasised(y0)
print('y1=',y1)
结果:
y0= [1. 2. 3. 4. 5.]
y1= [1. 1.03 2.0009 2.059127 3.00264681]