频域特征指标详解

频域特征指标详解

频域特征指标详解

在信号分析中,频域分析是通过傅里叶变换将信号从时域转到频域,帮助我们理解信号的频谱特性。频域特征指标是用来描述信号频谱特性的重要工具,常见的频域特征指标包括:重心频率、均方频率、均方根频率、频率方差和频率标准差。下面我们将详细讲解这些频域特征指标。

目录

重心频率 (Centroid Frequency)均方频率 (Mean Squared Frequency)均方根频率 (Root Mean Square Frequency)频率方差 (Frequency Variance)频率标准差 (Frequency Standard Deviation)代码实现及解读

1. 重心频率 (Centroid Frequency)

重心频率,也称为频率中心,是频谱中信号的“质量中心”,它反映了信号频谱的中心位置。重心频率的定义为:

f

centroid

=

i

=

1

N

f

i

X

(

f

i

)

2

i

=

1

N

X

(

f

i

)

2

f_{\text{centroid}} = \frac{\sum_{i=1}^{N} f_i |X(f_i)|^2}{\sum_{i=1}^{N} |X(f_i)|^2}

fcentroid​=∑i=1N​∣X(fi​)∣2∑i=1N​fi​∣X(fi​)∣2​

其中:

f

i

f_i

fi​ 是第

i

i

i个频率点,

X

(

f

i

)

X(f_i)

X(fi​) 是信号在频率

f

i

f_i

fi​ 处的幅值,

N

N

N 是频谱中的总频率点数。

数学推导:

重心频率可以看作是频谱的加权平均频率。其计算方式为,所有频率成分按其幅度平方加权,然后求加权后的频率的平均值。

物理意义:

重心频率反映了信号的“中心”频率,或者说是信号频率分布的平均位置。若重心频率较低,表示信号中低频成分较多;若重心频率较高,表示信号中高频成分较多。

2. 均方频率 (Mean Squared Frequency)

均方频率是频谱的二阶矩,用来描述频谱的平均频率的平方。均方频率的定义为:

f

mean squared

=

i

=

1

N

f

i

2

X

(

f

i

)

2

i

=

1

N

X

(

f

i

)

2

f_{\text{mean squared}} = \frac{\sum_{i=1}^{N} f_i^2 |X(f_i)|^2}{\sum_{i=1}^{N} |X(f_i)|^2}

fmean squared​=∑i=1N​∣X(fi​)∣2∑i=1N​fi2​∣X(fi​)∣2​

其中:

f

i

f_i

fi​ 是第

i

i

i个频率点,

X

(

f

i

)

X(f_i)

X(fi​) 是信号在频率

f

i

f_i

fi​ 处的幅值,

N

N

N 是频谱中的总频率点数。

数学推导:

均方频率是频率的平方的加权平均,其中权重为每个频率成分的能量。均方频率提供了信号频谱分布的二阶统计信息。

物理意义:

均方频率反映了频谱的能量分布的集中程度。频谱的能量越集中在高频区域,均方频率的值就越大。

3. 均方根频率 (Root Mean Square Frequency)

均方根频率是均方频率的平方根,用来衡量频谱分布的集中程度。其定义为:

f

RMS

=

i

=

1

N

f

i

2

X

(

f

i

)

2

i

=

1

N

X

(

f

i

)

2

f_{\text{RMS}} = \sqrt{\frac{\sum_{i=1}^{N} f_i^2 |X(f_i)|^2}{\sum_{i=1}^{N} |X(f_i)|^2}}

fRMS​=∑i=1N​∣X(fi​)∣2∑i=1N​fi2​∣X(fi​)∣2​

其中:

f

i

f_i

fi​ 是第

i

i

i个频率点,

X

(

f

i

)

X(f_i)

X(fi​) 是信号在频率

f

i

f_i

fi​ 处的幅值,

N

N

N 是频谱中的总频率点数。

数学推导:

均方根频率是对频谱中每个频率点进行加权的平方根,其权重为信号的能量。它是描述信号频谱分布的一个集中度的指标。

物理意义:

均方根频率是衡量信号频谱能量分布的集中程度的指标,通常用于描述信号的频率特征和频谱宽度。较高的均方根频率意味着信号的频率成分分布较为广泛,能量分布在较高的频率范围。

4. 频率方差 (Frequency Variance)

频率方差是信号频谱中各个频率成分的波动程度,它是频率的二阶中心矩。其定义为:

σ

f

2

=

i

=

1

N

(

f

i

f

centroid

)

2

X

(

f

i

)

2

i

=

1

N

X

(

f

i

)

2

\sigma_f^2 = \frac{\sum_{i=1}^{N} (f_i - f_{\text{centroid}})^2 |X(f_i)|^2}{\sum_{i=1}^{N} |X(f_i)|^2}

σf2​=∑i=1N​∣X(fi​)∣2∑i=1N​(fi​−fcentroid​)2∣X(fi​)∣2​

其中:

f

i

f_i

fi​ 是第

i

i

i个频率点,

f

centroid

f_{\text{centroid}}

fcentroid​ 是信号的重心频率,

X

(

f

i

)

X(f_i)

X(fi​) 是信号在频率

f

i

f_i

fi​ 处的幅值,

N

N

N 是频谱中的总频率点数。

数学推导:

频率方差是频率偏离重心频率的程度的加权平均。它描述了信号频谱的分散程度或波动程度,方差越大,表明信号频谱的分布越分散。

物理意义:

频率方差越大,说明信号的频谱更加分散,频率成分的波动性较强。相反,频率方差越小,说明频率成分分布较为集中。

5. 频率标准差 (Frequency Standard Deviation)

频率标准差是频率方差的平方根,用来衡量信号频谱的分布的广度。其定义为:

σ

f

=

i

=

1

N

(

f

i

f

centroid

)

2

X

(

f

i

)

2

i

=

1

N

X

(

f

i

)

2

\sigma_f = \sqrt{\frac{\sum_{i=1}^{N} (f_i - f_{\text{centroid}})^2 |X(f_i)|^2}{\sum_{i=1}^{N} |X(f_i)|^2}}

σf​=∑i=1N​∣X(fi​)∣2∑i=1N​(fi​−fcentroid​)2∣X(fi​)∣2​

其中:

f

i

f_i

fi​ 是第

i

i

i个频率点,

f

centroid

f_{\text{centroid}}

fcentroid​ 是信号的重心频率,

X

(

f

i

)

X(f_i)

X(fi​) 是信号在频率

f

i

f_i

fi​ 处的幅值,

N

N

N 是频谱中的总频率点数。

数学推导:

频率标准差是频率方差的平方根。它是描述信号频谱分布的广度和频谱集中程度的指标。

物理意义:

频率标准差越大,说明信号频谱的宽度越大,频率成分较为分散;而标准差较小,说明频谱较为集中,信号的频率特征较为稳定。

6. 代码实现及解读

下面的Python代码展示了如何计算这些频域特征指标。

import numpy as np

import matplotlib.pyplot as plt

# 计算频谱

def compute_spectrum(x, fs):

N = len(x)

X = np.fft.fft(x)

freqs = np.fft.fftfreq(N, 1/fs)

X_mag = np.abs(X)

return freqs[:N//2], X_mag[:N//2]

# 重心频率

def centroid_frequency(f, X_mag):

return np.sum(f * X_mag**2) / np.sum(X_mag**2)

# 均方频率

def mean_squared_frequency(f, X_mag):

return np.sum(f**2 * X_mag**2) / np.sum(X_mag**2)

# 均方根频率

def rms_frequency(f, X_mag):

return np.sqrt(np.sum(f**2 * X_mag**2) / np.sum(X_mag**2))

# 频率方差

def frequency_variance(f, X_mag, f_centroid):

return np.sum((f - f_centroid)**2 * X_mag**2) / np.sum(X_mag**2)

# 频率标准差

def frequency_std(f, X_mag, f_centroid):

return np.sqrt(np.sum((f - f_centroid)**2 * X_mag**2) / np.sum(X_mag**2))

# 示例信号(正弦波+噪声)

fs = 1000 # 采样频率

T = 1 # 信号时长

t = np.linspace(0, T, fs)

x = np.sin(2 * np.pi * 50 * t) + 0.5 * np.random.randn(fs)

# 计算频谱

f, X_mag = compute_spectrum(x, fs)

# 计算各个频域特征

f_centroid = centroid_frequency(f, X_mag)

f_mean_squared = mean_squared_frequency(f, X_mag)

f_rms = rms_frequency(f, X_mag)

f_variance = frequency_variance(f, X_mag, f_centroid)

f_std = frequency_std(f, X_mag, f_centroid)

# 输出结果

print("重心频率:", f_centroid)

print("均方频率:", f_mean_squared)

print("均方根频率:", f_rms)

print("频率方差:", f_variance)

print("频率标准差:", f_std)

# 绘制频谱

plt.figure(figsize=(10, 6))

plt.plot(f, X_mag)

plt.title('Frequency Spectrum')

plt.xlabel('Frequency (Hz)')

plt.ylabel('Magnitude')

plt.grid(True)

plt.show()

代码简要解读:

频谱计算:通过FFT(快速傅里叶变换)计算信号的频谱。重心频率:通过加权平均频率来计算信号的频谱中心。均方频率:计算频谱的加权平均的平方频率。均方根频率:计算频谱的加权平方根频率。频率方差与标准差:通过频率偏离重心频率的程度计算频率方差和标准差。

// 相关文章

思远名字寓意,思远名字的含义,思远名字的意思解释
茄子尽量不要放冰箱!不仅因为新鲜度,还因为这样?
365beat网页怎么打不开

茄子尽量不要放冰箱!不仅因为新鲜度,还因为这样?

⌛ 07-25 ⚠️ 6809
魔力通讯苹果6怎么样
菠菜365定位

魔力通讯苹果6怎么样

⌛ 10-06 ⚠️ 1811