功率谱密度估计方法的MATLAB实现文档格式.docx

上传人:b****5 文档编号:21529862 上传时间:2023-01-31 格式:DOCX 页数:12 大小:286.64KB
下载 相关 举报
功率谱密度估计方法的MATLAB实现文档格式.docx_第1页
第1页 / 共12页
功率谱密度估计方法的MATLAB实现文档格式.docx_第2页
第2页 / 共12页
功率谱密度估计方法的MATLAB实现文档格式.docx_第3页
第3页 / 共12页
功率谱密度估计方法的MATLAB实现文档格式.docx_第4页
第4页 / 共12页
功率谱密度估计方法的MATLAB实现文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

功率谱密度估计方法的MATLAB实现文档格式.docx

《功率谱密度估计方法的MATLAB实现文档格式.docx》由会员分享,可在线阅读,更多相关《功率谱密度估计方法的MATLAB实现文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

功率谱密度估计方法的MATLAB实现文档格式.docx

%采样频率100kHzN=1024;

%数据长度N=1024n=0:

N-1;

t=n/Fs;

xn=sin(2000*2*pi*t);

%正弦波,f=2000HzY=awgn(xn,10);

%加入信噪比为10db的高斯白噪声subplot(2,1,1);

plot(n,Y)title(信号)xlabel(时间);

ylabel(幅度);

gridon;

window=boxcar(length(xn);

%矩形窗nfft=N/4;

%采样点数Pxxf=periodogram(Y,window,nfft,Fs);

%直接法subplot(2,1,2);

plot(f,10*log10(Pxx);

title(周期图法谱估计,int2str(N),点);

xlabel(频率(Hz));

ylabel(功率谱密度);

2、仿真结果二、修正周期图法(加窗)谱估计程序1、源程序Fs=100000;

%采样频率100kHzN=512;

%数据长度M=32;

%汉明窗宽度n=0:

subplot(2,1,1);

window=hamming(M);

%汉明窗Pxxf=pwelch(Y,window,10,256,Fs);

subplot(2,1,2);

title(修正周期图法谱估计N=,int2str(N),M=,int2str(M);

2、仿真结果三、最大熵法谱估计程序1、源程序fs=1;

%设采样频率N=128;

%数据长度改变数据长度会导致分辨率的变化;

f1=0.2*fs;

%第一个sin信号的频率,f1/fs=0.2f2=0.3*fs;

%第二个sin信号的频率,f2/fs=0.2或者0.3P=10;

%滤波器阶数n=1:

N;

s=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);

%s为原始信号x=awgn(s,10);

%x为观测信号,即对原始信号加入白噪声,信噪比10dBfigure

(1);

%画出原始信号和观测信号subplot(2,1,1);

plot(s,b),xlabel(时间),ylabel(幅度),title(原始信号s);

grid;

plot(x,r),xlabel(时间),ylabel(幅度),title(观测信号x);

Pxx1,f=pmem(x,P,N,fs);

%最大熵谱估计figure

(2);

plot(f,10*log10(Pxx1);

xlabel(频率(Hz);

ylabel(功率谱(dB);

title(最大熵法谱估计模型阶数P=,int2str(P),数据长度N=,int2str(N);

2、仿真结果四、Levinson递推法谱估计程序1、源程序fs=1;

%设采样频率为1N=1000;

%第二个sin信号的频率,f1/fs=0.2或者0.3M=16;

%滤波器阶数的最大取值,超过则认为代价太大而放弃L=2*N;

%有限长序列进行离散傅里叶变换前,序列补零的长度n=1:

plot(s,b),axis(0100-33),xlabel(时间),ylabel(幅度),title(原始信号s);

plot(x,r),axis(0100-33),xlabel(时间),ylabel(幅度),title(观测信号x);

%计算自相关函数rxx=xcorr(x,x,M,biased);

%计算有偏估计自相关函数,长度为-M到M,%共2M+1r0=rxx(M+1);

%r0为零点上的自相关函数,相对于-M,第M+1个点为零点R=rxx(M+2:

2*M+1);

%R为从1到第M个点的自相关函数矩阵%确定矩阵大小a=zeros(M,M);

FPE=zeros(1,M);

%FPE:

最终预测误差,用来估计模型的阶次var=zeros(1,M);

%求初值a(1,1)=-R

(1)/r0;

%一阶模型参数var

(1)=(1-(abs(a(1,1)2)*r0;

%一阶方差FPE

(1)=var

(1)*(M+2)/(M);

%递推forp=2:

Msum=0;

fork=1:

p-1%求a(p,p)sum=sum+a(p-1,k)*R(p-k);

enda(p,p)=-(R(p)+sum)/var(p-1);

p-1%求a(p,k)a(p,k)=a(p-1,k)+a(p,p)*a(p-1,p-k);

endvar(p)=(1-a(p,p)2)*var(p-1);

%求方差FPE(p)=var(p)*(M+1+p)/(M+1-p);

%求最终预测误差end%确定AR模型的最佳阶数min=FPE

(1);

%求出FPE最小时对应的阶数p=1;

fork=2:

MifFPE(k)2fori=1:

p-2a(p-1,i)=a(p-2,i)+k(p-1)*a(p-2,p-1-i);

endenda(p-1,p-1)=k(p-1);

%求解前向预测误差forn=p+1:

Nef(p,n)=ef(p-1,n)+k(p-1)*eb(p-1,n-1);

end%求解后向预测误差forn=p:

N-1eb(p,n)=eb(p-1,n-1)+k(p-1)*ef(p-1,n);

endend%计算功率谱forj=1:

Nsum3=0;

sum4=0;

fori=1:

p-1sum3=sum3+a(p-1,i)*cos(2*pi*i*j/N);

endsum3=1+sum3;

p-1sum4=sum4+a(p-1,i)*sin(2*pi*i*j/N);

endpxx=sqrt(sum3*sum3+sum4*sum4);

pxx=q(M)/pxx;

pxx=10*log10(pxx);

pp(j)=pxx;

end%画出功率谱ff=1:

ff=ff/N;

figure;

plot(ff,pp),axis(00.5-2010),xlabel(频率),ylabel(幅度(dB)),title(功率谱P);

2、仿真结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1