文档章节

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
博文 359
码字总数 24366
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

这周撸了两款小程序,分享下关键点。

本周撸了两款小程序,在这里总结下开发过程中的小经验,希望对大家有用。 小程序端 我们先说小程序要注意的地方。 ##默认入口转发问题 当一个小程序Page的js文件中存在 onShareAppMessage 方...

阿北2017
23分钟前
2
0
物联网技术很新吗?不!都是旧技术

通常,当我们想到物联网时,我们会想到新的、令人兴奋的现代技术。毕竟,还有什么比不用起床就能通过智能手机告诉咖啡机开始煮晨杯的“未来”更重要呢? 多亏了物联网,我们可以在世界任何地方...

linuxCool
30分钟前
2
0
利用责任链模式设计一个拦截器

前言 近期在做 Cicada 的拦截器功能,正好用到了责任链模式。 这个设计模式在日常使用中频率还是挺高的,借此机会来分析分析。 责任链模式 先来看看什么是责任链模式。 引用一段维基百科对其...

crossoverJie
48分钟前
2
0
属性动画

透明度 alpha 平移translationX/translationY 旋转 rotation 缩放 scaleX/scaleY 多个动画一起AnimatorSet 透明度 ObjectAnimator oa = ObjectAnimator.ofFloat(iv,"alpha" ......

lanyu96
49分钟前
1
0
Docker和Kubernetes如何让DevOps更具效力

缩短time-to-makrt对于任何一家企业都至关重要,这直接决定了客户满意度、市场竞争力乃至盈利能力。但在部署应用时,大多数企业内的IT团队都或多或少会遇到Dev和Ops之间的问题,这两个部门围...

好雨云帮
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部