Android实现ECG的小波变换源码
```java
public void wt(double[] data, int n) { //小波变换
int i, j;
double a1, a2, b1, b2;
//变换步骤:将原始数据进行高低通滤波
//第一步:低通滤波器,从第二个数开始处理
for (i = 2; i < n; i += 2) { //以2为步长,处理偶数位置的数据
a1 = 0.482962913145 * (data[i] + data[i - 2]); //计算a1
a2 = 0.836516303738 * data[i - 1]; //计算a2
b1 = 0.224143868042 * (data[i] + data[i - 2]); //计算b1
b2 = -0.1294095225526 * data[i - 1]; //计算b2
data[i] = a1 + a2; //输出y(n)
data[i - 1] = b1 + b2; //输出y(n-1)
}
for (j = n / 4; j >= 1; j /= 2) { //以4、2、1为步长,处理奇数位置的数据
for (int k = j; k < n; k += 2 * j) { //以j为步长,处理奇数位置的数据
a1 = 0.482962913145 * (data[k] + data[k - j]); //输入x(n), x(n-j), 输出y(n), y(n-j); 其中a0=0.482962913145,a3=0.836516303738
a2 = 0.836516303738 * data[k - j / 2]; //输入x(n-j/2), 输出y(n-j/2); 其中b0=0.224143868042,b3=-0.1294095225526
b1 = 0.224143868042 * (data[k] + data[k - j]); //同上 c0=0.482962913145,c3=-0.836516303738
b2
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!