新的signal processing (信号处理)方法
新的signal processing (信号处理)方法先问问题:
如果现在有一段signal (信号), 名为 s(j)=sin(0.5j).
先试将s(j) 乘以sin(0.1j), 即问Σsin(0.5j)*sin(0.1j) 的值是多少?
再将s(j) 乘以sin(0.3j), 即问Σsin(0.5j)*sin(0.3j) 的值是多少?
再将s(j) 乘以sin(0.5j), 即问Σsin(0.5j)*sin(0.5j) 的值是多少?
好了, 大家应该了解, Σsin(0.5j)*sin(0.1j) 和Σsin(0.5j)*sin(0.3j) 都是一个很少的数字,
但是Σsin(0.5j)*sin(0.5j) 却是一个很大很大的数字.
这是其中一种计算机用来侦测出unknown signal (未明信号)的方法.
例如给予未明信号 sin(0.47j), 但假设我们不知道中间的数字是0.47,
我们可以用计算机将sin(0.01j), sin(0.02j), sin(0.03j), … 不停地乘以未明信号那里,
直到0.47时, 乘出的数值将会极大,令我们知道未明信号中间的数字是0.47.
当然,现在可以用matlab中的command – spectrum代劳, spectrum可以成功侦测出未明信号.
以下是将s(j)=sin(0.47j) 放在spectrum的图:
s(j)=sin(0.47j), j=1,2,3,…,100.
dt=1/(2π)
在matlab 写下:
=spectrum(s,max(size(s)),0,hanning(max(size(s))),1/dt);
plot(f,p(:, 1));
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image001.gif
现在假设 s(j)=sin(0.5j), s(j) 是永远限制在 -1至1之间,
我们用matlab 在-1至1之间产生大量random data: n(j), 即 -1≤n(j) ≤1.
设定 r(j)=n(j)+0.1*s(j), 比较一下 spectrum of n(j) 和 spectrum of r(j) 的分别.
以下是n(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image002.gif
以下是r(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image003.gif
以下是spectrum of n(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image004.gif
以下是spectrum of r(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image005.gif
我们可以看见即使0.1*s(j) 的体积只有 n(j) 的十分之一, spectrum 也可以侦测出来.
我们再用spectrum去侦测r=n+0.09*s, r=n+0.08*s, r=n+0.07*s,
可以见到随s的数值越少, spectrum越无法侦测出signal s.
以下是spectrum of r(j)=n(j)+0.09*s(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image006.gif
以下是spectrum of r(j)=n(j)+0.08*s(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image007.gif
以下是spectrum of r(j)=n(j)+0.07*s(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image008.gif
现在知道了随s的数值越少, spectrum越无法侦测出 s,
我们现在就试验增加一些方法, 令即使随s的数值减少, spectrum也可以侦测出 s.
最重要的地方开始了, 我们定义一个本方法最重要的函数g:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image009.gif
以后不会直接用spectrum去侦测信号r, 而是先把r输入函数g里面, 才用spectrum侦测.
也就是说, 我们是看spectrum of g(r), 而不是spectrum of r.
而且还可以把信号r输入函数g里面多次, 即是看spectrum of g(g(r)), spectrum of g(g(g(r))), …
假设s(j)=sin(0.5j), r(j)=n(j)+0.05*s(j).
比较一下spectum of r, spectum of g(r), spectrum of g(g(r)), … 的分别.
以下是spectrum of r(j)=n(j)+0.05*s(j) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image010.gif
以下是spectrum of g(r) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image011.gif
以下是spectrum of g(g(r)) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image012.gif
以下是spectrum of g(g(g(r))) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image013.gif
以下是spectrum of g(g(g(g(r)))) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image014.gif
以下是spectrum of g(g(g(g(g(r))))) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image015.gif
以下是spectrum of g(g(g(g(g(g(r)))))) 图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image016.gif
以上图说明把信号r输入函数g里面次数越多, spectrum越可以把r中的s侦测出来.
但次数又不能太多, 如果把信号r输入函数g里面多过4次就会失效了.
为何会有这种现象?
以下内容全是估计,没有证明,只是把想法写出.
先假设s=sin(x), 观看s, g(s), g(g(s)), g(g(g(s))),… 的分别.
以下是sin(x) 的图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image017.gif
以下是g(s) 的图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image018.gif
以下是g(g(s)) 的图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image019.gif
以下是g(g(g(s))) 的图:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image020.gif
如果把signal (信号) s输入函数g里面, 我们发现整个信号内全部数值均一齐减少,
但在数值减少的同时, wavelength (波长) 却没有改变,
也就是说在wavelength 不变而整个signal 数值下降的情形下,
wavelength 的值对于整个signal 的值是比例上升,
结果wavelength更容易被spectrum侦测出.
重申以上内容全属估计,没有证明的.
以下是g(g(g(s))) 的图, 可以看出当signal输入函数g后, wavelength不变:
http://myweb.polyu.edu.hk/%7Ebewllee/figure/signal_processing/image021.gif
如想多了解这方法可以看此paper:
W.L. Lee, S.K. Tang, and C.M. Chan
Detecting weak sinusoidal signals embedded in a non-stationary random broadband noise—A simulation study Journal of Sound and Vibration
http://dx.doi.org/10.1016/j.jsv.2007.03.024
其它问题:
有没有办法自行创造一个新的函数, 例如f,
令到我们把质数输入函数f时得出1,
把合成数输入函数f时得出0? 这个不错,顶一下,让更多的人看到. 好方法,楼主能否给一份该论文的文件?谢谢了!shenyongjun@sohu.com 说到底还是频域上的滤波嘛,要是混响信号这样频域上差不多的还是没办法 收到,谢谢楼主了! 不对啊
怎么我按照给的信号试了以后得到到帖子里面图示的结果? 我发现用randn产生噪声时,不能得到楼主所提结果
但是用rand产生噪声可以 我也是在 matlab 用rand 而不是用 randn 的,
randn 的情况没有试过…………….
matlab 中的 rand 和 randn 有什么分别呢?
回复 #8 wllee 的帖子
一个服从均匀分布,一个高斯分布.help randn
help rand 也就是说, 这个方法是不能在高斯分布所产生的噪声的环境之下进行侦测,
只可以在均匀分布所产生的噪声的环境之下进行侦测了. 不幸+失败………… 不知道各位有沒有用過MathCAD軟件﹐用它做時域或頻域數據的處理比較快﹗ 我觉得可能对高斯分布的噪声确实不行
不过看他的那篇发表在JSV上的论文好像没提到这一点啊
[ 本帖最后由 xcsyb 于 2007-8-31 13:03 编辑 ]
回复 #4 JulianChin 的帖子
能否解释一下混响信号?
页:
[1]