小波时频分析的问题
本帖最后由 xiujuan507 于 2016-11-30 18:57 编辑最近要做小波变换时频分析,但是实在不知道从何入手,利用http://forum.vibunion.com/forum. ... %B7%D6%CE%F6&page=1这个帖子里的cwt,scal2frq,centrfq做了一个,但是结果运行不出来,请教各位,cwt中的参量scales有没有具体的要求,还有wavename应该选择什么比较合适呢?我的时域数据是这样的,波的频率也比较低,在10的-3方以下
没人吗{:{19}:} 你的代码是什么样的有改动吗 Triste 发表于 2016-12-1 08:41
你的代码是什么样的有改动吗
没有改动,就照着这个帖子写的 我用好使啊这是结果是不是你matlab的问题
Triste 发表于 2016-12-2 08:45
我用好使啊这是结果是不是你matlab的问题
好漂亮的图哈,可否分享代码哈! Triste 发表于 2016-12-2 08:45
我用好使啊这是结果是不是你matlab的问题
谢谢大神,可否帮我看一下?我的数据是这样的,代码就是把输入的时间t,信号s换为自己的数据,出错了(附图)意思是数据太多了,可是我的数据就是这样的,采样频率是1HZ的,是不是cwt不用处理这么多数据?我该如何办呢?谢谢
osbertbovey 发表于 2016-12-3 14:58
好漂亮的图哈,可否分享代码哈!
clear;clf;close all;
clc;
fs=1024; %采样频率
f1=100;
f2=200;
t=0:1/fs:1;
s=sin(2*pi*f1*t)+sin(2*pi*f2*t);%两个不同频率正弦信号合成的仿真信号
%%%%%%%%%%%%%%%%%小波时频图绘制%%%%%%%%%%%%%%%%%%
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); %将尺度转换为频率
figure(1),plot(t,s); %绘制原始信号图
figure(2); %绘制信号的傅里叶变换的频谱图
N=length(t);
y=fft(s,N);
amg=abs(y);
plot(*fs/N,amg(1:N/2)*2/N);
figure(3);
c=cwt(s,a,wavename,'plot'); %直接使用尺度
figure(4),imagesc(t,f,abs(coefs)); %绘制色谱图
colorbar;
xlabel('时间 t/s');
ylabel('频率 f/Hz');
title('小波时频图');
用的就是楼上链接里分享的代码 xiujuan507 发表于 2016-12-4 10:06
谢谢大神,可否帮我看一下?我的数据是这样的,代码就是把输入的时间t,信号s换为自己的数据,出错了(附 ...
你考虑一下是不是变量重合或者矩阵超出维数等原因造成的 Triste 发表于 2016-12-7 08:40
你考虑一下是不是变量重合或者矩阵超出维数等原因造成的
谢谢大神,我还有个疑问,SCALE的选取到底应该是多少比较合适呢?参考文献里大多是选取256,56之类的,按照小波的定义,SCALE表示了尺度的伸缩,应该选取多少都可以,那么这个值是否与信号频率有关呢?我要处理的波动频率非常低,在10的-3次方以下,那么应该选取多少呢? xiujuan507 发表于 2016-12-10 11:02
谢谢大神,我还有个疑问,SCALE的选取到底应该是多少比较合适呢?参考文献里大多是选取256,56之类的,按 ...
一般都用256 Triste 发表于 2016-12-12 08:55
一般都用256
好的,谢谢 不错的讨论学习一下不过这个代码可是很久了
页:
[1]