收藏 分享(赏)

Mallat分解算法和合成算法程序.doc

上传人:精品资料 文档编号:10543929 上传时间:2019-11-27 格式:DOC 页数:5 大小:15.90KB
下载 相关 举报
Mallat分解算法和合成算法程序.doc_第1页
第1页 / 共5页
Mallat分解算法和合成算法程序.doc_第2页
第2页 / 共5页
Mallat分解算法和合成算法程序.doc_第3页
第3页 / 共5页
Mallat分解算法和合成算法程序.doc_第4页
第4页 / 共5页
Mallat分解算法和合成算法程序.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、% Mallat分解算法%f1=50; %构造数据点的函数频率f2=100;fs=2*(f1+f2); %采样频率Ts=1/fs; %采样间隔N=120; %采样点数n=1:N;dec0=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); %用两个正弦函数构造数据点%定义的正弦波形形成的时域图以及频域图%figure(1)subplot(2,1,1)plot(dec0);title(两个余弦波混合形成的波形)subplot(2,1,2)stem(abs(fft(dec0);title(混合信号的频域图)lowpass=wfilters(db30,l); %返回Daubec

2、hies 小波的低通滤波器highpass=wfilters(db30,h); %返回Daubechies 小波的高通滤波器lowpass=lowpass,zeros(1,N-length(lowpass); %在数据点末尾补零到N点,方便后续卷积运算highpass=highpass,zeros(1,N-length(highpass); figure(2)subplot(2,1,1);stem(abs(fft(lowpass); %画出低通滤波器的频域图xlabel(Hz);title(低通滤波器频域图);subplot(2,1,2);stem(abs(fft(highpass);xlab

3、el(Hz);title(高通滤波器频域图)dec1_low=ifft(fft(dec0).*fft(lowpass); %低频滤波dec1_high=ifft(fft(dec0).*fft(highpass); %高频率波dec2_low=ifft(fft(dec1_low).*fft(lowpass);dec2_high=ifft(fft(dec1_low).*fft(highpass);%多次分解信号的是域图%figure(3)subplot(2,2,1)plot(real(dec1_low); %画出第一次信号分解的低频分量title(第一次信号分解的低频分量时域图);subplot(

4、2,2,2)plot(real(dec1_high);title(第一次信号分解的高频分量时域图);subplot(2,2,3)plot(real(dec2_low);title(第二次信号分解的低频分量时域图);subplot(2,2,4)plot(real(dec2_high);title(第二次信号分解的高频分量时域图);%多次分解信号相对应的频域信号 %figure(4)subplot(2,2,1)stem(abs(fft(dec1_low); title(第一次信号分解的低频分量频域图)subplot(2,2,2)stem(abs(fft(dec1_high);title(第一次信号

5、分解的高频分量频域图);subplot(2,2,3)stem(abs(fft(dec2_low);title(第二次信号分解的低频分量频域图)subplot(2,2,4)stem(abs(fft(dec2_high);title(第二次信号分解的高频分量频域图)% Mallat合成算法 %dec2_low=dyaddown(dec2_low); %降采样,隔二取一dec2_high=dyaddown(dec2_high); dec2_low=dyadup(dec2_low); %上采样,即两个点中间插入一个值为零的点dec2_high=dyadup(dec2_high);dec2_low=de

6、c2_low(1,1:N); %去掉多余项,即数据末尾的零dec2_high=dec2_high(1,1:N);lowpass1=lowpass(end:-1:1); %重新构造低通滤波器highpass1=highpass(end:-1:1); %重新构造高通滤波器lowpass1=circshift(lowpass1,1); %位置调整圆周右移一位highpass1=circshift(highpass1,1);%位置调整圆周右移一位dec2_low=ifft(fft(dec2_low).*fft(lowpass1); %低频滤波dec2_high=ifft(fft(dec2_high).

7、*fft(highpass1); %高频滤波dec1_low=dec2_low+dec2_high; %用第二次分解得到的信号合成第一次分解信号的低频分量dec1_low=dyaddown(dec1_low); %降采样,隔二取一dec1_low=dyadup(dec1_low); %上采样,两个点中间插入一个值为零的点dec1_high=dyaddown(dec1_high);dec1_high=dyadup(dec1_high);dec1_low=dec1_low(1,1:N); %去掉多余项,即数据末尾的零dec1_high=dec1_high(1,1:N);dec1_low=ifft(

8、fft(dec1_low).*fft(lowpass1); %低频滤波dec1_high=ifft(fft(dec1_high).*fft(highpass1); %高频滤波dec=dec1_low+dec1_high; %重构信号%与原来的信号作比较% 与图3作比较,以下是重构的信号的时域图%figure(5)subplot(2,2,1)plot(real(dec1_low);title(重构的第一次分解信号的低频分量时域图);subplot(2,2,2)plot(real(dec1_high);title(重构的第一次分解信号的高频分量时域图);subplot(2,2,3)plot(rea

9、l(dec2_low);title(重构的第二次分解信号的低频分量时域图);subplot(2,2,4)plot(real(dec2_high);title(重构的第二次分解信号的高频分量时域图);%与图4作比较,以下是重构信号的频域图%figure(6)subplot(2,2,1)stem(abs(fft(dec1_low);title(重构的第一次分解信号的低频分量频域图);subplot(2,2,2)stem(abs(fft(dec1_high);title(重构的第一次分解信号的高频分量频域图);subplot(2,2,3)stem(abs(fft(dec2_low);title(重构的第二次分解信号的低频分量频域图);subplot(2,2,4)stem(abs(fft(dec2_high);title(重构的第二次分解信号的高频分量频域图);%将重构信号和原始信号画在同一个途中,看比较%figure(7)plot(real(dec),r,linewidth,2);hold on;plot(dec0);legend(重构信号,原始信号)title(重构信号与原始信号比较)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报