AnyMath 文档

平均水平

的平均频率。

库::`工程师`

语法

函数调用

* [参数:freq],[参数:power]=meanfreq(<参数:x>>) -评估平均归一化频率 [参数:freq] 时域中的信号 [参数:x]. 它还返回频谱功率 [参数:权力] 在给定的频带中。 来计算频谱功率 *平均* 使用函数 *周期图* 具有矩形窗口且DFT点数量等于长度 [参数:x].

* [参数:freq],<参数:power>>=meanfreq(<参数:x>>,<参数:Fs>>) -以采样频率为单位评估平均频率 [参数:Fs].

* [参数:freq],[参数:power]=meanfreq([参数:pxx],[参数:f]) -返回功率谱密度估计的平均频率 [参数:pxx]. 频率 [参数:f] 对应于在估计 [参数:pxx].

* [参数:freq],[参数:power]=meanfreq([参数:sxx],[参数:f],[参数:rbw]) -返回功率谱估计的平均频率 [参数:sxx] 具有分辨率带 [参数:rbw].

* [参数:freq],[参数:power]=meanfreq(_,[参数:freqRange]) -也使用频率范围 [参数:freqRange],在其上计算平均频率。 此语法可以包括来自先前语法的输入参数的任何组合,前提是第二个输入参数是 [参数:Fs][参数:f]. 如果第二个输入参数传递为空,则 *平均* 使用归一化频率。 的默认值 [参数:freqRange] -输入信号的整个带宽。

* meanfreq(_,out=:plot) -绘制功率谱密度或功率谱并注释平均频率。

争论

输入参数

# *x* — 输入信号

+ 向量资料 | 矩阵

Details

指定为矢量或矩阵的输入信号。 如果 x -矢量,然后 *平均* 将其作为单个通道处理。 如果 x 是一个矩阵,则该函数为每列独立计算平均频率 x.

数据类型

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

# *财政司司长* — 抽样调查 费率+ 正实标量

Details

的采样频率,设置为正实标量。 采样率是单位时间内的样本数。 如果时间单位是秒,那么采样频率以Hz表示。

数据类型

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

# *pxx* — 光谱功率密度

+ 向量资料 | 矩阵

Details

谱功率密度,定义为矢量或矩阵。 如果 pxx的 -矩阵,然后 *平均* 独立计算每列的平均频率 pxx的.

功率谱密度应以线性单位表示,而不是以dB表示。

数据类型

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

# *f* — 频率

+ 向量资料

Details

指定为矢量的频率。

数据类型

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

# *sxx* — 频谱功率估计

+ 向量资料 | 矩阵

Details

谱功率估计,指定为矢量或矩阵。 如果 sxx的 -矩阵,然后 *平均* 独立计算每列的平均频率 sxx的.

功率谱密度应以线性单位表示,而不是以dB表示。

数据类型

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

# *rbw* — 频率分辨率

+ 正标量

Details

频分辨率,设置为正标量。 频率分辨率定义为两个量的乘积:离散傅立叶变换的频率分辨率和用于计算功率谱密度的窗口的等效噪声带宽。

数据类型

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

# *freqRange* — 频率范围

+ 二元素向量

Details

指定为实数值的双元向量的频率范围。 如果 freqRange,freqRange 未指定,则 *平均* 使用输入信号的全带宽。

数据类型

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

输出参数

# *freq* — 平均频率

+ 标量,标量 | 向量资料

Details

作为标量或向量返回的平均频率。

*如果指定采样率,则 弗雷克 它的测量单位与 [参数:Fs]. *如果未指定采样频率,则 弗雷克 它具有rad/count的测量单位。

# *电源* — 频带中的频谱功率

+ 标量,标量 | 向量资料

Details

频带中的频谱功率,作为标量或矢量返回。

例子:

平均线性调频频率

Details

生成 1024 线性调频信号的采样率 1024 千赫。 让我们设置线性调频频率,使其开始与 50 千赫和达到 100 信号结束时的kHz。 加白高斯噪声,使信噪比为 40 分贝。 重新启动随机数发生器以获得可重复的结果。

import EngeeDSP.Functions: meanfreq, chirp, std
using Random

nSamp=1024
Fs=1024e3
信噪比=40
随机的。种子!(0)
t=(0:nSamp-1)。/财政司司长
x=线性调频(t,50e3,nSamp/Fs,100e3)
x=x.+randn(nSamp)。&ast;std(x)[1]。/(10^(SNR/20))

我们来估计线性调频信号的平均频率。 让我们绘制功率谱密度并确定平均频率。

meanfreq(x,Fs,out=:plot)

meanfreq 1

我们将产生另一个线性调频信号。 设置初始频率 200 kHz,最终频率 300 kHz和两倍于所述第一信号的幅度的幅度。 加白高斯噪声。

x2 = 2&ast;chirp(t,200e3,nSamp/Fs,300e3)
x2 = x2.+ randn(nSamp).&ast; std(x2)[1]./(10^(SNR/20))

组合线性调频信号以产生双通道信号。 让我们估计每个信道的平均频率。

y = meanfreq([x x2],Fs)
([75048.0093015613 250002.6501495102], [0.49966449511918404 2.0006502475894763])

让我们绘制两个通道的频谱功率密度。

y = meanfreq([x x2],Fs,out=:plot)

meanfreq 2

将两个通道相加以形成新信号。 让我们绘制功率谱密度并确定平均频率。

y = meanfreq(x+x2,Fs,out=:plot)

meanfreq 3

正弦波的平均频率

Details

生成 1024 频率的正弦信号的采样 100.123 kHz,以频率采样 1024 千赫。 加白高斯噪声,使信噪比为 40 分贝。 重新启动随机数发生器以获得可重复的结果。

import EngeeDSP.Functions: meanfreq, sin, std
using Random

nSamp = 1024
Fs = 1024e3
SNR = 40
Random.seed!(0)
t = (0:nSamp-1)./ Fs
x = sin.(2pi &ast; t &ast; 100.123e3)
x = x.+ randn(nSamp).&ast; std(x)[1]./(10^(SNR/20))

我们来估计正弦信号的平均频率。 让我们绘制功率谱密度并确定平均频率。

meanfreq(x,Fs,out=:plot)

meanfreq 4

我们将产生另一个频率为 257.321 kHz和两倍于所述第一正弦波的振幅的振幅。 加白噪声。

x2 = sin.(2pi &ast; t &ast; 257.321e3)
x2 = x2.+ randn(nSamp).&ast; std(x2)[1]./(10^(SNR/20))

结合正弦曲线以产生双通道信号。 让我们估计每个信道的平均频率。

y = meanfreq([x x2],Fs)
([100127.71993300629 257421.94010929883], [0.4996432155771679 0.4994390782715168])

让我们绘制两个通道的频谱功率密度。

y = meanfreq([x x2],Fs,out=:plot)

meanfreq 5

将两个通道相加以形成新信号。 让我们绘制功率谱密度并确定平均频率。

y = meanfreq(x+x2,Fs,out=:plot)

meanfreq 6

带限信号的平均频率

Details

让我们创建一个频谱功率密度类似于带通FIR滤波器的频率响应的信号。 88-具有归一化截止频率的阶数。

import EngeeDSP.Functions: fir1, meanfreq, bandpower

d = fir1(88,[0.25 0.45])

meanfreq(d,[],[0.3 0.6]&ast;pi, out=:plot)

meanfreq 7

我们将输出测量间隔的平均频率和功率。 指定采样率 相当于没有设定采样频率的事实。

mf=meanfreq(d,[],[0.3 0.6]&ast;pi)
println("Mean = $(round(mf[1]/pi, digits=3))&ast;pi, power = $(round(mf[2]/bandpower(d)&ast;100, digits=1))% of total")
Mean = 0.373&ast;π, power = 75.6% of total

添加具有归一化截止频率的第二通道 0.5π rad/倒计时和 0.8π rad/count和第一通道振幅的十分之一的振幅。

d2=fir1(88,[0.5 0.8])/10
meanfreq([d d2],[],[0.3 0.9]&ast;pi, out=:plot)

meanfreq 8

让我们输出每个通道的平均频率。 除以 π.

mf=meanfreq([d d2],[],[0.3 0.9]&ast;pi)
println(mf[1]/pi)
[0.3730065696360713 0.6500002992402633]

算法

Details

来确定平均频率 *平均* 使用矩形窗口计算周期图功率谱的估计值。

平均频率的相同值 mFrq 可以从信号中获得 [参数:x] 与采样率 [参数:Fs] 在三个方面。

直接从信号

mFrq=meanfreq(x,Fs)

根据信号的周期图

P,F=周期图(x,[],长度(x),Fs); mFrq=meanfreq(P,F)

基于对信号的频谱功率的估计(spectral Welch power density)

P,F=pwelch(x,rectwin(length(x)),[],length(x),Fs); mFrq=meanfreq(P,F)

因为 *平均* 它使用中间表示将输入信号从时域转换到频域。 返回的平均频率可能因信号转换方法、DFT点的数量和窗口大小而异。

文学作品

  1. Phinyomark,Angkoon,Sirinee Thongpanja,Huosheng Hu,Pornchai Phukpattaranont和Chusak Limsakul,肌电图分析中均值和中值频率的有用性,肌电图分析中的计算智能—当前应用和未来挑战的视角,由Ganesh R.Naik编辑。 伦敦:IntechOpen,2012。 https://doi.org/10.5772/50639.