|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
如何利用小波获得信号的频率和幅值 请高手指点 谢谢
下面是我使用的小波进行时频分析,其中有什么错误请大家指出来,在程序里如何实现幅值的提取 ?
clear all;
clc;
fs=1024; %采样频率
f1=50;
f2=200;
t1=0;
t2=1;
t=t1:1/fs:t2;
FF=500;%显示的频率最大值
s1=sin(2*pi*f1*t);s2=sin(2*pi*f2*t); %两个不同频率正弦信号合成的仿真信号
s=[s1(1:500),s2(501:end)];
% s=s1+s2;
% fs=1000;t1=1:300;t2=301:600;t3=601:1024;
% x1=sin(2*pi*50*t1/fs);
% x2=sin(2*pi*100*t2/fs);
% x3=sin(2*pi*200*t3/fs);
% x=[x1 x2 x3];
% t=[t1 t2 t3];
%%%%%%%%%%%%%%%%%小波时频图绘制%%%%%%%%%%%%%%%%%%
wavename='cmor3-3';
totalscal=256; %尺度序列的长度,即scal的长度
wcf=centfrq(wavename); %小波的中心频率
cparam=2*wcf*totalscal; %为得到合适的尺度所求出的参数
a=totalscal:-1:1;
scal=cparam./a; %得到各个尺度,以使转换得到频率序列为等差序列
coefs=cwt(s,scal,wavename); %得到小波系数
f=scal2frq(scal,wavename,1/fs); %将尺度转换为频率
% imagesc(t,f,abs(coefs)); %绘制色谱图
colorbar;
contour(t,f,abs(coefs));
set(gca,'xlim',[t1 t2],'ylim',[0 FF]);
% Create xlabel
xlabel('{\itt}/s','FontSize',10.5,'FontName','Times New Roman');
% Create ylabel
ylabel('{\itf}/Hz','FontSize',10.5,'FontName','Times New Roman');
title('小波变换时频图','FontSize',10.5,'FontName','仿宋');
|
|