文档章节

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
博文 354
码字总数 23769
作品 0
佳木斯
【工具使用系列】关于 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
MUSICA(多尺度图像对比度增强)算法的简要原理及VC实现-1[r]

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

技术小美
2017/11/20
0
0
小波变换轻松入门(我的理解说明)

第一节 一个很简单的例子 还谈不上正式入门 但他具备了部分的思想。 [x0,x1,x2,x3]=[90,70,100,70] 为达到压缩 我们可取 (x0+x1)/2  (x0-x1)/2 来代表 x0,x1 这样 [90,70] 可表示为 [80,10...

we_are_family678
03/21
0
0
R语言数据挖掘实战系列(4)

R语言数据挖掘实战系列(4)——数据预处理 数据预处理一方面是要提高数据的质量,另一方面是要让数据更好地适应特定的挖掘技术或工具。数据预处理的主要内容包括数据清洗、数据集成、数据变...

PXZ6603
2017/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

又一个centos文件顺序导致的问题

背景 新的centos似乎对于文件顺序做了特别的优化 和文件顺序出现的问题确实多了不少 centos7导致的spring循环依赖【实际上和这个问题不一样 不过由此衍生出的问题】 某应用放在新的系统开始报...

Mr_Qi
15分钟前
0
0
阿里云国际版香港CN2测评 月付9美元/30M带宽/1T流量

市面上很多家香港VPS服务商,一直都说阿里云国际版香港CN2线路好,延迟低,速度快,价格便宜流量还多,那么这个香港线路到底怎么样呢?本文从性能、延时、路由、速度方面来全方面测评一下阿里...

flyzy2005
58分钟前
0
0
撤销git commit --amend

it commit -amend之后想撤销 git reset HEAD@{1}

xiaomge
今天
0
0
有意思的TimeUnit

java.util.concurrent.TimeUnit 这个类,相信童鞋们都不陌生。它是一个enum: public enum TimeUnit 好吧,我一直把它当做一个枚举类来用。偶然看到还有别的用法,大吃一斤,原来 TimeUnit 并...

polly
今天
10
0
生成pyc

Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code)。pyc文件经过python解释器最终会生成机器码运行。所以pyc文件是可以跨平台部署的,类似Java的.class文件。一般py文件改...

Mr_Tea伯奕
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部