From 87c0e462dc36396f1d1a16e35e4a9da5a235d8ea Mon Sep 17 00:00:00 2001 From: Rafat Hussain Date: Mon, 14 Aug 2017 17:09:12 +0530 Subject: [PATCH] commit : SWT and MODWT added. More tests. --- denoise/denoise.c | 41 ++++++++++++++++++++++++++++++++++------- test/denoisetest.c | 4 ++-- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/denoise/denoise.c b/denoise/denoise.c index 0a76e45..da517d4 100644 --- a/denoise/denoise.c +++ b/denoise/denoise.c @@ -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); diff --git a/test/denoisetest.c b/test/denoisetest.c index 89e164d..4f6e69c 100644 --- a/test/denoisetest.c +++ b/test/denoisetest.c @@ -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);