辛纳德
信号与噪声和失真之和的比值。
库::`工程师`
语法
函数调用
* [参数:r],[参数:totdistpow]=sinad(___) -返回信号的噪声和谐波失真的总水平(以dB为单位)。
* 辛纳德(___,out=:plot) -在当前图形窗口中绘制信号的频谱并标记其主要成分。 主分量、常数分量的值和噪声以不同的颜色显示。 SINAD值显示在图形上方。
争论
例子:
单次谐波或单次谐波加噪声信号的SINAD
Details
让我们创建两个信号。 两个信号都具有基频 带幅度的rad/计数 1 和频率的一次谐波 带幅度的rad/计数 0.025. 其中一个信号另外包含具有方差的加性白高斯噪声 .
让我们设置随机数生成器的默认设置,以获得可重复的结果。 让我们为没有加性噪声的信号定义SINAD,并将结果与理论SINAD进行比较。
import EngeeDSP.Functions: randn, sinad
using Random
n = 0:159
x = cos.(π/4*n) + 0.025 * sin.(π/2*n)
Random.seed!(123)
y = cos.(π/4*n) + 0.025 * sin.(π/2*n) + 0.05 * randn(length(n), 1)
r = sinad(x)
println("r = ", r[1])
r = 32.041199826559314
powfund = 1
powharm = 0.025^2
thSINAD = 10 * log10(powfund / powharm)
println("thSINAD = ", thSINAD)
thSINAD = 32.04119982655924
让我们为具有加性噪声的正弦信号定义SINAD。 我们展示了加性噪声理论方差的包含如何近似SINAD。
r = sinad(y)
println("r = ", r[1])
r = 24.588862275561493
varnoise = 0.05^2
thSINAD = 10 * log10(powfund / (powharm + varnoise))
println("thSINAD = ", thSINAD)
thSINAD = 25.05149978319906
具有采样频率的信号的SINAD
Details
让我们创建一个基频信号 1 kHz和单振幅,以频率采样 480 千赫。 该信号另外包含幅度为 0.02 和具有方差的加性白高斯噪声 .
让我们定义SINAD并将结果与理论SINAD进行比较。
import EngeeDSP.Functions: randn, sinad
using Random
fs = 48e4
t = 0:1/fs:1-1/fs
Random.seed!(123)
x = cos.(2π*1000*t) + 0.02 * sin.(2π*2000*t) + 0.01 * randn(length(t), 1)
r = sinad(x, fs)
println("r = ", r[1])
r = 32.243478303520384
powfund = 1
powharm = 0.02^2
varnoise = 0.01^2
thSINAD = 10 * log10(powfund / (powharm + varnoise * (1 / fs)))
println("thSINAD = ", thSINAD)
thSINAD = 33.97939782477054
放大信号的SINAD
Details
产生频率的正弦 2.5 带采样率的kHz 50 千赫。 将具有标准偏差的高斯白噪声添加到信号中。 0.00005. 让我们通过具有低非线性的放大器传递结果。 让我们绘制SINAD图。
import EngeeDSP.Functions: randn, polyval, sinad
fs = 5e4
f0 = 2.5e3
N = 1024
t = (0:N-1) / fs
ct = cos.(2π*f0*t)
cd_signal = ct + 0.00005 * randn(length(ct),1)
amp = [1e-5 5e-6 -1e-3 6e-5 1 25e-3]
sgn = polyval(amp, cd_signal)
sinad(sgn, fs, out=:plot)
该图显示了用于计算比率的频谱和被视为噪声的面积。 常数分量和基波谐波的电平被排除在噪声计算之外。 主谐波进行标记。
此外
失真测量功能
Details
当在时域中设置输入数据时,功能 *辛纳德* 使用旁瓣衰减较大的Kaiser窗口构建周期图。 为了找到基频,算法在周期图上搜索最大的非零频谱分量。 然后它计算所有相邻区间的中心时刻,随着它们远离最大值而单调递减。 对于检测,主频率必须至少在第二频率范围内。 高次谐波的频率是基频的倍数. 如果一个谐波位于另一个谐波旁边的单调递减区域,则其功率被认为属于较大的谐波。 这个大的谐波可能是也可能不是主要的。
该函数在仅包含噪声和失真的区域中使用中值功率值来估计噪声水平。 常数分量被排除在计算之外。 每个点的噪声由点的计算水平或纵坐标确定,以较低者为准。 然后从信号和谐波的值中减去噪声。
功能 *辛纳德* 如果基频不是信号的最高频谱分量,则失败。
确保频率分量足够间隔以考虑到Kaiser窗口的旁瓣的宽度。 如果这是不可能的,您可以使用该标志 "权力" 并计算具有不同窗口的周期图。