恶意代码分析实战(英文原版PDF)
160 | 第五章自定义函数使用下面的方法能够根据在[-1,1)中遵守平均分布的随机变量产生遵守正态分布的随机变量。1. 在(-1,1)中任取遵守平均分布的随机变量x1和x2,看x1² + x2² < 1是否成立。如果成立用它们,如果不成立,则重试。2. 由下面公式得到的y1和y2将是正态分布随机变量。
[ y1 = \sqrt{-2\ln r / r} \cdot x1 ]
[ y2 = \sqrt{-2\ln r / r} \cdot x2 ]
[ r = x1² + x2² ]
编写一个函数,每调用一次产生一个正态分布随机变量,通过得到1000个随机变量,计算它们的标准差,画出柱状图来检测你的函数。它们的标准差与1.0有多接近。你是否曾尝试过用这个方法生成正态分布的随机数呢?【更多详情】(https://www.dude6.com/q/a/2162986.html)
5.23 万有引力公式如下:
[ F = G \frac{m1 \cdot m2}{r²} ]
其中G是引力常量,大小为6.672×10⁻¹¹ Nm²/kg²,m1和m2是两物体的质量,单位为kg,r为两质点的间距,单位为m。编写一个程序,已知两物体的质量和距离,计算它们之间的万有引力。在距地表38000米的高空重800kg的卫星与地球之间的万有引力为多少?用这个数据来检测你的程序。你可以想象这样的引力是多么的巨大吗?【阅读更多】(https://www.dude6.com/q/a/2956694.html)
5.24 瑞利分布是另一种在许多现实问题中出现的随机变量分布类型。符合瑞利分布的随机变量可以由两个符合正态分布的随机变量通过计算得到。计算方法如下所示,n1和n2是符合正态分布的随机变量。
[ r = \sqrt{n1² + n2²} ]
A. 创建一个函数rayleigh(n,m),它将返回一个n×m的数组,数组元素符合瑞利分布。如果只有一个输入参数n,它将会产生一个n阶方阵。确保你设计的函数能够检测输入参数,并为MATLAB帮助系统提供适当文本。
B. 通过产生20000个符合瑞利分布的随机变量,并画出它们的分布的柱状图。这个分布看起来像什么?你是否觉得这些随机变量有某种规律?【点击了解】(https://www.dude6.com/q/a/3370633.html)
C. 计算出这些随机变量的平均数和标准差。你是否曾好奇这些数据的分布特性?【详细阅读】(https://www.dude6.com/q/a/2956691.html)
5.25 恒虚警率(CFAR)图5.10a显示的是一个简易的雷达接收器。当一个信号被接受器接受,此信号中将包括由目标返回的有用信息,还有一些热噪声。当信号被检测处理后,我们就能够从热噪声背景中挑拣出有用信号。我们可以设定一个阈值,如果信号超过了这个阈值,那么就声明发现了目标。不好的是,接受的噪声也会偶然的超过阈值。如果这种情况发生,噪声被误认为目标,我们称之为虚警。
阈值要设得尽可能低,这样可以发现目标的微弱信号,但它又不能设得太低,这样我们就会得到许多的虚警。在视频检测过后,这个接收机的热噪声符合瑞利分布。图5.10b显示的是平均振幅为10V的瑞利分布噪声的100个抽样,注意当检测阈值为26时,只有一次虚警。这些噪声抽样的概率分布如图5.10c所示。检测阈值一般是噪声平均数的倍数,如果噪声水平改变,检测阈值也应随之改变,以控制虚警。这就是我们所说的恒虚警率发现。检测阈值单位一般有分贝。
用dB表示的阈值和用电压表示的阈值关系如下:
[ \text{Threshold(volts)} = \text{Mean Nosise Level(volts)} \times 10^{\frac{dB}{20}} ]
或者是
[ dB = 20 \log_{10}\left(\frac{\text{Threshold(volts)}}{\text{Mean Noise Level(volts)}}\right) ]
已知检测阈值,恒虚警率可由下面的公式求得。
[ Pfa = \frac{\text{Number of False Alarms}}{\text{Total Number of Samples}} ]
想要进一步了解这些概念和算法的应用吗?不妨看看这些资源,了解更多关于恒虚警检测的技术细节。