C语言实现小波6算法4层分解
#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;
}
原文地址: https://www.cveoy.top/t/topic/oM2q 著作权归作者所有。请勿转载和采集!