commit : SWT and MODWT added. More tests.

This commit is contained in:
Rafat Hussain 2017-08-14 17:09:12 +05:30
parent 22145f26fd
commit 87c0e462dc
2 changed files with 36 additions and 9 deletions

View File

@ -120,9 +120,16 @@ void visushrink(double *signal,int N,int J,char *wname,char *method,char *ext,ch
}
wt = wt_init(wave,method,N,J);
setDWTExtension(wt,ext);
dwt(wt,signal);
if(!strcmp(method,"dwt")) {
setDWTExtension(wt,ext);
dwt(wt,signal);
} else if(!strcmp(method,"swt")) {
swt(wt,signal);
} else if(!strcmp(method,"modwt")) {
modwt(wt,signal);
} else {
printf("Acceptable WT methods are - dwt,swt and modwt\n");
}
//Set sigma
@ -162,7 +169,13 @@ void visushrink(double *signal,int N,int J,char *wname,char *method,char *ext,ch
}
}
idwt(wt,denoised);
if(!strcmp(method,"dwt")) {
idwt(wt,denoised);
} else if(!strcmp(method,"swt")) {
iswt(wt,denoised);
} else if(!strcmp(method,"modwt")) {
imodwt(wt,denoised);
}
free(dout);
wave_free(wave);
@ -188,9 +201,17 @@ void sureshrink(double *signal,int N,int J,char *wname,char *method,char *ext,ch
}
wt = wt_init(wave,method,N,J);
setDWTExtension(wt,ext);
dwt(wt,signal);
if(!strcmp(method,"dwt")) {
setDWTExtension(wt,ext);
dwt(wt,signal);
} else if(!strcmp(method,"swt")) {
swt(wt,signal);
} else if(!strcmp(method,"modwt")) {
modwt(wt,signal);
} else {
printf("Acceptable WT methods are - dwt,swt and modwt\n");
}
len = wt->length[0];
dlen = wt->length[J];
@ -268,7 +289,13 @@ void sureshrink(double *signal,int N,int J,char *wname,char *method,char *ext,ch
len += wt->length[it+1];
}
idwt(wt,denoised);
if(!strcmp(method,"dwt")) {
idwt(wt,denoised);
} else if(!strcmp(method,"swt")) {
iswt(wt,denoised);
} else if(!strcmp(method,"modwt")) {
imodwt(wt,denoised);
}
free(dout);
free(risk);

View File

@ -12,7 +12,7 @@ int main() {
double temp[2400];
char *wname = "sym8";
char *method = "dwt";
char *method = "swt";
char *ext = "sym";
char *thresh = "soft";
@ -31,7 +31,7 @@ int main() {
fclose(ifp);
N = i;
J = 7;
J = 6;
inp = (double*)malloc(sizeof(double)* N);
oup = (double*)malloc(sizeof(double)* N);