文档章节

DB4小波

vga
 vga
发布于 2017/07/25 10:13
字数 455
阅读 6
收藏 0

这个用的是 DB4小波,周期延拓,可以实现精确重构的。


#define N0 128
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "string.h"
void db4(double *h,double *g,double *hh,double *gg);
void wd(int N,double *h,double *g,double *c0,double *c,double *d);
void wr(int N,double *h,double *g,double *c, double *d,double *cd);
void main()
{
double fk[N0],c0[N0],c[N0],d[N0];
double h[8],g[8],hh[8],gg[8];
float fk0[N0];
FILE *fp;
int i,k,j,n,l,N;
fp=fopen("wdata.dat","rt");
fscanf(fp,"%d",&N);
for(k=0;k<N;k++) fscanf(fp,"%f",&fk0[k]);
fclose(fp);
db4(h,g,hh,gg);
for(k=0;k<N;k++) {
c0[k]=fk0[k];
c[k]=0;
d[k]=0;
}
wd(N,hh,gg,c0,c,d);
wr(N,hh,gg,c,d,c0);
for(k=0;k<N;k++) printf("k=%d c0=%f c=%f\n",k,fk0[k],c0[k]);
return;
}
void wd(int N,double *h,double *g,double *c0,double *c,double *d)
/* wavelet decomposition */
{
int k,n,k2,l;
double ck,dk;
for(k=0;k<N;k++) {
ck=0.0;
dk=0.0;
for(l=0;l<8;l++) {
n=k+l;
ck+=c0[n%N]*h[l];
dk+=c0[n%N]*g[l];
}
c[k]=ck;
d[k]=dk;
}
for(k=0;k<N/2;k++) {
k2=2*k;
c0[k]=c[k2];
c0[N/2+k]=d[k2];
}
return;
}
void wr(int N,double *h,double *g,double *c,double *d,double *c0)
/* wavelet reconstruction */
{
int k,n,l,k2;
double ck,cn,dn;
for(k=0;k<N/2;k++) {
k2=2*k;
c[k2]=c0[k];
c[k2+1]=0;
d[k2]=c0[N/2+k];
d[k2+1]=0;
}
for(k=0;k<N;k++) c0[k]=0.0;
for(k=0;k<N;k++) {
ck=0.0;
for(l=0;l<8;l++) {
n=k-l;
cn=c[(N+n)%N];
dn=d[(N+n)%N];
ck+=cn*h[l]+dn*g[l];
}
c0[k]=ck;
}
return;
}
void db4(double *h,double *g,double *hh,double *gg)
/* Daubechies 4 wavelet */
{
int k,isgn;
h[7]=-0.0105974017850890;
h[6]= 0.0328830116668852;
h[5]= 0.0308413818355607;
h[4]=-0.1870348117190931;
h[3]=-0.0279837694168599;
h[2]= 0.6308807679398597;
h[1]= 0.7148465705529154;
h[0]= 0.2303778133088964;
isgn=1;
for(k=0;k<8;k++) {
gg[k]=isgn*h[7-k];
isgn=-isgn;
}
for(k=0;k<8;k++) {
g[k]=gg[7-k];
hh[k]=h[7-k];
}
return;
}
float fun(float x)
{
float pi=3.1415926;
float yx=30*exp(-x/40)*sin(2*pi*x/40);
return(yx);
}

本文转载自:http://www.pudn.com/Download/item/id/687722.html

共有 人打赏支持
vga

vga

粉丝 21
博文 362
码字总数 24609
作品 0
佳木斯
私信 提问
DB4小波及其提升算法

void CWaveletTransform::DB4DWT(double Data[], int n) // DB4小波变换{if ( n>=4 ){int i=0, j=0;int half = n >> 1;double tmp = new double[n];for (j=0; j<half; j++){tmp[j] = Data[(......

chain2012
2010/04/23
1K
1
【工具使用系列】关于 MATLAB 小波分析和分形几何,你需要知道的事

如何进行小波分析 & 分形几何 小波变换 快速小波变换 使用小波工具箱的FWT 不使用小波工具箱的FWT 快速小波反变换 小波分解结构的处理 不使用小波工具箱编辑小波分解系数 显示小波分解系数 ...

AllenMoore
01/27
0
0
MATLAB图像小波变换

小波变换与小波包变换 人脸图像f(x,y) 的一层小波变换如下图所示: 图中L 和H 分别表示低通滤波器和高通滤波器,l(n) 和h(n) 分别表示它们相应的脉冲响应,2↓1表示降2采样fLL 和fHH 分别表示...

初雪之音
2015/12/27
543
0
yum update出错

yum update出错 百度弄了很久了一直弄不成功 系统是 centos6.9 报错如下 -> Processing Dependency: libdb-4.7.so()(64bit) for package: python-libs-2.6.6-66.el6_8.x86_64 --> Processin......

entre灰灰
04/03
504
0
MUSICA(多尺度图像对比度增强)算法的简要原理及VC实现-1[r]

MUSICA的专利文档:MUSICApatent - Original document.pdf 算法原理: 图像增强的一般方法是对比度拉伸和直方图均衡,这两种方法对于灰度级过于集中, 还有大量的灰度级没有充分利用的情况下...

技术小美
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud Consul综合整理

部分资料来自 该项目通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供了Spring Boot应用程序的Consul集成。 通过一些简单的注释,您可以快速启用和配置应用程序内的通用模式,并...

Gm_ning
4分钟前
0
0
Springboot 2.0 - 集成redis

最近在入门SpringBoot,然后在感慨 SpringBoot较于Spring真的方便多时,顺便记录下自己在集成redis时的一些想法。 从springboot官网查看redis的依赖包 <dependency>           ...

别打我会飞
5分钟前
0
0
支付宝APP支付申请配置过程详解

第一步:你需要申请一个支付宝商家账户账号,登陆之后进入产品中心,进行APP支付产品接入,填写相关资料,等待审核。 第二步:进行APP支付申请信息完善 第三步:进入蚂蚁金服开放平台进行开发...

Code辉
9分钟前
0
0
避免过度同步(67)

过度使用同步会导致性能低下、死锁或其他不确定问题 在一个同步方法或代码块中,不要放弃对客户端的控制 即:在一个同步区域内部,不要调用被覆盖方法,或者是传入对象提供的方法 这些外来方...

Java搬砖工程师
9分钟前
0
0
Java获取文件类型/扩展名

import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.util.HashMap;import java.util.Map;public class FileTypeUtils { private fi......

Hzhodor
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部