Engee 文档

[医]光谱反射性

信号和频谱图的频谱不均匀性。

库::`工程师`

语法

函数调用

  • spectralFlatness(___;<参数:out>=:情节) -绘制光谱不规则性。

    • 如果输入信号在时域中,则绘制频谱不均匀性的曲线图作为时间的函数。

    • 如果输入信号在频域中,则根据帧号绘制频谱不均匀性图。

争论

输入参数

# x — 输入信号

+ 列向量 | 矩阵

Details

指定为矢量或矩阵的输入信号。 口译笔译 x 功能取决于形式 [参数:f].

数据类型

漂浮物32, 漂浮64</无翻译>

# f 是 采样频率或频率矢量(Hz)

+ 标量,标量 | 向量资料

Details

以Hz为单位的采样频率或频率矢量,分别指定为标量或矢量。 口译笔译 [参数:x] 功能取决于形式 f:

  • 如果 f -标量, [参数:x] 它被解释为时域中的信号,并且 f -作为采样率。 在这种情况下 [参数:x] 必须是实向量或矩阵。 如果 [参数:x] 设置为矩阵,列被解释为单独的通道。

  • 如果 f -向量, [参数:x] 被解释为频域中的信号,并且 f -以Hz为单位的频率如何对应于字符串 [参数:x]. 在这种情况下 [参数:x] 必须是一个真正的大小数组 ,在哪里 -指定频率下的频谱值数目 f, -个别光谱的数目,以及 -通道数。

  • 行数 [参数:x], ,必须等于元素个数 f.

数据类型

漂浮物32, 漂浮64</无翻译>

名称-值输入参数

将可选参数对指定为 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 名称-值参数应该放在其他参数之后,但对的顺序无关紧要。

使用逗号分隔名称和值,以及 姓名 把它放在引号里。

以下名称值参数适用于 [参数:x] -时域中的信号。 如果 [参数:x] -信号在频域中,诸如"名称-值"之类的参数被忽略。

# 窗口 — 时域中使用的窗口

+ rectwin(圆形(f*0.03)) (默认情况下)| 向量资料

Details

时域中使用的窗口,定义为实向量。 矢量元素的数量必须在范围内 [1,尺寸(<参数:x>>,1)]. 矢量元素的数量也应该更多。 [参数:超长].

数据类型

漂浮物32, 漂浮64</无翻译>

# 超长 — 相邻窗口之间重叠的样本数

+ 圆(f*0.02) (默认情况下)| 非负标量

Details

相邻窗口之间重叠的样本数,设置为范围内的整数 [0,大小(<参数:窗口>>,1)).

数据类型

漂浮物32, 漂浮64</无翻译>

# FFTLength — DFT中的元素数

+ numel(窗口) (默认情况下)| 正整数标量

Details

用于计算窗口输入样本的DFT的元素数,设置为正整数标量。 如果没有给出参数, N.长度,长度 默认情况下,它等于 [参数:窗口].

数据类型

漂浮物32, 漂浮64</无翻译>

# 范围 — 频率范围(Hz)

+ [0,f/2] (默认情况下)| 双元素向量是一个字符串

Details

以Hz为单位的频率范围,定义为一个双元向量,是一串范围内不断增加的实数值 [0,[参数:f]/2].

数据类型

漂浮物32, 漂浮64</无翻译>

# 光谱类型 — 频谱类型

+ "权力" (默认情况下)| "幅度"

Details

指定为的频谱类型 "权力""幅度":

  • "权力" -为单侧功率谱计算光谱不均匀性;

  • "幅度" -为单侧振幅谱计算光谱不均匀性。

数据类型

字符串</无翻译>

# — 输出数据的类型

+ :数据 (默认情况下)| :剧情

Details

输出数据的类型:

  • :数据 -函数返回数据;

  • :剧情 -函数返回一个图形。

输出参数

# 平整度 — 光谱脊

+ 标量,标量 | 向量资料 | 矩阵

Details

谱不均匀性作为标量、矢量或矩阵返回。 每行 平面度 对应于窗口的光谱脊 [参数:x]. 每列 平面度 对应于独立信道。

# 算术 — 频谱的算术平均值

+ 标量,标量 | 向量资料 | 矩阵

Details

频谱的算术平均值,作为标量、向量或矩阵返回。 每行 [医]算术 对应于窗频谱的算术平均值 [参数:x]. 每列 [医]算术 对应独立的信道。

# 几何 — 光谱的几何均值

+ 标量,标量 | 向量资料 | 矩阵

Details

频谱的几何均值,作为标量、矢量或矩阵返回。 每行 几何学,几何学 对应于窗口的平均几何光谱 [参数:x]. 每列 几何学,几何学 对应一个独立的信道。

例子:

时域信号的频谱不均匀性

Details

让我们创建一个具有白高斯噪声的LFM信号,并使用默认参数计算不均匀性。

import EngeeDSP.Functions: chirp, randn, spectralFlatness

fs = 1000
t = (0:1/fs:10)
f1 = 300
f2 = 400
x = chirp(t, f1, 10, f2) + randn(length(t), 1)

flatness = spectralFlatness(x, fs)

让我们绘制光谱不均匀性对时间的依赖性。

spectralFlatness(x, fs, out=:plot)

spectralFlatness 1

([0.5327040255782655, 0.552964530108542, 0.47742468036057234, 0.37293317041480095, 0.44287635975879003, 0.4119379715559745, 0.5013730779675295, 0.2015608067144641, 0.33548839011069864, 0.5369805014970516  …  0.1727536936022771, 0.35070131234444546, 0.25693379071386535, 0.255058829804521, 0.3677277425236599, 0.23687507452160672, 0.42585525405176444, 0.2835981233091784, 0.37349949783684333, 0.24033135785583964], [0.07786759765793372, 0.08135374655336428, 0.08637079824524838, 0.11933620888263814, 0.12350546278299357, 0.14497737376909484, 0.15042289056894764, 0.16892023682888072, 0.13419976354764332, 0.09558842868870962  …  0.10961556063903502, 0.11750795091292063, 0.10693418095926478, 0.09961268609163781, 0.10747394543349716, 0.15058502472661675, 0.14519245631195274, 0.15333273649350335, 0.13430846482161657, 0.12333737035602271], [0.04148038273449001, 0.04498573623545049, 0.04123555074472519, 0.04450443072388517, 0.05469764976765691, 0.05972168527195327, 0.07541798764132614, 0.03404769920562753, 0.04502246262583528, 0.05132912237457844  …  0.018936492976677682, 0.041210192596067945, 0.027475004470746342, 0.025407095148218223, 0.03952115133437092, 0.035669838953955334, 0.06183097036912634, 0.04348487631141832, 0.050164144166111126, 0.029641837692031523], 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(length(t), 1)

s, f = stft(x, fs, "FrequencyRange", "onesided")
s = abs.(s).^2

计算频谱图随时间的不均匀性。

import EngeeDSP.Functions: spectralFlatness

flatness = spectralFlatness(s, f)

让我们绘制频谱不均匀性对帧数的依赖性。

spectralFlatness(s, f, out=:plot)

spectralFlatness 2

([0.41698805310198656, 0.46683201868098656, 0.3883287575836514, 0.4907688270016035, 0.4091462305599816, 0.3191585704065677, 0.3577051127741075, 0.3896555430416278, 0.598856100869491, 0.5385492705509978  …  0.3819877611783831, 0.41721990894367383, 0.38697190520523694, 0.46858320991071867, 0.48587071241197366, 0.38864151988166845, 0.5335128495308832, 0.4664062512134147, 0.4145737219480951, 0.477601293218658], [66.18935543214769, 71.25953873838431, 67.29284380517325, 72.27692418494, 77.76383362649338, 74.80810295770037, 65.91505570861669, 67.23287211343407, 73.51318020109804, 61.9977680185544  …  67.19403006538472, 79.16107520226234, 79.39008525296707, 70.97130285799408, 68.37996747931281, 63.08170611779957, 68.8590471648835, 79.56916556123606, 53.21814023726604, 53.157840474425484], [27.600170457726666, 33.26623431951591, 26.13174642913364, 35.47126130152683, 31.81677940217331, 23.87564719480698, 23.578152435762313, 26.197661293608466, 44.02381645774584, 33.38885274218245  …  25.667297109229274, 33.02757658777121, 30.721732544746853, 33.255960904744626, 33.22382351388131, 24.51617014235037, 36.73718646891848, 37.111556221595656, 22.062842473319066, 25.388253355296733], 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: spectralFlatness, hamming

flatness = spectralFlatness(x, fs,
                      "Window", hamming(round(Int, 0.05*fs)),
                      "OverlapLength", round(Int, 0.025*fs),
                      "Range", [62.5, fs/2])

让我们绘制不均匀性对时间的依赖性。

spectralFlatness(x, fs,
              "Window", hamming(round(Int, 0.05*fs)),
              "OverlapLength", round(Int, 0.025*fs),
              "Range", [62.5, fs/2],
              out=:plot)

spectralFlatness 3

([0.44393966543497354, 0.4695783799925332, 0.49431342254249894, 0.6021106597242966, 0.44236146074090665, 0.5951722206261713, 0.6452967394540707, 0.46437619283350273, 0.3888478354209635, 0.6150829750332204  …  0.5454458473997145, 0.5030744478476047, 0.45828271847210195, 0.3342891893548354, 0.5377916650534941, 0.2390323362290697, 0.41558590905052906, 0.5762897059640517, 0.5368836411577717, 0.5281049952129195], [0.09501542410874092, 0.09365413839399048, 0.08501344767652717, 0.08096139641217256, 0.03234155232658504, 0.0508716873101426, 0.08013355128737082, 0.09856405316445577, 0.0713312402132862, 0.08216872345317404  …  0.09695049793640315, 0.0824351178183989, 0.1008633635765253, 0.09848674637522525, 0.0885626532954448, 0.08363028719440331, 0.10550801325677596, 0.08844347795474994, 0.06239257287735799, 0.1156749436919185], [0.042181115589996564, 0.043977958586646555, 0.0420232882831218, 0.04874771980593352, 0.014306656329816626, 0.030277415103377784, 0.051709919366615946, 0.045770799758748926, 0.027736998354829127, 0.05054058287626024  …  0.052881246502745685, 0.041471001379743265, 0.04622393645409, 0.03292305460796933, 0.04762825677731257, 0.019990342927586273, 0.04384764360143251, 0.05096906590498093, 0.033497551707597585, 0.06108851558467535], Plot{Plots.PlotlyJSBackend() n=1})

算法

光谱不均匀性如[1]中所述计算:

哪里

  • -bin中的光谱值 ;

  • -bins中的波段边界,用于计算光谱不均匀性。

文学作品

  1. Johnston,J.D."Transform Coding of Audio Signals Using Perceptual Noise Criteria."_IEEE Journal on Selected Areas In Communications._卷。 6,编号2,1988,第314-323页。