#include <stdio.h>

#define N 16

void Haar(double *a, int n) {

double t[N];

int i, j;

for (i = n; i > 1; i /= 2) {

for (j = 0; j < i / 2; j++) {

t[j] = (a[2 * j] + a[2 * j + 1]) / 2;

t[j + i / 2] = (a[2 * j] - a[2 * j + 1]) / 2;

}

for (j = 0; j < i; j++) {

a[j] = t[j];

}

}

}

int main() {

double a[N] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };

int n = N;

int i;

for (i = 0; i < n; i++) {

printf('%f ', a[i]);

}

printf(' ');

Haar(a, n);

for (i = 0; i < n; i++) {

printf('%f ', a[i]);

}

printf(' ');

return 0;

}

C语言实现小波6算法4层分解

原文地址: https://www.cveoy.top/t/topic/oM2q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录