程序代码:- clear all;clc;
- f1=16.7;% 频率1
- f2=33.4;
- f3=50.1;
- Fs=1000; % 采样频率
- Ts=1/Fs; % 采样间隔
- N=1024; % 采样点数
- t=[0:1/Fs:(N-1)/Fs]; %采样时刻
- lev=5;
- x=sin(2*pi*f1*t);
- figure(1);
- plot(t,x);
- %%小波分解
- [C,L]=wavedec(x,lev,'db10'); %C由[cAj,cDj,cDj-1,...,cD1]
- %提取多尺度小波变换的高频系数
- figure(2);
- lev_1=lev+1;
- for i=1:lev
- cD=detcoef(C,L,i);
- subplot(lev_1,1,i)
- plot(cD);
- ylabel(['cD',num2str(i)]);
- title(['Detail cD',num2str(i)]);
- end
- %提取多尺度小波变换的低频系数
- figure(2);
-
- cA=appcoef(C,L,'db10',lev);
- subplot(lev_1,1,lev_1)
- plot( cA);
- ylabel(['cA',num2str(lev)]);
- title(['Approximation cA',num2str(lev)])
- %%小波重构
- figure(3);
- for i=1:lev
- D=wrcoef('d',C,L,'db10',i);
- subplot(lev_1,1,i)
- plot(D);
- ylabel(['D',num2str(i)]);
- title(['Detail D',num2str(i)]);
- end
- figure(3);
-
- A=wrcoef('a',C,L,'db10',lev);
- subplot(lev_1,1,lev_1)
- plot( A);
- ylabel(['A',num2str(lev)]);
- title(['Approximation A',num2str(lev)]);
-
- %%计算能量谱
- figure(4);
- [Ea,Ed] = wenergy(C,L);
- EE1=sum(Ed)+Ea;
- for i=1:lev
- Ed1(lev_1-i)= Ed(i);
- end
- E1=[Ea Ed1]/EE1;
- x2=1:lev_1; %p=rand(6,1);
- bar(x2,E1);
- str = cell(1,lev_1); %建立单元数组1*10的空数组
- for i = 0:lev
- str{i+1} = ['E',num2str(i)]; %num2str(i)数字转为字符串输出。
- end
- set(gca,'xticklabel',str)
复制代码 |