文档详情

基于MATLAB的功率谱估计实验.doc

发布:2018-12-05约1.64千字共5页下载文档
文本预览下载声明
一、实验目的 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法进行功率谱估计,则容易得到波形则比较平滑,便观察以及提高估计精度。
显示全部
相似文档