• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-29
  • 语言: 其他
  • 标签: haar小波  

资源简介

用简单的haar 小波对信号进行二层分解

资源截图

代码片段和文件信息

/***********************
@author 张浩龙
@all rights reserved
采用haar小波对信号进行分析 

分解层数:一层
目标信号:sin 函数

其他说明:若想多层分解 只需将coffe数组中的偶数项(对应于低频信号)再通过函数进行一次即可 
若想采用其他小波 例如db2小波 则需要变换一下系数 
比如db2 小波有四个系数 分别为 0.48296 0.83651 0.22414 -0.1294 可在matlab下用 wfilter(‘db2‘‘d‘)得到相应系数
************************/

#include 
#include 

#define M 100 //M为采样个数 

//以下四个宏为高通和低通滤波器系数(滤波器分解系数) 也为haar小波方程和尺度方程的分解系数
#define H1_0 -0.7071 
#define H1_1 0.7071
#define H0_0 0.7071
#define H0_1 0.7071

double signal[M];//原信号
double rec_signal[M];//重建的信号
double error[M];//误差数组

double coffe[M]; //系数矩阵 存储一次变换后 ca 和 cd 

void input_Signal(void)
{
//暂且用正弦信号作为输入 当然可以改成昨天你给我看的那个调频信号 不过需要你自己在这构建函数表达式
for(int i = 0; i signal[i] = sin(i);
}

void Haar_transform(void)
{
    for(int i=0; i {
         if(0 == i%2)
 {
             coffe[i] = signal[i]*H0_1 + signal[i+1]*H0_0;//此处为进行卷积计算 低通滤波
 }
 else
 {
             coffe[i] = signal[i-1]*H1_1 + signal[i]*H1_0;//此处为进行卷积计算 高通滤波
 }
}
}

void Haar_reconstruction(void)
{
for(int i=0; i {
if(0 == i%2)
{
rec_signal[i] = coffe[i]*H0_1 + coffe[i+1]*H1_1;//此处为进行卷积计算 低通滤波
}
else
{
rec_signal[i] = coffe[i-1]*H0_0 + coffe[i]*H1_0;//此处为进行卷积计算 高通滤波
}
}
}

void Error_Calculate(void)
{
     for(int i=0; i  error[i] = fabs(signal[i] - rec_signal[i]);
}

void output(void)
{
int i;
    printf(“一层分解低频系数为:\n“);
for(i=0; i {
printf(“%      lf“coffe[i]);
}

printf(“一层分解高频系数为:\n“);
for(i=1; i {
printf(“%      lf“coffe[i]);
}

printf(“原信号为:\n“);
for(i=0; i {
printf(“%      lf“signal[i]);
}

printf(“重建信号为:\n“);
for(i=0; i {
printf(“%      lf“rec_signal[i]);
}

    printf(“误差为:\n“);
for(i=0; i {
printf(“%      lf“error[i]);
}
}

void main(void)
{
   input_Signal();
   Haar_transform();
   Haar_reconstruction();
   Error_Calculate();
   output();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2333  2013-04-20 12:29  Simple_Haar_Wavelet\Haar_wavelet.txt
     文件        2333  2013-04-20 12:28  Simple_Haar_Wavelet\Haar_wavelets.cpp
     文件         211  2013-04-20 12:32  Simple_Haar_Wavelet\说明.txt
     目录           0  2013-04-20 12:30  Simple_Haar_Wavelet\

评论

共有 条评论