傅氏分析与小波分析实验的MATLAB程序源码

源代码在线查看: 傅氏分析与小波分析.txt

软件大小: 2 K
上传用户: liu2000dz
关键词: MATLAB 傅氏 小波分析
下载地址: 免注册下载 普通下载 VIP

相关代码

				傅氏分析与小波分析
				11.1.1傅氏分析
				    
				11.1.2小波分析
				11.2 观察与实验
				11.2.1 信号频谱分析
				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');   %显示完全重构后的信号  】
				11.2.4多尺度分解与重构
				xsf11_
				【  clear;
				load singal1;                           %装载模拟信号
				ls=length(s);
				t=[0:ls-1]*dalt;
				subplot(711);plot(t,s);Ylabel('S');     %显示原始信号 
				    [C,L]=wavedec(s,3,'db4');            %用小波db4对信号进行多尺度分解(三层)
				C3=appcoef(C,L,'db4',3);                %提取最低频分解系数
				D3=detcoef(C,L,3);                         %提取次低频分解系数
				D2=detcoef(C,L,2);                        %提取次高频分解系数
				D1=detcoef(C,L,1);                        %提取最高频分解系数
				subplot(789);plot(C3);Ylabel('C');
				subplot(7,8,10);plot(D3);
				subplot(746);plot(D2); 
				subplot(724);plot(D1); 
				SRC3=wrcoef('a',C,L,'db4',3);             %用最低频分解系数重构
				SRD3=wrcoef('d',C,L,'db4',3);             %用次低频分解系数重构
				SRD2=wrcoef('d',C,L,'db4',2);             %用次高频分解系数重构
				SRD1=wrcoef('d',C,L,'db4',1);             %用最高频分解系数重构
				subplot(713);plot(t,SRC3);Ylabel('SRC3');
				subplot(714);plot(t,SRD3);Ylabel('SRD3');
				subplot(715);plot(t,SRD2);Ylabel('SRD2');
				subplot(716);plot(t,SRD1);Ylabel('SRD1');
				SR=waverec(C,L,'db4');                    %对信号进行完全重构
				subplot(717);plot(t,SR);Ylabel('SR'); 】
							

相关资源