小弟目前接触到小波理论,
使用到了"离散小波转换" 使用的程式码大致如下:
=============================================================
s=1*sin(2*pi*50*t) %讯号为一50赫兹Sin函数
[ca1, cd1] = dwt(s, 'db1'); % 采用db1小波基分解 (ca1,cd1 is in freq. domain)
a1 = upcoef('a', ca1, 'db1', 1, Len); % 采用db1小波基分解 (ca1,cd1 is in freq. domain)
d1 = upcoef('d', cd1, 'db1', 1, Len); % 从系数得到细节讯号(=反小波转换idwt)
=============================================================
其中我将a1,d1以及s去做fft频谱分析,得到下图:
https://imgur.com/4LQnM6Y
右图是原始讯号的fft,得到在50跟950Hz的地方有值,表示转换是正确的。
再来看到左图跟中间的频谱图,在(500+50)Hz以及(500-50)Hz的部分竟然有值,
但这是原始讯号并不存在的频率。
照理来说小波转换,还原之后的高低频讯号做FFT之后,不应该出现讯号本身没有的频率吧?
还是我对小波转换有什么误会呢?
附上我的Matlab Code, https://reurl.cc/24LKRv GOOGLE云端
- -
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.129.25 (台湾)
※ 文章网址: https://www.ptt.cc/bbs/MATLAB/M.1571420693.A.F8A.html
※ 编辑: abcc50717 (42.73.129.25 台湾), 10/19/2019 01:50:48
※ 编辑: abcc50717 (42.73.129.25 台湾), 10/19/2019 01:54:56