基于MATLAB的功率谱估计实验
一、实验目的
1、进一步熟悉matlab软件的使用;
2、学会运用matlab自带函数实现编程;
3、掌握功率谱估计的方法。
二、实验原理
功率谱:随机信 的功率谱反映的是随机信 的频率成分及各成分的相对强弱。
功率谱估计:基于有限的数据寻找信 、随机过程或系统的频率成分。
两种基本算法:
周期图法:把功率谱和信 幅频特性的平方结合起来。
自相关法: 根据维纳-辛钦定理,先估计相关函数,再经傅立叶变换得功率谱估计。
(1)平均:对同一过程做多次周期图估计再加以平均
将数据N分为K段(一般无重叠),然后对每段数据分别估计其功率 谱,最后求平均值。
(2)平滑:用加窗的办法对单一功率谱估计加以平滑
用于自相关法求功率谱,对自相关估计加窗,然后再求其傅立叶变换。
Welch 法
对长度为N的数据段x(n)分段时,允许每一段有部分的重叠(一般重叠50%)。
每一段数据用一个合适的窗函数进行平滑处理。
求每段数据的DFT,周期图法求各段功率谱估计。
对各段功率谱求平均并归一化处理。
三、使用仪器、材料
计算机
Matlab软件
四、实验步骤
1、生成一个包括三个频率的噪声信 x(n)。
2、周期图法进行功率谱估计。
3、自相关法进行功率谱估计。
4、Welch法进行功率谱估计。
5、对EEG数据求功率谱估计。
五、实验过程原始记录(数据、图表、计算等)
(一)随机信 的功率谱估计
1、周期图法
Fs=1000;
nfft=1024;
n=0:1/Fs:1;
x=sin(2*pi*100*n)+2*sin(2*pi*200*n)+ 3*sin(2*pi*400*n)+randn(size(n));
X=fft(x,nfft);
Pxx= periodogram(x);
t=0:round(nfft/2-1);
f=t*Fs/nfft;
P=10*log10(Pxx(t+1));
plot(f,P)
2、自相关法
Fs=1000;
nfft=1024;
n=0:1/Fs:1;
x=sin(2*pi*100*n)+2*sin(2*pi*200*n)+ 3*sin(2*pi*400*n)+randn(size(n));
X=xcorr(x);
Pxx= fft(X,nfft);
t=0:round(nfft/2-1);
f=t*Fs/nfft;
P=10*log10(Pxx(t+1));
plot(f,P)
3、Welch 法
Fs=1000;
nfft=1024;
n=0:1/Fs:1;
x=sin(2*pi*100*n)+2*sin(2*pi*200*n)+ 3*sin(2*pi*400*n)+randn(size(n));
X=fft(x,nfft);
[Pxx,F] = pwelch(x,33,32,nfft,Fs)
t=0:round(nfft/2-1);
f=t*Fs/nfft;
P=10*log10(Pxx(t+1));
plot(f,P)
(二)对EEG数据求功率谱估计
Fs=1000;
nfft=1024;
n=0:1/Fs:1;
x=fopen(‘ECG’);
[x,cn]=fread(x,8000,’int32′);
x=x’;
x=x(1:2:8000);
X=fft(x,nfft);
Pxx=abs(X).^2/length(n);
t=0:round(nfft/2-1);
f=t*Fs/nfft;
P=10*log10(Pxx(t+1));
plot(f,P)
六、实验结果及分析
从对心电信 进行功率谱得到的结果截图来看,波形随着频率的增大而逐渐下降,心电信 的功率基本集中在低频段,这和心电信 的实际情形相符合。
在各种功率谱估计方法中,周期法和自相关法得到的波形毛刺比较多,而采用Welch法进行功率谱估计,则容易得到波形则比较平滑,便观察以及提高估计精度。
相关资源:Yalefree雅乐简谱打谱软件_打谱软件-WindowsServer工具类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!