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); wt = wt_init(wave,method,N,J);
setDWTExtension(wt,ext); if(!strcmp(method,"dwt")) {
setDWTExtension(wt,ext);
dwt(wt,signal); 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 //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); free(dout);
wave_free(wave); 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); 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]; len = wt->length[0];
dlen = wt->length[J]; 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]; 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(dout);
free(risk); free(risk);

View File

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