1,关于小波变换的原理不再总结,以前转载过别人的文章,这篇是工程实现的原理总结。

2,关于小波变换的实现有mallat滤波器组的方法和提升小波的方法。

3,mallat滤波器组的方法大致框架如下

其中G和H的关系式为

而H可以由matlab中wfilters命令得到。

下图是基于查找表的mallat算法框架

用matlab卷积的方法实现的小波分解与合成,弄了一个正弦序列,长度1000,有噪声,通过wavedec得到分解后的序列然后通过wfilter生成的滤波器系数与正弦序列卷积然后抽取得到新的序列。

[c,l]=wavedec(ns,4,'db1');
[l_d,h_d,l_r,h_r]=wfilters('db1');
tempm=conv(ns,l_d);
tempn=conv(ns,h_d);
m=tempm(2:2:1000);
n=tempn(2:2:1000);

如果想要合成的话就先插值然后经过重构滤波器之后相加。

m_up=zeros(1,1000);
n_up=zeros(1,1000);
m_up(2:2:1000)=m;
n_up(2:2:1000)=n;
m_back=conv(m_up,l_r);
n_back=conv(n_up,h_r);
ns_back=m_back+n_back;

去掉第一个元素就得到之前的序列。

当然,可以用循环卷积代替卷积得到卷积结果,参考例子(转载)

小波谱分析mallat算法经典程序

clc;clear;
%% 1.正弦波定义
f1=50; % 频率1
f2=100; % 频率2
fs=2*(f1+f2); % 采样频率
Ts=1/fs; % 采样间隔
N=120; % 采样点数
n=1:N;
y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); % 正弦波混合
figure(1)
plot(y);
title('两个正弦信号')
figure(2)
stem(abs(fft(y)));
title('两信号频谱')
%% 2.小波滤波器谱分析
h=wfilters('db30','l'); % 低通
g=wfilters('db30','h'); % 高通
h=[h,zeros(1,N-length(h))]; % 补零(圆周卷积,且增大分辨率变于观察)
g=[g,zeros(1,N-length(g))]; % 补零(圆周卷积,且增大分辨率变于观察)
figure(3);
stem(abs(fft(h)));
title('低通滤波器图')
figure(4);
stem(abs(fft(g)));
title('高通滤波器图')
%% 3.MALLET分解算法(圆周卷积的快速傅里叶变换实现)
sig1=ifft(fft(y).*fft(h)); % 低通(低频分量)
sig2=ifft(fft(y).*fft(g)); % 高通(高频分量)
figure(5); % 信号图
subplot(2,1,1)
plot(real(sig1));
title('分解信号1')
subplot(2,1,2)
plot(real(sig2));
title('分解信号2')
figure(6); % 频谱图
subplot(2,1,1)
stem(abs(fft(sig1)));
title('分解信号1频谱')
subplot(2,1,2)
stem(abs(fft(sig2)));
title('分解信号2频谱')
%% 4.MALLET重构算法
sig1=dyaddown(sig1); % 2抽取
sig2=dyaddown(sig2); % 2抽取
sig1=dyadup(sig1); % 2插值
sig2=dyadup(sig2); % 2插值
sig1=sig1(1,[1:N]); % 去掉最后一个零
sig2=sig2(1,[1:N]); % 去掉最后一个零
hr=h(end:-1:1); % 重构低通
gr=g(end:-1:1); % 重构高通
hr=circshift(hr',1)'; % 位置调整圆周右移一位
gr=circshift(gr',1)'; % 位置调整圆周右移一位
sig1=ifft(fft(hr).*fft(sig1)); % 低频
sig2=ifft(fft(gr).*fft(sig2)); % 高频
sig=sig1+sig2; % 源信号
%% 5.比较
figure(7);
subplot(2,1,1)
plot(real(sig1));
title('重构低频信号');
subplot(2,1,2)
plot(real(sig2));
title('重构高频信号');
figure(8);
subplot(2,1,1)
stem(abs(fft(sig1)));
title('重构低频信号频谱');
subplot(2,1,2)
stem(abs(fft(sig2)));
title('重构高频信号频谱');
figure(9)
plot(real(sig),'r','linewidth',2);
hold on;
plot(y);
legend('重构信号','原始信号')
title('重构信号与原始信号比较')

4,小波提升算法实现小波变换基本原理

5,5-3变换fpga实现框图

6,关于数据的周期对称延拓

转载于:https://www.cnblogs.com/lianjiehere/p/4239342.html

小波变换工程实现原理总结相关推荐

  1. 第3讲、Cadence原理图工程以及原理图库的创建

    本讲的主要内容是使用Cadence新建原理图工程以及原理图库. 首先按上一讲的内容打开"Capture CIS",安装后初次打开可能弹出一个工具选择的界面,如下所示. 图1:初次打 ...

  2. Cadence 17.2 软件使用(2)— OrCAD新建原理图工程和原理图库

    Cadence 17.2 软件使用(2)- OrCAD新建原理图工程和原理图库 一.打开OrCAD 在安装Cadence软件后:Cadence 17.2 软件使用(1)- 软件安装 打开桌面的快捷方式 ...

  3. Cadence学习篇(1) Cadence原理图工程以及原理图库的创建

    文章目录 前言 一.创建原理图库 1.1新建工程 1.2.设置原理图板框 1.3.设置原理图栅格 二.添加多个原理图 2.1.原理图重命名 2.2.原理图编页码 三.放置元器件 3.1.添加库 3.2 ...

  4. Matlab 离散小波变换函数 dwt2() 原理介绍与实验

    文章目录 一.小波变换的原理 1.1 小波变换简介 1.2 CWT和DWT的原理 二.傅里叶变换与DWT的比较 三.Matlab实现图像的二维小波变换 3.1 dwt2()函数介绍 3.2 dwt2( ...

  5. 小波变换的MATLAB原理,[转载]Matlab 小波分析及物理含义

    一.为什么要进行小波变换 最初的原因很简单,傅里叶变换没有时间信息,也就是说,我们不知道傅里叶变换结果频率出现在什么时间,所以出现了时频分析,就是在一张结果图上同时表明信号的频率及其出现的时间, 这样 ...

  6. 微型计算机原理与接口技术哈工程,微型计算机原理与接口技术(第2版)

    摘要: 本书依据国家教委关于高等学校工科非计算机专业"微型计算机原理及应用"课程教学基本要求,参照原国家教委对"微型计算机原理和接口技术"课程的指示精神而编写. ...

  7. 算法工程-Faiss原理和使用总结

    1.Faiss的概念 faiss是一个Facebook AI团队开源的库,全称为Facebook AI Similarity Search,该开源库针对高维空间中的海量数据(稠密向量),提供了高效且可 ...

  8. unity3d 工程原理_Unity3D研究院之两个游戏工程资源同步问题(八十六)

    有的公司是不想让美术和策划有程序权限的,但是Unity在处理团队协作上不太理想,这就造成需要把美术工程的资源同步到程序工程里.目前我有两个方法,各有利弊. 1.由美术或者策划同步 Unity提供了.u ...

  9. 小波变换和Gabor变换

    傅立叶变换       表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合.傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号.许多波形 ...

最新文章

  1. Spring Aop 日志管理及配置文件的详细配置
  2. 励志:读书七年,为了挣钱,我竭尽全力
  3. JavaScript实现depth First Search深度优先搜索算法(附完整源码)
  4. 【团队管理】改造团队成员?
  5. [翻译] 聚集索引表 VS 堆表
  6. bootstrap样式代码案例
  7. 【安卓开发 】Android初级开发(六)Activity生命周期
  8. WordPress登陆插件Erphplogin Pro QQ登陆/微博/微信登录/弹窗登录
  9. poi数据导入arcgis,结合POI数据的道路自动选取方法
  10. 游戏脚本在移动游戏设计中的作用_游戏设计中道具设计分步解说
  11. HTML跳转下一行快捷键,wps常用快捷键有哪些?
  12. SAP HR 导出PA0185 身份证件信息
  13. 为什么博客图片不显示?
  14. Elasticsearch入门 - 简单上手
  15. linux底层技术,Linux后端程序成长关键技术之底层体系结构
  16. ultravnc 设置代理_选择代理记账有何好处及注意事项
  17. android emmc测试软件,鉴别EMMC/UFS如此简单!小工具一键识别闪存
  18. java两周考核期被辞退_试用期被辞退,会影响一整年,或整个职场生涯
  19. 我的App-帝都地铁
  20. Cesium模型制作服务

热门文章

  1. 多项式的ln、exp、快速幂和开根学习小记
  2. java求反字符_java 反取字符串
  3. php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
  4. python内存管理说法错误_python面试题总结1-内存管理机制
  5. 发表论文的十条金玉良言
  6. 正则表达式删除文件中某些列
  7. AtCoder AGC034D Manhattan Max Matching (网络流)
  8. 倒数日怎么设置起始日_起始价131亿!杭州江河汇流区85万方综合体招标延期
  9. c++ 32位有符号的整数_【LeetCode】字符串分类字符串转换整数 (atoi)
  10. python大数字计算时没有响应_linux-为什么在尝试计算非常大的数字时Python会“抢先”挂起?...