采样频率,信号长度(数据点)和离散小波变换的时间范围之间的关系?

时间:2019-05-03 00:05:17

标签: matlab fft wavelet frequency-analysis dwt

如上所述,让Fs为采样频率,L为信号长度,t为时间范围。

就像在Matlab中使用 mdwtdec 以便将多原始信号分解为特定频带一样,我只是注意到分解后的信号在第一级的长度被分成了一半,而在第一级被切开了一半二级信号。

原始信号的时间范围计算:t = 0->(L / Fs)

我的问题是,在每个分解级别中,采样频率Fs是否仍然相同?以及在每个分解级别上如何计算每个明细和近似系数的时间范围。

为了验证离散小波变换的频带,我在本文之后的每个级别上应用了FFT:https://jp.mathworks.com/help/matlab/ref/fft.html?lang=en

根据这篇文章,我的第一个问题需要回答。

非常感谢您。

1 个答案:

答案 0 :(得分:0)

我非常肯定在离散小波变换中,如果需要,时间序列数据或信号将被下采样2倍,这意味着如果我们在我们的数据点中有2 ^ 10或1024个数据点原始时间序列数据,在第一级将其分为2,我们一级的采样频率将为2 ^ 9或512,在第二级将降低为256,依此类推。

但是,在连续小波变换中,它很可能保持不变。

enter image description here

基于参考,我在此处复制了一些您可能要测试和查看的代码,您可能希望减少此处的级别和F的数量,并且可以根据需要定义自己的x:< / p>

 Fs = 1e6;
 t = 0:1/Fs:1-1/Fs;
 x = cos(2*pi*50*t);
 [C,L] = wavedec(x,15,'db4');
 details = detcoef(C,L,'cells');
 d14recon = wrcoef('d',C,L,'db4',14);
 plot(d14recon,'k'); 
 d13recon = wrcoef('d',C,L,'db4',13);
 hold on;
 plot(d13recon,'r');  %look how small the amplitude is

 a13recon = wrcoef('a',C,L,'db4',13);
 plot(a13recon,'b');

有用链接:

我不是专家,您可能可以阅读有关它的更多信息,并找到所需的信息。还有很多关于它的YouTube视频。

Discrete wavelet transform relation to sampling frequency of the signal

Single-level discrete 2-D wavelet transform