马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
新的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 写下:
[p,f]=spectrum(s,max(size(s)),0,hanning(max(size(s))),1/dt);
plot(f,p(:, 1));
现在假设 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) 图:
以下是r(j) 图:
以下是spectrum of n(j) 图:
以下是spectrum of r(j) 图:
我们可以看见即使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) 图:
以下是spectrum of r(j)=n(j)+0.08*s(j) 图:
以下是spectrum of r(j)=n(j)+0.07*s(j) 图:
现在知道了随s的数值越少, spectrum越无法侦测出 s,
我们现在就试验增加一些方法, 令即使随s的数值减少, spectrum也可以侦测出 s.
最重要的地方开始了, 我们定义一个本方法最重要的函数g:
以后不会直接用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) 图:
以下是spectrum of g(r) 图:
以下是spectrum of g(g(r)) 图:
以下是spectrum of g(g(g(r))) 图:
以下是spectrum of g(g(g(g(r)))) 图:
以下是spectrum of g(g(g(g(g(r))))) 图:
以下是spectrum of g(g(g(g(g(g(r)))))) 图:
以上图说明把信号r输入函数g里面次数越多, spectrum越可以把r中的s侦测出来.
但次数又不能太多, 如果把信号r输入函数g里面多过4次就会失效了.
为何会有这种现象?
以下内容全是估计,没有证明,只是把想法写出.
先假设s=sin(x), 观看s, g(s), g(g(s)), g(g(g(s))),… 的分别.
以下是sin(x) 的图:
以下是g(s) 的图:
以下是g(g(s)) 的图:
以下是g(g(g(s))) 的图:
如果把signal (信号) s输入函数g里面, 我们发现整个信号内全部数值均一齐减少,
但在数值减少的同时, wavelength (波长) 却没有改变,
也就是说在wavelength 不变而整个signal 数值下降的情形下,
wavelength 的值对于整个signal 的值是比例上升,
结果wavelength更容易被spectrum侦测出.
重申以上内容全属估计,没有证明的.
以下是g(g(g(s))) 的图, 可以看出当signal输入函数g后, wavelength不变:
如想多了解这方法可以看此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? |