您的当前位置:首页正文

经典谱估计算法性能比较

2023-05-01 来源:客趣旅游网
经典谱估计算法性能比较仿真作业

工程1班 220150820 王子豪 1.直接周期图

Matlab程序如下:

clear;clc;

load test x;% 调出数据; N=2048;

Fn=-0.5:1/N:0.5-1/N; fx=fftshift(fft(x,N)); Pxx = fx.*conj(fx); Pxx = Pxx./N; Pxx = Pxx./max(Pxx); Pxx = 10*log10(Pxx); plot(Fn,Pxx);grid on;

直接求出的周期图如图1所示:

图1

1

2.Welch平均法

Matlab程序如下:

clear; % 调出数据; load test x; N=4096;

Fn=-0.5:1/N:0.5-1/N;

% 用 Welch 平均估计试验数据的功率谱;

xpsd=pwelch(x,hamming(33),16,N,'whole'); mmax=max(xpsd); xpsd=xpsd/mmax;

xpsd=10*log10(xpsd+0.000001); plot(Fn,fftshift(xpsd));grid on;

图2利用Welch法求出的周期图,共分四段,每段32点没有重合,使用了Hamming窗,这时谱变得平滑,但分辨率降低。

图2

图3也是用Welch法求出的周期图,每段32点,重合16点,使用了Hamming窗,谱变得更加平滑,分辨率与图2大体一致。

2

图3

3.自相关法(BT法)

Matlab程序如下:

clear; clc;

load test x; N=4096;

Fn=-0.5:1/N:0.5-1/N;

cx=xcorr(x,16);%计算序列的自相关函数 cxn=cx.*hamming(33)'; CXK=fft(cxn,N); xpsd=abs(CXK); mmax=max(xpsd); xpsd=xpsd/mmax;

xpsd=10*log10(xpsd+0.000001); plot(Fn,fftshift(xpsd));grid on;

图4是用BT法求得的功率谱,M=32,没有加窗。

3

图4

图5也是用BT法求得的功率谱,M=16,使用了Hamming窗。显然自相关函数的延迟M越小,谱变得越平滑。

图5

4

因篇幅问题不能全部显示,请点此查看更多更全内容