小波包分解相关问题总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⼩波包分解相关问题总结
⼀、⼩波包分解树节点与信号⼦空间频带的对应关系
1. ⼦空间频带带宽
设采样频率是 fs,则第 N 层的每个⼦带带宽为
bandwidth = fs/2 / (2^N)
2. 最后⼀层的频带排序
并不是按照由低到⾼。
参考《⼩波包分解树节点与信号⼦空间频带的对应关系及其应⽤》
2. ⼩波包时频图的绘制
3. 关于⼩波包分解的采样频率
先引⽤⽹上的⼀段回答:
在⼩波分解中,由于其理论并⾮完全的频域处理⽅法,所以通常不太关⼼其频率的数值,都只关⼼采样点数(你可以看到在matlab的⼩波⼯具箱中很少在处理结果中标注HZ,就是因为重构分解结果后牵扯⼩波函数本⾝性质,不好说清其准确的hz 数,还有⼩波变换本⾝理论中某些概念不宜⽤纯频域信号处理的理论概念解释,所以在⼩波应⽤中通常也不太关注其频域特性。
因为好不容易可以在时域中就可处理何必再去过多关⼼频域的东西呢)。
从回答可知⼩波包分解只关⼼采样点数,也就是说,只与实际的采样频率 fs 有关。
⼀旦信号以 fs 采集,那么,⼩波包分解的结果就确定了。
它不像 FFT,可以再另设⼀个采样频率。
举例来说,信号以 fs = 10000 Hz 采集,⽤ FFT 分析时,可以设 fs = 500 Hz,这样得到频谱的最⾼值就是 250 Hz。
但⼩波包分解不能这样,以 fs = 10000Hz 采样,那么⼩波包分解结果就永远会包含 0~ 5000 Hz 的范围。
如果我们要实现0~250Hz 的范围,就只能改变原始的 fs。
在数据处理中, fs 是给定的,数据也是确定的,⽆法更改,这时,我们可以通过对数据进⾏等间隔的重采样,⼈⼯降低其 fs。
以下三个位对⽐程序。
fs = 1000;
t = 0:1/fs:2;
y = sin(128*pi*t) + sin(256*pi*t); % sine of periods 64 and 128.
level = 3;
wpt = wpdec(y,level,'sym8');
[Spec,Time,Freq] = wpspectrum(wpt,fs,'plot');
e=wenergy(wpt);
figure
bar(e);
title(['第 ',num2str(i), ' 层']);
for j=1:length(e)
text(j-0.2,e(j)+20,num2str(e(j),'%2.2f'));
end
%% 1/2 length
figure
fs = 1000;
t = 0: 1/fs: 1;
y = sin(128*pi*t) + sin(256*pi*t); % sine of periods 64 and 128.
level = 3;
wpt = wpdec(y,level,'sym8');
[Spec,Time,Freq] = wpspectrum(wpt,fs,'plot');
e=wenergy(wpt);
figure
bar(e);
title(['第 ',num2str(i), ' 层']);
for j=1:length(e)
text(j-0.2,e(j)+20,num2str(e(j),'%2.2f'));
end
%% 1/2 fs
fs = 500;
figure
t = 0: 1/fs: 2;
y = sin(128*pi*t) + sin(256*pi*t); % sine of periods 64 and 128.
level = 3;
wpt = wpdec(y,level,'sym8');
[Spec,Time,Freq] = wpspectrum(wpt,fs,'plot');
e=wenergy(wpt);
figure
bar(e);
title(['第 ',num2str(i), ' 层']);
for j=1:length(e)
text(j-0.2,e(j)+20,num2str(e(j),'%2.2f'));
end
⽐较⼀下三种情况的最后⼀层能量分布,我们可以发现,当改变 fs 时,能量分布也相应更改,这时由每⼀⼦带的带宽改变造成的。
来⾃为知笔记(Wiz)。