wllee 发表于 2007-8-14 18:21

新的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?

1021830113 发表于 2007-8-20 14:59

这个不错,顶一下,让更多的人看到.

shenyongjun 发表于 2007-8-20 22:11

好方法,楼主能否给一份该论文的文件?谢谢了!shenyongjun@sohu.com

JulianChin 发表于 2007-8-24 21:22

说到底还是频域上的滤波嘛,要是混响信号这样频域上差不多的还是没办法

shenyongjun 发表于 2007-8-24 23:51

收到,谢谢楼主了!

xcsyb 发表于 2007-8-28 14:10

不对啊
怎么我按照给的信号试了以后得到到帖子里面图示的结果?

xcsyb 发表于 2007-8-28 14:23

我发现用randn产生噪声时,不能得到楼主所提结果
但是用rand产生噪声可以

wllee 发表于 2007-8-29 12:42

我也是在 matlab 用rand 而不是用 randn 的,
randn 的情况没有试过…………….

matlab 中的 rand 和 randn 有什么分别呢?

zhlong 发表于 2007-8-29 13:38

回复 #8 wllee 的帖子

一个服从均匀分布,一个高斯分布.
help randn
help rand

wllee 发表于 2007-8-29 18:36

也就是说, 这个方法是不能在高斯分布所产生的噪声的环境之下进行侦测,
只可以在均匀分布所产生的噪声的环境之下进行侦测了. 不幸+失败…………

百八煩惱風 发表于 2007-8-30 13:52

不知道各位有沒有用過MathCAD軟件﹐用它做時域或頻域數據的處理比較快﹗

xcsyb 发表于 2007-8-31 11:34

我觉得可能对高斯分布的噪声确实不行
不过看他的那篇发表在JSV上的论文好像没提到这一点啊

[ 本帖最后由 xcsyb 于 2007-8-31 13:03 编辑 ]

caichengtao 发表于 2007-9-2 20:07

回复 #4 JulianChin 的帖子

能否解释一下混响信号?
页: [1]
查看完整版本: 新的signal processing (信号处理)方法