声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3266|回复: 3

[小波] 如何利用小波获得信号的频率和幅值 请高手指点 谢谢

[复制链接]
发表于 2011-5-13 21:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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','仿宋');
回复
分享到:

使用道具 举报

发表于 2011-5-29 15:14 | 显示全部楼层
f=scal2frq(scal,wavename,1/fs);   %将尺度转换为频率
下面加个m=abs(f)试试?
发表于 2011-10-25 10:42 | 显示全部楼层
回复 1 # hitdely 的帖子

楼主,你最终算出来结果了吗,我也用了破凰这个方法,但是对于实际信号,效果并不好,可以交流一下啊
发表于 2011-10-26 11:24 | 显示全部楼层
很明显有问题的,你再仔细看下吧
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 07:39 , Processed in 0.072705 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表