Doxygen Source Code Documentation
Daubechies.c File Reference
Go to the source code of this file.
Functions | |
void | Daubechies_forward_pass_1d (int n, float *s) |
void | Daubechies_forward_FWT_1d (int n, float *s) |
void | Daubechies_inverse_pass_1d (int n, float *s) |
void | Daubechies_inverse_FWT_1d (int n, float *s) |
void | Daubechies_forward_pass_2d (int n, float **s) |
void | Daubechies_forward_FWT_2d (int n, float **s) |
void | Daubechies_inverse_pass_2d (int n, float **s) |
void | Daubechies_inverse_FWT_2d (int n, float **s) |
Function Documentation
|
Definition at line 59 of file Daubechies.c. References Daubechies_forward_pass_1d(), and powerof2(). Referenced by wavelet_analysis().
00060 { 00061 int m; 00062 int npts; 00063 00064 npts = powerof2 (n); 00065 00066 for (m = n-1; m >= 0; m--) 00067 { 00068 Daubechies_forward_pass_1d (m+1, s); 00069 /* 00070 ts_print (npts, s); 00071 */ 00072 } 00073 } |
|
Definition at line 179 of file Daubechies.c. References Daubechies_forward_pass_2d(), and powerof2().
00180 { 00181 int m; 00182 int npts; 00183 00184 npts = powerof2 (n); 00185 00186 for (m = n-1; m >= 0; m--) 00187 { 00188 Daubechies_forward_pass_2d (m+1, s); 00189 } 00190 } |
|
Definition at line 23 of file Daubechies.c. References a, c, free, i, malloc, and powerof2(). Referenced by Daubechies_forward_FWT_1d(), and Daubechies_forward_pass_2d().
00024 { 00025 int i; 00026 int npts; 00027 float * a = NULL; 00028 float * c = NULL; 00029 const float h[4] = { 0.683013, 1.18301, 0.316987, -0.183013 }; 00030 00031 npts = powerof2 (n); 00032 a = (float *) malloc (sizeof(float) * npts/2); 00033 c = (float *) malloc (sizeof(float) * npts/2); 00034 00035 for (i = 0; i < npts/2; i++) 00036 { 00037 a[i] = (h[0]*s[(2*i)%npts] + h[1]*s[(2*i+1)%npts] + h[2]*s[(2*i+2)%npts] 00038 + h[3]*s[(2*i+3)%npts]) / 2.0; 00039 c[i] = (h[3]*s[(2*i)%npts] - h[2]*s[(2*i+1)%npts] + h[1]*s[(2*i+2)%npts] 00040 - h[0]*s[(2*i+3)%npts]) / 2.0; 00041 } 00042 00043 for (i = 0; i < npts/2; i++) 00044 { 00045 s[i] = a[i]; 00046 s[i + npts/2] = c[i]; 00047 } 00048 00049 free (a); a = NULL; 00050 free (c); c = NULL; 00051 } |
|
Definition at line 145 of file Daubechies.c. References c, Daubechies_forward_pass_1d(), free, i, malloc, and powerof2(). Referenced by Daubechies_forward_FWT_2d().
00146 { 00147 int i, j; 00148 int npts; 00149 float * c = NULL; 00150 00151 00152 npts = powerof2 (n); 00153 00154 for (i = 0; i < npts; i++) 00155 { 00156 Daubechies_forward_pass_1d (n, s[i]); 00157 } 00158 00159 c = (float *) malloc (sizeof(float) * npts); 00160 00161 for (j = 0; j < npts; j++) 00162 { 00163 for (i = 0; i < npts; i++) 00164 c[i] = s[i][j]; 00165 Daubechies_forward_pass_1d (n, c); 00166 for (i = 0; i < npts; i++) 00167 s[i][j] = c[i]; 00168 } 00169 00170 free (c); c = NULL; 00171 } |
|
Definition at line 123 of file Daubechies.c. References Daubechies_inverse_pass_1d(), and powerof2(). Referenced by wavelet_analysis().
00124 { 00125 int m; 00126 int npts; 00127 00128 npts = powerof2 (n); 00129 00130 for (m = 1; m <=n; m++) 00131 { 00132 Daubechies_inverse_pass_1d (m, s); 00133 /* 00134 ts_print (npts, s); 00135 */ 00136 } 00137 } |
|
Definition at line 232 of file Daubechies.c. References Daubechies_inverse_pass_2d(), and powerof2().
00233 { 00234 int m; 00235 int npts; 00236 00237 npts = powerof2 (n); 00238 00239 for (m = 1; m <= n; m++) 00240 { 00241 Daubechies_inverse_pass_2d (m, s); 00242 } 00243 } |
|
Definition at line 81 of file Daubechies.c. References a, c, free, i, malloc, powerof2(), and r. Referenced by Daubechies_inverse_FWT_1d(), and Daubechies_inverse_pass_2d().
00082 { 00083 int i; 00084 int npts, nptsd2; 00085 float * a = NULL; 00086 float * c = NULL; 00087 float * r = NULL; 00088 const float h[4] = { 0.683013, 1.18301, 0.316987, -0.183013 }; 00089 00090 00091 npts = powerof2 (n); 00092 nptsd2 = npts/2; 00093 a = s; 00094 c = s+nptsd2; 00095 r = (float *) malloc (sizeof(float) * npts); 00096 00097 00098 for (i = 0; i < nptsd2; i++) 00099 { 00100 r[2*i] = h[2]*a[(i-1+nptsd2)%nptsd2] + h[1]*c[(i-1+nptsd2)%nptsd2] 00101 + h[0]*a[i] + h[3]*c[i]; 00102 00103 r[2*i+1] = h[3]*a[(i-1+nptsd2)%nptsd2] - h[0]*c[(i-1+nptsd2)%nptsd2] 00104 + h[1]*a[i] - h[2]*c[i]; 00105 } 00106 00107 00108 for (i = 0; i < npts; i++) 00109 { 00110 s[i] = r[i]; 00111 } 00112 00113 free (r); r = NULL; 00114 00115 } |
|
Definition at line 198 of file Daubechies.c. References c, Daubechies_inverse_pass_1d(), free, i, malloc, and powerof2(). Referenced by Daubechies_inverse_FWT_2d().
00199 { 00200 int i, j; 00201 int npts; 00202 float * c = NULL; 00203 00204 00205 npts = powerof2 (n); 00206 00207 for (i = 0; i < npts; i++) 00208 { 00209 Daubechies_inverse_pass_1d (n, s[i]); 00210 } 00211 00212 c = (float *) malloc (sizeof(float) * npts); 00213 00214 for (j = 0; j < npts; j++) 00215 { 00216 for (i = 0; i < npts; i++) 00217 c[i] = s[i][j]; 00218 Daubechies_inverse_pass_1d (n, c); 00219 for (i = 0; i < npts; i++) 00220 s[i][j] = c[i]; 00221 } 00222 00223 free (c); c = NULL; 00224 } |