clc;

close all;

clear;

fs = 100000;

t = 1: 100;

x = sin(2*pi*4000* t/fs) + sin(2*pi*40000*t/fs);

%db8

[Lo_D1, Hi_D1] = wfilters('db1', 'd');%从db1到db8. 滤波器系数个数不同 2

[Lo_D2, Hi_D2] = wfilters('db2', 'd');%从db1到db8. 4

[Lo_D3, Hi_D3] = wfilters('db4', 'd');%从db1到db8. 8

[Lo_D4, Hi_D4] = wfilters('db8', 'd');%从db1到db8. 16

freqz(Lo_D1);

hold on;

freqz(Lo_D2);

hold on;

freqz(Lo_D3);

hold on;

freqz(Lo_D4);%等级越高,衰减越厉害,过渡带越窄

close all;

%cwt连续小波变换,dwt离散小波变换

%dwt仅仅对单一尺度的变化

[cA1, cD1 ]= dwt(x, 'db1');%cA1低频分量 信号的近似, cD1高频分量 信号的细节

%A1=upcoef('a',cA1,'db1');%单尺度低频系数向上一步的重构信号

%D1=upcoef('a',cA2,'db1');%高频系数 ...

X = idwt(cA1, cD1, 'db1');%

figure(10);

subplot(3, 1,1)

plot(x);

title('原始');

subplot(3, 1,2)

plot(X);

title('重构');

subplot(3, 1,3)

plot(x-X);

title('误差');

%wavedec多尺度分解 仅仅对低频分量分解

%[C,L] = WAVEDEC(X,N,Lo_D,Hi_D) 已有的滤波器系数

%wavedec 由多次调用 dwt ,将输出的低频分量,再次传入,如此

[C, L]= wavedec(x, 2, 'db1');% L对应于每个节点的样本点数; 从最底层到顶层

%多尺度重构, a3 = wrcoef('a'或者'd',C,L,'db1');%'a'表示低频近似系数,'d'高频细节系数

cA1 = appcoef(C, L, 'db1', 1);%approximation coefficients

cA2 = appcoef(C, L, 'db1', 2);

%多尺度 低高频重构 X = waverec(C,L,'db1');

figure(1);%仅仅对低频分量逐步分解,精细化

subplot(3,1,1)

plot(x);

subplot(3,1,2)

plot(cA1);

title('尺度1的低频系数');

subplot(3,1,3)

plot(cA2);

title('尺度2的低频系数');

cD1 = detcoef(C, L, 1);%extracts the detail coefficients

cD2 = detcoef(C, L, 2);

figure(2)

subplot(3,1,1)

plot(x);

subplot(3,1,2)

plot(cD1);

title('尺度1的高频系数');

subplot(3,1,3)

plot(cD2);

title('尺度2的高频系数');

%小波包分解是对小波分解的推广,它提供了位置、尺度和频率

%它克服了小波分解在高频段的频率分辨率差,在低频段的时间分辨率差的问题。

%每一层的节点 左孩子节点 传入父数据,低通滤波器滤波,下采样,存数据 右孩子节点 传入父数据, 高通滤波器滤波,下采样,存数据

%不断的下采样,频谱相对变大,频域分辨率提升。

%所有的左孩子和右孩子对应的高低通滤波器系数分别一致

wpt = wpdec(x, 2, 'db1');

%小波包重构 rex = wprec(wpt)

plot(wpt);

figure(4)

subplot(2,1,1);

plot(x);

cfs = wpcoef(wpt, [2 0]);

subplot(2,1,2);

plot(cfs);

title('结点(2,0)系数')

figure;

rcfs = wprcoef(wpt, [2 0]);

plot(rcfs);

title('重构小波节点(2,0)');

% %wavlet

% High_coe = [ -5.44158422430816093862e-02,

% 3.12871590914465924627e-01,

% -6.75630736298012846142e-01,

% 5.85354683654869090148e-01,

% 1.58291052560238926228e-02,

% -2.84015542962428091389e-01,

% -4.72484573997972536787e-04,

% 1.28747426620186011803e-01,

% 1.73693010020221083600e-02,

% -4.40882539310647192377e-02,

% -1.39810279170155156436e-02,

% 8.74609404701565465445e-03,

% 4.87035299301066034600e-03,

% -3.91740372995977108837e-04,

% -6.75449405998556772109e-04,

% -1.17476784002281916305e-04];

%

% Low_coe = [ -1.17476784002281916305e-04,

% 6.75449405998556772109e-04,

% -3.91740372995977108837e-04,

% -4.87035299301066034600e-03,

% 8.74609404701565465445e-03,

% 1.39810279170155156436e-02,

% -4.40882539310647192377e-02,

% -1.73693010020221083600e-02,

% 1.28747426620186011803e-01,

% 4.72484573997972536787e-04,

% -2.84015542962428091389e-01,

% -1.58291052560238926228e-02,

% 5.85354683654869090148e-01,

% 6.75630736298012846142e-01,

% 3.12871590914465924627e-01,

% 5.44158422430816093862e-02];

%

% %滤波器系数与采样率 无关。

% %显示归一化频率对应

%

% freqz(High_coe);

% hold on;

% freqz(Low_coe);

【转】小波与小波包、小波包分解与信号重构、小波包能量特征提取 暨 小波包分解后实现按频率大小分布重新排列(Matlab 程序详解)

转:https://blog.csdn.net/cqfdcw/article/details/84995904 小波与小波包.小波包分解与信号重构.小波包能量特征提取   (Matlab 程序详解) ...

MATLAB小波包的分解与重构

该文章用来直观上先感受一下小波包的分解与重构   例1 有一个信号,变量名为wave,随便找一个信号load进来就行了. t=wpdec(wave,3,'dmey'); t2 = wpjoin(t,[ ...

小波分解和合成的simulink仿真

采用5-3提升小波的方法 小波分解 数据拆分 预测 更新 数据输出使能电路 电路共有两个输入三个输出,in1是数据输入,in2是输入数据有效信号,out1是更新后的低频信号,out2是预测的高频信号, ...

二维离散平稳小波分解swt2

对信号X进行N尺度平稳小波分解 [A,H,V,D]=swt2(X,N,'wname'); clc,clear all,close all; load woman; [cA,cH,cV,cD]=swt2 ...

多尺度二维离散小波分解wavedec2

对X进行N尺度小波分解 [C,S]=wavedec2(X,N,'wname'); clc,clear all,close all; load woman; [c,s]=wavedec2(X,2,'db ...

单尺度二维离散小波分解dwt2

clc,clear all,close all; load woman; [cA,cH,cV,cD]=dwt2(X,'haar');%单尺度二维离散小波分解.分解小波函数haar figure,ims ...

一阶RC高通滤波器详解(仿真+matlab+C语言实现)

文章目录 预备知识 关于电容 HPF的推导 simulink 仿真 simulink 运行结果 matlab 实现 matlab 运行结果 C语言实现 如果本文帮到了你,帮忙点个赞: 如果本文帮到了你 ...

一阶RC低通滤波器详解(仿真+matlab+C语言实现)

文章目录 1 预备知识 2 simulink 仿真 3 simulink 运行结果 4 matlab实现 5 matlab运行结果 6 C语言实现 7 C语言运行结果 如果本文帮到了你,帮忙点个赞: ...

矩阵的五种分解的matlab实现

由于这学期修了矩阵分析这门课,课程要求用matlab实现矩阵的5种分解,仅仅是实现了分解,上传到博客存档,万一哪天某位同学就需要了呢.. 1.矩阵的满秩分解 代码实现 %矩阵的满秩分解 clear % ...

随机推荐

AX2012修改properties字体

参考自http://www.ithao123.cn/wenku/list_310_2.html static void GD_Eric_ChangeUserinfoFont(Args _args){  ...

事件异步(EAP)使用事件异步处理一些耗时操作

比如需要下载一些比较大的文件,如果使用会UI卡顿,使用异步可以节省一些时间 下面是一些例子: using System; using System.Collections.Generic; using ...

[Computer structure] Written Notes

To some extent, taking notes using my pen and pencil is also an interesting thing! bingo! ~ 2016-03- ...

Ubuntu桌面版本和服务器版本之间的区别(转载)

转载自:http://blog.csdn.net/fangaoxin/article/details/6335992 http://www.linuxidc.com/Linux/2010-11/297 ...

CMSIS Example - Signal

/*---------------------------------------------------------------------------- * RL-ARM - RTX *----- ...

Linux系统编程(27)——线程控制

进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,那么如何在一个进程的地址空间中执行多个线程呢.有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比 ...

表达式 - PHP手册笔记

PHP是一种面向表达式的语言.表达式的定义可以描述为,任何有值的东西. PHP支持全等运算符===(值和类型均相同)和非全等运算符!==(值或者类型不同). PHP的三元条件运算符貌似和C语言不太一样 ...

jQuery地图插件jVectorMap的简单使用

1.官网下载jVectorMap插件压缩文件 官网地址:http://www.jvectormap.com/ 2.解压文件包括jVectorMap库及基础样式表,编写Html文件,引入jQuery框架 ...

接触node第一步

趁着工作不忙,今天来系统记录一下安装node环境: 1.node下载地址为:https://nodejs.org/en/,检查是否安装成功:如果输出版本号,说明我们安装node环境成功:node -v ...

PAT 1087 有多少不同的值(20)(STL-set代码)

1087 有多少不同的值(20 分) 当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数 ...

更多推荐