n.幽灵,幽灵
信号和频谱图的频谱波峰。
库::`工程师`
语法
函数调用
-
crest,spectralPeak,spectralMean=spectralCrest(x,f)-返回信号的频谱波峰[参数:x]随着时间的推移,光谱的峰值和光谱均值。 口译笔译[参数:x]功能取决于形式[参数:f].
-
crest,spectralPeak,spectralMean=spectralCrest(x,f,Name,Value)-使用一个或多个名称值参数设置参数。
-
spectralCrest(___,[参数:out]=:情节)-绘制光谱脊。-
如果输入信号在时域中,则谱波峰图被绘制为时间的函数。
-
如果输入信号在频域中,则根据帧号绘制频谱波峰图。
-
争论
输入参数
名称-值输入参数
将可选参数对指定为 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 名称-值参数应该放在其他参数之后,但对的顺序无关紧要。
使用逗号分隔名称和值,以及 姓名 把它放在引号里。
# 超长 — 相邻窗口之间重叠的样本数
+
圆(f*0.02) (默认情况下)| 非负标量
Details
相邻窗口之间重叠的样本数,设置为范围内的整数 [0,大小(<参数:窗口>>,1)).
| 数据类型 |
|
# 光谱类型 — 频谱类型
+
"权力" (默认情况下)| "幅度"
Details
指定为的频谱类型 "权力" 或 "幅度":
-
"权力"-频谱波峰是为单侧功率谱计算的; -
"幅度"-频谱波峰是为单侧振幅频谱计算的。
| 数据类型 |
|
例子:
时域中信号的频谱波峰
Details
让我们创建一个带有白高斯噪声的FM信号,并使用默认参数计算波峰。
import EngeeDSP.Functions: chirp, randn, spectralCrest
fs = 1000
t = (0:1/fs:10)
f1 = 300
f2 = 400
x = chirp(t, f1, 10, f2) + randn(length(t), 1)
crest = spectralCrest(x, fs)
让我们绘制光谱脊对时间的依赖性。
spectralCrest(x, fs, out=:plot)

([4.987046327015055, 5.236871947723927, 7.544804457899835, 10.3772996669661, 7.705619466415934, 5.99985432220379, 4.868975479415114, 5.902444766668258, 5.6781203280701815, 6.523480840096338 … 7.803614225515488, 8.289150599849984, 8.382547366360493, 6.028262627692971, 6.683863065009292, 5.194224063455523, 3.7499682104979466, 5.218718311184415, 3.207068721139457, 6.082745967003252], [0.439680011925611, 0.601102975643176, 1.034484757673182, 1.3330997948299792, 0.8496287200130014, 0.4947671774843161, 0.43476209921716236, 0.5070692566692776, 0.6240111902833801, 0.8937070726200211 … 0.962580947281854, 1.2053879463201618, 1.4011032035761652, 0.8161989525511318, 0.716299380591645, 0.37571979028258434, 0.25389759893331165, 0.48721486174074174, 0.31362312100811496, 0.6811440879165471], [0.08816441298005284, 0.11478282868925793, 0.13711220263502233, 0.12846307205270513, 0.11026092369549412, 0.08246319842355515, 0.08929231643396737, 0.08590834420556587, 0.1098974932247451, 0.1369984973554123 … 0.1233506577163312, 0.14541754692476894, 0.16714527724577494, 0.1353953871886124, 0.10716847033290458, 0.072334151490691, 0.06770660034464596, 0.09335910326805238, 0.09779120694884458, 0.11197970318200254], Plot{Plots.PlotlyJSBackend() n=1})
频域中信号的频谱波峰
Details
让我们创建一个带有白高斯噪声的LFM信号,然后使用函数计算频谱图 stft.
import EngeeDSP.Functions: chirp, randn, stft
fs = 1000
t = (0:1/fs:10)'
f1 = 300
f2 = 400
x = chirp(t, f1, 10, f2) + randn(size(t)...)
s, f = stft(x, fs, "FrequencyRange", "onesided")
s = abs.(s).^2
计算频谱图随时间的波峰。
import EngeeDSP.Functions: spectralCrest
crest = spectralCrest(s, f)
让我们绘制频谱脊对帧号的依赖性。
spectralCrest(s, f, out=:plot)

([13.278262719339581, 11.423943909400123, 10.704344652278133, 7.265409265608759, 15.671348771900583, 17.14664360019774, 16.805060471491807, 14.696328543184194, 17.09013028905847, 15.936360071580983 … 16.710312667671143, 16.761812477538534, 12.62023888820894, 10.886155724606253, 13.208164879678929, 15.219986950457587, 11.520098623729307, 16.272350151097733, 18.269299846830197, 16.45774860128549], [1038.875221526367, 1003.8420042054646, 878.9222908403066, 340.3639889446644, 1013.9709212810934, 1511.5917119138305, 1166.5576026614406, 845.4456363019548, 1122.2172446705913, 1132.3238949123497 … 1483.6967321132968, 1213.326351390993, 859.9980861071526, 864.0666804644605, 1179.3520050171578, 766.8614058144813, 652.278982569946, 1323.7297764621535, 1825.3095783670533, 1640.464109040237], [78.23879098379803, 87.87175533831703, 82.10893047555709, 46.847187336823175, 64.70221140755848, 88.15671143339087, 69.41704283899455, 57.52767664506604, 65.66463951354794, 71.05285584828131 … 88.78928609060397, 72.38634563039626, 68.14435873402103, 79.37298549858043, 89.28961863821208, 50.38515527711577, 56.62095472224257, 81.34840783111189, 99.91130441070254, 99.67730998832384], Plot{Plots.PlotlyJSBackend() n=1})
指定标准参数以外的参数
Details
让我们创建一个带有白高斯噪声的FM信号。
import EngeeDSP.Functions: chirp, randn
fs = 1000
t = (0:1/fs:10)
f1 = 300
f2 = 400
x = chirp(t, f1, 10, f2) + randn(length(t), 1)
计算功率谱随时间的峰值。 计算持续时间为 50 有重叠的ms 25 ms.我们使用的范围从 62.5 Hz至 财政司司长/2 来计算峰值。
import EngeeDSP.Functions: spectralCrest, hamming
crest = spectralCrest(x, fs,
"Window", hamming(round(Int, 0.05*fs)),
"OverlapLength", round(Int, 0.025*fs),
"Range", [62.5, fs/2])
让我们绘制山脊对时间的依赖。
spectralCrest(x, fs,
"Window", hamming(round(Int, 0.05*fs)),
"OverlapLength", round(Int, 0.025*fs),
"Range", [62.5, fs/2],
out=:plot)

([9.538007545680625, 5.730876827698805, 5.032509222116753, 8.153962933846854, 6.409421405881727, 5.675496154818911, 3.936388047909756, 6.4173265830507695, 8.571412474805326, 8.245914575869225 … 9.01887114861341, 6.801343613682713, 4.948170085776451, 4.303209591503631, 6.032361588552264, 5.892015558392096, 4.323588797979937, 4.386216853001777, 5.755291814282484, 8.589943998230682], [1.072192257755449, 0.7611738870970485, 0.6151487100923281, 0.694504549763681, 0.41087548375427874, 0.35978967731876343, 0.38720592502049855, 0.3867047677182591, 0.846628743616088, 0.5501511870614189 … 0.9982941134388452, 0.6086401775262335, 0.16918248208293274, 0.2568272244259427, 0.4861993272274322, 0.563021155034732, 0.48023412546096145, 0.37966201056426135, 0.5141970164720814, 1.0541601271133798], [0.11241260322141401, 0.1328197952917255, 0.12223498913601331, 0.08517386642522173, 0.06410492581705285, 0.06339351970369599, 0.0983657912552872, 0.06025948075318637, 0.09877353891259522, 0.06671803133534474 … 0.11068947510047597, 0.08948822645892963, 0.03419091889530009, 0.0596827133247307, 0.08059850526037807, 0.09555663074120903, 0.11107303397708311, 0.08655796630402203, 0.08934334401533499, 0.12272025607274167], Plot{Plots.PlotlyJSBackend() n=1})