[医]光谱
信号和频谱图的频谱不对称性。
库::`工程师`
争论
输入参数
名称-值输入参数
将可选参数对指定为 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 名称-值参数应该放在其他参数之后,但对的顺序无关紧要。
使用逗号分隔名称和值,以及 姓名 把它放在引号里。
# 超长 — 相邻窗口之间重叠的样本数
+
圆(f*0.02) (默认情况下)| 非负标量
Details
相邻窗口之间重叠的样本数,设置为范围内的整数 [0,大小(<参数:窗口>>,1)).
| 数据类型 |
|
# 光谱类型 — 频谱类型
+
"权力" (默认情况下)| "幅度"
Details
指定为的频谱类型 "权力" 或 "幅度":
-
"权力"-为单侧功率谱计算频谱不对称性; -
"幅度"-为单侧振幅谱计算光谱不对称性。
| 数据类型 |
|
例子:
时域信号的频谱不对称性
Details
让我们创建一个具有白高斯噪声的FM信号,并使用默认参数计算不对称性。
import EngeeDSP.Functions: chirp, randn, spectralSkewness
fs = 1000
t = (0:1/fs:10)
f1 = 300
f2 = 400
x = chirp(t, f1, 10, f2) + randn(length(t), 1)
skewness = spectralSkewness(x, fs)
让我们绘制光谱不对称对时间的依赖性。
spectralSkewness(x, fs, out=:plot)

([-0.41584882984851185, -0.5170941305241857, -0.564347048766862, -0.20108069594499398, 0.3892427522273517, 0.1463327742296114, -0.0959324772116146, -0.4664806868967973, -0.3923963888464158, 0.01796837401846083 … -0.853109771702925, -1.0019652539560882, -1.7630883535558604, -1.3928510876449312, -1.4782180105459737, -1.1673132825372987, -1.3108237989573261, -1.2622253537332102, -1.1392100073297082, -0.9096598411870619], [137.66250718402654, 127.45803470472126, 128.62674026296034, 129.186501587399, 127.21238231874466, 135.27228568052246, 114.29332508288279, 113.20360160889103, 129.60154758930983, 137.04900834348766 … 113.02519942099786, 138.35361563650906, 110.54777802801922, 115.82292236038828, 113.2157408305658, 124.01480122917285, 126.18012726969127, 136.32543128218506, 152.2965330188322, 151.53661288017915], [232.54635888820377, 244.52603810295574, 263.6019775735153, 271.04043285763873, 267.14685957025756, 275.70362962545187, 270.28792339138397, 255.93688502474646, 268.74572871366905, 274.7291310293522 … 320.08685981196544, 317.87764929627133, 349.6998379422504, 332.2649969853749, 344.80178074508837, 339.5576123782947, 326.9848093500554, 318.2941806082642, 311.10184808692037, 296.1414058613318], 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: spectralSkewness
skewness = spectralSkewness(s, f)
让我们绘制频谱不对称对帧号的依赖性。
spectralSkewness(s, f, out=:plot)

([-0.8359982931981216, -0.5281233777476992, -0.19003913028541924, -0.20010790649073676, -0.4518215729934591, -0.609505728606324, -0.35104046557619795, -0.44243240701247855, -0.5058598909702079, -0.24334848229314177 … -0.7652817638675459, -0.29454858120347277, -1.0382786281369654, -0.9085777404108826, -0.3647202399233729, -0.4806516533252003, -0.025478934806172537, -0.3634101240910118, -0.2187538302761354, -0.34903020983974686], [107.17221169316268, 108.08710344363071, 121.73703765712227, 127.2733133823049, 113.45452035995662, 101.935212957374, 118.00182469240174, 132.80689180278688, 115.59164488540159, 103.25800480469758 … 130.74712793061693, 140.8136649111479, 120.8114483851076, 126.27406132641096, 143.9703528142779, 132.1095322961261, 137.9399485601707, 131.12441824862063, 144.70449053384257, 164.38033907467928], [292.7910624802788, 275.40970236507655, 244.1866329141813, 254.4473178753846, 253.6161996745867, 275.82905121269937, 272.98722964342187, 226.80470629232215, 236.10533279943394, 239.64514680772058 … 321.87682998876653, 278.83384299634093, 314.86016584163775, 305.56640901528647, 280.8820142043897, 288.72754980225983, 261.32008807500637, 273.0967688666202, 243.65572527972142, 256.13120365040834], 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: spectralSkewness, hamming
skewness = spectralSkewness(x, fs,
"Window", hamming(round(Int, 0.05*fs)),
"OverlapLength", round(Int, 0.025*fs),
"Range", [62.5, fs/2])
让我们绘制不对称对时间的依赖性。
spectralSkewness(x, fs,
"Window", hamming(round(Int, 0.05*fs)),
"OverlapLength", round(Int, 0.025*fs),
"Range", [62.5, fs/2],
out=:plot)

([-0.15358670202573538, -0.10674901633061454, -1.1800361499235466, -0.004310190890005931, -0.6333699707463635, -0.23684625667693265, -0.43005228049825217, -0.8150523711899812, 0.03350102205262587, -0.41422126904743767 … -0.005625970564356666, -0.6911434383476336, -1.3456964659853543, -1.710416093386148, -0.7442772354709529, 0.17283689627442853, -1.180419434083617, -1.440520104825559, -1.2583907091166355, -1.2842556849576383], [110.53667066154323, 81.12551758487213, 76.00441845155343, 97.84638979421082, 73.30917024731693, 106.73269627867673, 86.62588932286765, 96.51841858083655, 103.85455951559621, 81.25600340707545 … 130.74893548874454, 125.17411282084814, 105.79471192625837, 82.20506434500429, 112.9987914008663, 118.82027872700775, 91.5641846600464, 86.79996258356996, 97.9073613532983, 97.76881671452485], [288.3573645373158, 301.453120754697, 281.81310005697344, 266.79710402702926, 294.40582264869937, 251.81256307415043, 296.03366939785593, 326.86271852855765, 268.5491461338446, 302.8114318001578 … 265.2072744080883, 317.3863334548424, 333.8375132973837, 354.45727064830913, 338.77406994099954, 266.7769262524174, 342.5369659108678, 348.9119484862638, 341.65454501607263, 342.4239901408415], Plot{Plots.PlotlyJSBackend() n=1})