AnyMath 文档

梅德夫雷克

的中值频率。

库::`工程师`

语法

函数调用

  • medfreq(_,out=:plot) -绘制功率谱密度或功率谱并注释计算的中值频率。

争论

输入参数

# x — 输入信号

+ 向量资料 | 矩阵

Details

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

数据类型

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

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

Details

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

数据类型

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

# pxx — 光谱功率密度

+ 向量资料 | 矩阵

Details

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

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

数据类型

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

# f — 频率

+ 向量资料

Details

指定为矢量的频率。

数据类型

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

# sxx — 频谱功率估计

+ 向量资料 | 矩阵

Details

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

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

数据类型

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

# rbw — 频率分辨率

+ 正标量

Details

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

数据类型

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

# freqRange — 频率范围

+ 二元素向量

Details

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

数据类型

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

输出参数

# *freq*是 中值频率

+ 标量,标量 | 向量资料

Details

作为标量或矢量返回的中值频率。

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

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

+ 标量,标量 | 向量资料

Details

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

例子:

线性调频信号的中值频率

Details

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

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

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

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

medfreq(x,Fs,out=:plot)

medfreq 1

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

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

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

y = medfreq([x x2],Fs)
([75008.20087306881, 249993.82312082333], [0.4996644951191848, 1.9996231821604598])

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

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

medfreq 2

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

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

medfreq 3

正弦波的中值频率

Details

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

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

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

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

medfreq(x,Fs,out=:plot)

medfreq 4

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

x2 = sin.(2π * t * 257.321e3)
x2 = x2.+ randn(nSamp).* std(x2)[1]./(10^(SNR/20))

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

y = medfreq([x x2],Fs)
([100005.51887841288, 257099.81517133984], [0.49964321557716784, 0.4998751983807168])

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

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

medfreq 5

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

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

medfreq 6

带限信号的中值频率

Details

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

import EngeeDSP.Functions: fir1, medfreq, bandpower

d = fir1(88,[0.25 0.45])

medfreq(d,[],[0.3 0.6]*pi, out=:plot)

medfreq 7

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

mf=medfreq(d,[],[0.3 0.6]*pi)
println("Median = $(round(mf[1]/pi, digits=3))*pi, power = $(round(mf[2]/bandpower(d)*100, digits=1))% of total")
Median = 0.371*pi, power = 77.4% of total

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

d2=fir1(88,[0.5 0.8])/10
medfreq([d d2],[],[0.3 0.9]*pi, out=:plot)

medfreq 8

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

mf=medfreq([d d2],[],[0.3 0.9]*pi)
println(mf[1]/pi)
[0.370596807684655, 0.6500040234987472]

算法

Details

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

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

直接从信号

medFrq=medfreq(x,Fs)

根据信号的周期图

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

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

P,F=pwelch(x,rectwin(length(x)),[],length(x),Fs); medFrq=medfreq(P,F)

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

文学作品

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