⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 С

📁 利用MATLAB中小波信号“db4 对信号分解和重构
💻
字号:
二 主体部分信号频谱分析 
xsf11_1.m (信号生成与显示程序) 
【 dalt=0.002; %采样间隔 
t=0:0.002:1.2;  
rn=randn(1,length(t));rn(1:300)=0; %产生随机序列 
s=sin(2*pi*10*t)+sin(2*pi*50*t)+rn; %生成模拟信号 
save singal1 dalt s; 
clear; 
load singal1; 
t=[0:length(s)-1]*dalt;plot(t,s,'k');Ylabel('幅值');Xlabel('时间'); 
title('模拟信号'); 】 

xsf11_2.m (模拟信号singal1的频谱分析) 
【 clear;load singal1; t=[0:length(s)-1]*dalt; 
subplot(211);plot(t,s); Ylabel('幅值'); Xlabel('时间');title('原始信号'); 
fs=fft(s,512); %快速傅氏变换 
pp=fs.*conj(fs)/512; %计算功率谱 
ff=(0:255)/512/dalt; %计算各点对应的频率值 
subplot(212);plot(ff,pp(1:256)); Ylabel('功率谱密度');Xlabel('频率'); 
title('信号功率谱'); 】 
11.2.2 如何得到小波函数 
◆用下面的程序产生并显示与小波db4相关联的四个滤波器组. 
xsf11_3.m 
【 wname='db4'; 
[LD,HD,LR,HR]=wfilters(wname); 
subplot(221);stem(LD);title('低通分解滤波器');grid; 
subplot(223);stem(LR);title('低通重构滤波器');grid; 
subplot(222);stem(HD);title('高通分解滤波器');grid; 
subplot(224);stem(HR);title('高通重构滤波器');grid; 】  
运行结果见图11.3. 
◆用下面的程序观察小波函数db4的迭代生成过程.  
xsf11_4.m 
【 for I=1:10 
[phi,psi,xval]=wavefun('sym4',I); 
plot(xval,psi+2*I);title('小波函数的生成过程'); 
hold on 
end 
hold off 】 
结果见图11.4. 
11.2.3单尺度一维离散小波分解与重构 
xsf11_5.m(信号singal1的单尺度离散小波分解与重构) 
【 clear; 
load singal1; %装载模拟信号 
ls=length(s); 
t=[0:ls-1]*dalt; 
subplot(511);plot(t,s);Ylabel('S'); %显示原始信号 
[C,D]=dwt(s,'db4'); %用小波db4对信号进行单尺度分解 
subplot(523);plot(C);Ylabel('C'); %显示低频分解系数 
subplot(524);plot(D);Ylabel('D'); %显示高频分解系数 
SCR=upcoef('a',C,'db4',1,ls); %用低频分解系数重构 

SDR=upcoef('d',D,'db4',1,ls); %用高频分解系数重构 
subplot(513);plot(t,SCR);Ylabel('SCR'); %显示低频重构信号 
subplot(514);plot(t,SDR);Ylabel('SDR'); %显示高频重构信号 
SR=idwt(C,D,'db4',ls); %对信号进行完全重构 
subplot(515);plot(t,SR);Ylabel('SR'); %显示完全重构后的信号 】

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -