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 }
 | 
 
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
 
 
 
 
       
	   
	   
	   
	  