• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Matlab
  • 标签: matlab  

资源简介

Matlab小波分解和重构算法-db2.m
这是我自编的一个小波分解和重构的程序。重构部分就没有画出近似部分和细节部分的频谱图了。跟分解过程是相反的过程。
运行结果:
Figure15.jpg 小波分解和重构算法
Figure16.jpg 小波分解和重构算法
Figure17.jpg 小波分解和重构算法
Figure18.jpg 小波分解和重构算法

资源截图

代码片段和文件信息

v1=100;%载波频率1%
v2=200;%载波频率2%
v3=400;%载波频率3%
r=1000;%采样频数%
k=1:100;
t=(k-1)/r;%离散时间%
s=sin(2*pi*v1*t)+sin(2*pi*v2*t)+sin(2*pi*v3*t);%由三个不同频率正玹组合的信号%
g0=[0.68301;1.18301;0.31699;-0.18301];%分解高通滤波系数%
k=[0;1;2;3];
g1=flipud(g0).*(-1).^k;%分解低通滤波系数%
h0=flipud(g0)/2;%重构高通滤波系数%
h1=flipud(g1)/2;%重构低通滤波系数%

%分解过程%

x=conv(sh0);
a0=x(1:2:length(x));%卷积后采样获得第一级分解近似部分%
x=conv(sh1);
w0=x(1:2:length(x));%卷积后采样获得第一级分解细节部分%
x=conv(a0h0);
a1=x(1:2:length(x));%卷积后采样获得第二级分解近似部分%
x=conv(a0h1);
w1=x(1:2:length(x));%卷积后采样获得第二级分解细节部分%

figure(1); %画出信号图和其频谱图%
subplot(211)plot(s)
ylabel(‘signal‘);
subplot(212)stem(linspace(-r/4r/4100)abs(fftshift(fft(s))));
ylabel(‘幅度谱‘);

figure(2)%画出第一级近似部分与细节部分的时间和频谱图%
subplot(221)plot(a0)
ylabel(‘a_0‘);
subplot(222)stem(linspace(-r/4r/452)abs(fftshift(fft(a0))));
ylabel(‘第一级解调近似部分幅度谱‘);

subplot(223)plot(w0)
ylabel(‘w_0‘);
subplot(224)stem(linspace(-r/4r/452)abs(fftshift(fft(w0))))
ylabel(‘第一级解调细节部分幅度谱‘);

figure(3)%画出第二级近似部分与细节部分的时间和频谱图%
subplot(2

评论

共有 条评论