概述
目录
- 一、经典功率谱估计方法
- 1、周期图法
- 2、BT法
- 3、Welch法
- 二、仿真实例
- 1、性能比较
- 2、总结
- 3、MATLAB代码
- 三、参考文献
一、经典功率谱估计方法
对于离散时间平稳随机过程
u
(
n
)
u(n)
u(n),它的功率谱
S
(
w
)
S(w)
S(w) 描述了随机过程
u
(
n
)
u(n)
u(n) 中各频率成分的平均功率的大小。因此,可以通过计算功率谱密度函数
S
(
w
)
S(w)
S(w) 来间接的了解随机过程
u
(
n
)
u(n)
u(n) 中各频率成分的构成情况。
根据维纳-辛钦定理,平稳随机过程
u
(
n
)
u(n)
u(n) 的自相关函数
r
(
m
)
r(m)
r(m) 与其功率谱
S
(
w
)
S(w)
S(w) 是一对傅里叶变换关系。利用相关函数的傅里叶变换来估计随机过程功率谱的方法,称为经典功率谱估计。
1、周期图法
由于随机过程
u
(
n
)
u(n)
u(n) 的
N
N
N 个观测值
u
N
(
n
)
u_{N}(n)
uN(n) 是确定信号,对其进行傅里叶变换,得:
U
N
(
w
)
=
∑
n
=
0
N
−
1
u
N
(
n
)
e
−
j
w
n
U_{N}(w) =sum_{n=0}^{N-1}u_{N}(n) e^{-jwn}
UN(w)=n=0∑N−1uN(n)e−jwn
根据帕斯瓦尔关系,上式的模的平方是确定信号
u
N
(
n
)
u_{N}(n)
uN(n) 的能量谱,对能量谱除以持续时间
N
N
N,其结果则为
u
N
(
n
)
u_{N}(n)
uN(n) 的功率谱估计,将其作为随机过程
u
(
n
)
u(n)
u(n) 的功率谱的估计,表示为:
S
p
e
r
(
w
)
=
1
N
∣
U
N
(
w
)
∣
2
S_{per}(w) =frac{1}{N}|U_{N}(w)|^{2}
Sper(w)=N1∣UN(w)∣2
该方法称为功率谱估计的周期图法(periodogram)。该方法由于是直接通过观测数据的傅里叶变换求得,其又被称为直接法。
2、BT法
1958年,Blackman和Tukey在维纳-辛钦定理的基础上,提出了自相关谱估计法(简称BT法)。其具体实现方法为:先由观测数据估计出自相关函数,然后对其求傅里叶变换,以此结果作为对功率谱的估计。
该方法的计算步骤为以下两个公式:
r
(
m
)
=
1
N
∑
n
=
0
N
−
1
u
N
(
n
)
u
N
∗
(
n
−
m
)
r(m)=frac{1}{N}sum_{n=0}^{N-1}u_{N}(n)u_{N}^{*}(n-m)
r(m)=N1n=0∑N−1uN(n)uN∗(n−m)
S
B
T
(
w
)
=
∑
m
=
−
M
M
r
(
m
)
e
−
j
w
m
,
0
≤
M
≤
N
−
1
S_{BT}(w)=sum_{m=-M}^{M}r(m) e^{-jwm},0≤M≤N-1
SBT(w)=m=−M∑Mr(m)e−jwm,0≤M≤N−1
上述方法是通过自相关函数间接得到的,因此又被称为间接法。
当
M
=
N
−
1
M=N-1
M=N−1 时,上式的功率谱估计可表示为:
S
B
T
(
w
)
=
1
N
∣
U
N
(
w
)
∣
2
S_{BT}(w) =frac{1}{N}|U_{N}(w)|^{2}
SBT(w)=N1∣UN(w)∣2
比较周期图法和BT法可以看出,周期图法是BT法的一个特例。当
M
=
N
−
1
M=N-1
M=N−1 时,周期图法与BT法相同;当
M
<
<
N
−
1
M<<N-1
M<<N−1 时,BT法是对周期图法的平滑。
3、Welch法
1967年Welch提出了修正平均周期图法,即Welch法,它是在Bartlett法的基础上改进的。
Welch法估计信号功率谱的计算步骤如下:
(1)将长度为
N
N
N 的信号
u
N
(
n
)
u_{N}(n)
uN(n) 进行分段,相邻的两段数据交叠一半。若每段信号的长度为
M
M
M,信号将被分成
L
L
L 段,即:
L
=
N
−
M
/
2
M
/
2
L=frac{N-M/2}{M/2}
L=M/2N−M/2
(2)将第
i
(
1
≤
i
≤
L
)
i(1≤i≤L)
i(1≤i≤L) 段信号
u
N
i
(
n
)
u_{N}^{i}(n)
uNi(n) 与长度为
M
M
M 的窗函数
w
(
n
)
w(n)
w(n) 相乘。
(3)对加窗后的每段信号,利用周期图法求得其功率谱,即:
S
p
e
r
i
(
w
)
=
1
M
∣
∑
n
=
0
M
−
1
u
N
i
(
n
)
w
(
n
)
e
−
j
w
n
∣
2
S_{per}^{i}(w)= frac{1}{M}|sum^{M-1}_{n=0}u_{N}^{i}(n)w(n)e^{-jwn}|^{2}
Speri(w)=M1∣n=0∑M−1uNi(n)w(n)e−jwn∣2
(4)对每一段估计到的功率谱
S
p
e
r
i
(
w
)
S_{per}^{i}(w)
Speri(w) 进行求和平均,则得到Welch法的功率谱估计:
S
−
p
e
r
(
w
)
=
1
L
∑
i
=
1
L
S
p
e
r
i
(
w
)
overset{-}S_{per}(w)=frac{1}{L}sum_{i=1}^{L}S_{per}^{i}(w)
S−per(w)=L1i=1∑LSperi(w)
二、仿真实例
设随机过程
u
N
(
n
)
u_{N}(n)
uN(n) 由3个实正弦信号加噪声构成,即:
u
N
(
n
)
=
∑
k
=
1
3
s
k
(
n
)
+
v
(
n
)
u_{N}(n)=sum_{k=1}^{3}s_{k}(n)+v(n)
uN(n)=k=1∑3sk(n)+v(n)
其中,
s
k
(
n
)
=
A
k
c
o
s
(
2
π
f
k
n
+
φ
k
)
s_{k}(n)=A_{k}cos(2πf_{k}n+φ_{k})
sk(n)=Akcos(2πfkn+φk),归一化频率分别为
f
1
=
0.1
,
f
2
=
0.25
,
f
1
=
0.27
f_{1}=0.1,f_{2}=0.25,f_{1}=0.27
f1=0.1,f2=0.25,f1=0.27,
φ
k
φ_{k}
φk 是相互独立并在[0,2π]上服从均匀分布的随机相位;
v
(
n
)
v(n)
v(n) 是均值为0、方差为1的实高斯白噪声序列。
3个正弦信号的幅度
A
k
>
0
A_{k}>0
Ak>0 ,由每个信号的信噪比
S
N
R
k
SNR_{k}
SNRk 决定。它们的关系为:
S
N
R
k
=
10
l
o
g
10
(
A
k
2
2
σ
2
)
SNR_{k} = 10log_{10}(frac{A_{k}^{2}}{2σ^{2}})
SNRk=10log10(2σ2Ak2)
1、性能比较
2、总结
(1)经典功率谱估计方法可以用FFT进行快速计算,且计算量较小,是目前较常用的谱估计方法;
(2)功率谱的分辨率较低,它正比于
2
π
/
M
2π/M
2π/M,
M
M
M 是所使用信号的长度。
(3)由于加窗的影响,使得估计的功率谱主瓣展宽,降低了分辨率;
(4)方差性能不好,不是
S
(
w
)
S(w)
S(w) 的一致估计,且
N
N
N 增大时,谱曲线的起伏加剧;
(5)周期图的平滑和平均与窗函数的使用密切相关。平滑和平均主要是改善了周期图的方差,但会使得分辨率降低和偏差增大。因此,在实际应用时,需要在方差、分辨率和偏差之间进行折中选择。
3、MATLAB代码
clc;
clear all;
close all;
%% 仿真信号
N = 256; % 观测样本数(周期图法设为64,其他方法用256)
SNR = [30,30,27];
A = sqrt(2)*10.^(SNR./20);
freq = [10,25,27]; % 三个信号的频率
Fs = 100; % 采样频率
t = (0:N-1)/Fs; % 时间
fai = 2*pi*rand(3,length(t));
x = zeros(size(t));
for k = 1:3
x = x+A(k)*cos(2*pi*freq(k)*t+fai(k,:)); % 3个正弦信号的叠加
end
vn = randn(size(t));
y = x+vn; % 含有高斯白噪声的信号
%% 周期图法、BT法与Welch法估计随机信号的功率谱及性能对比
% 1、周期图法
N_fft = 256;
figure;
periodogram(y,[],'centered',N_fft,Fs);
xlabel('频率/Hz');
ylabel('功率谱密度(dB/Hz)');
title(['周期图法',',N=',num2str(N)]);
% 2、BT法
N_fft = 256;
rm = xcorr(y,'unbiased');
yn = fft(rm,N_fft); % 对信号进行快速Fourier变换
Ys = fftshift(yn);
figure;
fshift = (-N/2:N/2-1)*(Fs/N); % zero-centered frequency range
powershift = 20*log10(abs(Ys)); % zero-centered power
plot(fshift,powershift);
xlabel('频率/Hz');
ylabel('功率谱密度(dB/Hz)');
grid on;
title('BT法');
% 3、Welch法
N_fft = 256;
M = 64; % 窗长
Overlap = 32; % 重叠点的数目
figure;
pwelch(y,M,Overlap,N_fft,Fs,'centered');
xlabel('频率/Hz');
ylabel('功率谱密度(dB/Hz)');
title('Welch法');
三、参考文献
[1] 何子述, 夏威, 等. 现代数字信号处理及其应用[M]. 北京: 清华大学出版社,2009.
最后
以上就是老迟到鸭子为你收集整理的【信号频率估计】经典功率谱估计及其MATLAB仿真一、经典功率谱估计方法二、仿真实例三、参考文献的全部内容,希望文章能够帮你解决【信号频率估计】经典功率谱估计及其MATLAB仿真一、经典功率谱估计方法二、仿真实例三、参考文献所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复