小波变换工程实现原理总结
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
小波变换工程实现原理总结相关推荐
- 第3讲、Cadence原理图工程以及原理图库的创建
本讲的主要内容是使用Cadence新建原理图工程以及原理图库. 首先按上一讲的内容打开"Capture CIS",安装后初次打开可能弹出一个工具选择的界面,如下所示. 图1:初次打 ...
- Cadence 17.2 软件使用(2)— OrCAD新建原理图工程和原理图库
Cadence 17.2 软件使用(2)- OrCAD新建原理图工程和原理图库 一.打开OrCAD 在安装Cadence软件后:Cadence 17.2 软件使用(1)- 软件安装 打开桌面的快捷方式 ...
- Cadence学习篇(1) Cadence原理图工程以及原理图库的创建
文章目录 前言 一.创建原理图库 1.1新建工程 1.2.设置原理图板框 1.3.设置原理图栅格 二.添加多个原理图 2.1.原理图重命名 2.2.原理图编页码 三.放置元器件 3.1.添加库 3.2 ...
- Matlab 离散小波变换函数 dwt2() 原理介绍与实验
文章目录 一.小波变换的原理 1.1 小波变换简介 1.2 CWT和DWT的原理 二.傅里叶变换与DWT的比较 三.Matlab实现图像的二维小波变换 3.1 dwt2()函数介绍 3.2 dwt2( ...
- 小波变换的MATLAB原理,[转载]Matlab 小波分析及物理含义
一.为什么要进行小波变换 最初的原因很简单,傅里叶变换没有时间信息,也就是说,我们不知道傅里叶变换结果频率出现在什么时间,所以出现了时频分析,就是在一张结果图上同时表明信号的频率及其出现的时间, 这样 ...
- 微型计算机原理与接口技术哈工程,微型计算机原理与接口技术(第2版)
摘要: 本书依据国家教委关于高等学校工科非计算机专业"微型计算机原理及应用"课程教学基本要求,参照原国家教委对"微型计算机原理和接口技术"课程的指示精神而编写. ...
- 算法工程-Faiss原理和使用总结
1.Faiss的概念 faiss是一个Facebook AI团队开源的库,全称为Facebook AI Similarity Search,该开源库针对高维空间中的海量数据(稠密向量),提供了高效且可 ...
- unity3d 工程原理_Unity3D研究院之两个游戏工程资源同步问题(八十六)
有的公司是不想让美术和策划有程序权限的,但是Unity在处理团队协作上不太理想,这就造成需要把美术工程的资源同步到程序工程里.目前我有两个方法,各有利弊. 1.由美术或者策划同步 Unity提供了.u ...
- 小波变换和Gabor变换
傅立叶变换 表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合.傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号.许多波形 ...
最新文章
- Spring Aop 日志管理及配置文件的详细配置
- 励志:读书七年,为了挣钱,我竭尽全力
- JavaScript实现depth First Search深度优先搜索算法(附完整源码)
- 【团队管理】改造团队成员?
- [翻译] 聚集索引表 VS 堆表
- bootstrap样式代码案例
- 【安卓开发 】Android初级开发(六)Activity生命周期
- WordPress登陆插件Erphplogin Pro QQ登陆/微博/微信登录/弹窗登录
- poi数据导入arcgis,结合POI数据的道路自动选取方法
- 游戏脚本在移动游戏设计中的作用_游戏设计中道具设计分步解说
- HTML跳转下一行快捷键,wps常用快捷键有哪些?
- SAP HR 导出PA0185 身份证件信息
- 为什么博客图片不显示?
- Elasticsearch入门 - 简单上手
- linux底层技术,Linux后端程序成长关键技术之底层体系结构
- ultravnc 设置代理_选择代理记账有何好处及注意事项
- android emmc测试软件,鉴别EMMC/UFS如此简单!小工具一键识别闪存
- java两周考核期被辞退_试用期被辞退,会影响一整年,或整个职场生涯
- 我的App-帝都地铁
- Cesium模型制作服务
热门文章
- 多项式的ln、exp、快速幂和开根学习小记
- java求反字符_java 反取字符串
- php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
- python内存管理说法错误_python面试题总结1-内存管理机制
- 发表论文的十条金玉良言
- 正则表达式删除文件中某些列
- AtCoder AGC034D Manhattan Max Matching (网络流)
- 倒数日怎么设置起始日_起始价131亿!杭州江河汇流区85万方综合体招标延期
- c++ 32位有符号的整数_【LeetCode】字符串分类字符串转换整数 (atoi)
- python大数字计算时没有响应_linux-为什么在尝试计算非常大的数字时Python会“抢先”挂起?...