文档章节

DB4小波

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

这个用的是 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

粉丝 19
博文 335
码字总数 23381
作品 0
佳木斯
【工具使用系列】关于 MATLAB 小波分析和分形几何,你需要知道的事

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

AllenMoore ⋅ 01/27 ⋅ 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 ⋅ 1

MATLAB图像小波变换

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

初雪之音 ⋅ 2015/12/27 ⋅ 0

2-1 连续小波变换程序

2-1是对分形数据进行墨西哥帽子小波变换,实现连续小波变换。程序文件列表,见表1。 表1 程序文件列表 文件 作用 Singularity_Detection.m 对已知信号进行墨西哥帽子变换 test.m 对分形数据v...

俪文 ⋅ 2014/04/02 ⋅ 0

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

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

技术小美 ⋅ 2017/11/20 ⋅ 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

R语言数据挖掘实战系列(4)

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

PXZ6603 ⋅ 2017/07/12 ⋅ 0

信号分离研究内容

最近两期准备介绍下信号分离相关的知识,关于信号分离具体技术这两期暂时不会涉及,在开始信号分离具体方法理论介绍前,有必要先普及下信号分离研究的内容,而本期的重点就是介绍下信号分离的...

aresmiki ⋅ 2017/01/13 ⋅ 0

现代图像处理技术试题

问题1:灰度图像数学形态学 以二值图像数学形态学为切入点,建立灰度图像数学形态学。 1.给出灰度图像的腐蚀、膨胀、开启和闭合等运算的表达式和基本性质; 2.对灰度图像,给出扁平结构元素...

乱世中的单纯 ⋅ 2014/11/26 ⋅ 1

【工具使用系列】关于 MATLAB 图像变换,你需要知道的事

如何进行图像变换(频域处理) 正交变换 傅里叶变换 二维连续傅里叶变换 二维离散傅里叶变换(DFT) 快速傅里叶变换(FFT) 离散余弦变换 一维离散余弦变换 二维离散余弦变换 离散正弦变换 ...

AllenMoore ⋅ 01/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 2分钟前 ⋅ 0

482. License Key Formatting - LeetCode

Question 482. License Key Formatting Solution 思路:字符串转化为char数组,从后遍历,如果是大写字母就转化为小写字母,如果是-就忽略,如果遍历了k个字符(排除-)就追加一个-。 Java实现...

yysue ⋅ 20分钟前 ⋅ 0

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 45分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 51分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 54分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 57分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 58分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 今天 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 今天 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部