自己编写算法的功率谱密度的三种matlab实现方法.docVIP

自己编写算法的功率谱密度的三种matlab实现方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
功率谱密度的三种matlab实现方法 一:实验目的: (1)掌握算法的概念、应用及特点; (2)了解谱估计在信号分析中的作用; (3) 能够利用法对信号作谱估计,对信号的特点加以分析。 的估计的抽样. 认为随机序列是广义平稳且各态遍历的,可以用其一个样本x(n)中的一段来估计该随机序列的功率谱。这当然必然带来误差。由于对采用DFT,就默认在时域是周期的,以及在频域是周期的。这种方法把随机序列样本x(n)看成是截得一段的周期延拓,这也就是周期图法这个名字的来历。 相关法(间接法): 这种方法以相关函数为媒介来计算功率谱,所以又叫间接法。这种方法的具体步骤是: 第一步:从无限长随机序列x(n)中截取长度N的有限长序列列 第二步:由N长序列求(2M-1)点的自相关函数序列。 (2-1) 这里,m=-(M-1)…,-1,0,1…,M-1,MN,是双边序列,但是由自相关函数的偶对称性式,只要求出m=0,。。。,M-1的傅里叶变换,另一半也就知道了。 第三步:由相关函数的傅式变换求功率谱。即 以上过程中经历了两次截断,一次是将x(n)截成N长,称为加数据窗,一次是将x(n)截成(2M-1)长,称为加延迟窗。因此所得的功率谱仅是近似值,也叫谱估计,式中的代表估值。一般取MN,因为只有当M较小时,序列傅式变换的点数才较小,功率谱的计算量才不至于大到难以实现,而且谱估计质量也较好。因此,在FFT问世之前,相关法是最常用的谱估计方法。 三:Burg法: AR模型功率谱估计又称为自回归模型,它是一个全极点的模型,要利用AR模型进行功率谱估计须通过levinson_dubin递推算法由 Yule-Walker方程求得AR的参数:σα1α2…αp。 nfft=10000; %2^n n=0:Fs; x=sin(2*pi*0.2*n)+sqrt(2)*sin(2*pi*0.213*n)+randn(size(n)); X=fft(x,nfft); Pxx=abs(X).^2/length(n); %求解PSD t=0:round(nfft/2-1); f=t/nfft; P=10*log10(Pxx(t+1)); %纵坐标的单位为dB plot(f,P); grid on nfft=200 nfft=1024 nfft=10000 相关法: clear; Fs=1000; %采样频率 n=0:Fs;%产生含有噪声的序列 nfft=1024; xn=sin(2*pi*0.2*n)+sqrt(2)*sin(2*pi*0.213*n)+randn(size(n)); cxn=xcorr(xn,unbiased); %计算序列的自相关函数 CXk=fft(cxn,nfft); %求出功率谱密度 Pxx=abs(CXk); index=0:round(nfft/2-1); f=index/nfft; plot_Pxx=10*log10(Pxx(index+1)); plot(f,plot_Pxx); xlabel(频率); ylabel(功率/DB); grid on; nfft=256 nfft=1024 Burg法: clear Fs=1000 %设置关键变量,可通过调节这些变量观察不同效果 f1=0.2; f2=0.213; nfft=128; %取样点数 p=50; %阶数p应该选择在N/3pN/2 delta=1; m=sqrt(-1); f=0:1/1000:0.5; n=1:Fs; xn=sin(2*pi*f1*n)+sqrt(2)*sin(2*pi*f2*n)+randn(size(n)); figure; plot(n,xn); title(burg时域); xn= xn(:); N=length(xn); ef = xn; eb = xn; a = 1; for l=1:p efp = ef(2:end);%m-1阶前向预测误差 ebp = eb(1:end-1);%m-1阶后向预测误差 num = -2.*ebp*efp;%1km分子多项式 den = efp*efp+ebp*ebp;%1km的分母多项式 k(l) = num ./ den;%计算反射系数 % 更新前向和后向预测误差 ef = efp + k(l)*ebp;%各阶前向预测误差 eb = ebp + k(l)*efp;%各阶后向预测误差 % 计算模型参数 a=[a;0] + k(l)*[0;c

文档评论(0)

文档资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档