自己编写算法的功率谱密度的三种matlab实现方法.doc 立即下载
2024-12-12
约4.1千字
约13页
0
1.4MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

免费试读已结束,剩余 8 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

功率谱密度的三种matlab实现方法

一:实验目的:(1)掌握三种算法的概念、应用及特点;
(2)了解谱估计在信号分析中的作用;
(3)能够利用burg法对信号作谱估计,对信号的特点加以分析。
二;实验内容:
简单说明三种方法的原理。
用三种方法编写程序,在matlab中实现。
将计算结果表示成图形的形式,给出三种情况的功率谱图。
比较三种方法的特性。
写出自己的心得体会。
三:实验原理:
1.周期图法:
周期图法又称直接法。它是从随机信号x(n)中截取N长的一段,把它视为能量有限x(n)真实功率谱的估计的抽样.
认为随机序列是广义平稳且各态遍历的,可以用其一个样本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)长,称为加延迟窗。因此所得的功率谱仅是近似值,也叫谱估计,式中的代表估值。一般取M<<N,因为只有当M较小时,序列傅式变换的点数才较小,功率谱的计算量才不至于大到难以实现,而且谱估计质量也较好。因此,在FFT问世之前,相关法是最常用的谱估计方法。
三:Burg法:
AR模型功率谱估计又称为自回归模型,它是一个全极点的模型,要利用AR模型进行功率谱估计须通过levinson_dubin递推算法由
Yule-Walker方程求得AR的参数:σ2,α1α2…αp。
计算中,预测系数必须满足Lenvinson-Durbin递推关系,并且可直接计算而无需首先计算自相关系数。这种方法的优点就是对未知数据不需要做任何假设,估计精度较高。其缺点是在分析噪声中的正弦信号时,会引起谱线分裂,且谱峰的位置和正弦信号的相位有很大的关系。
Burg算法是使前向预测误差和后向预测误差均方误差之和最小来求取Km的,它不对已知数据段之外的数据做认为假设。计算m阶预测误差的递推表示公式如下:


求取反射系数的公式如下:

对于平稳随机过程,可以用时间平均代替集合平均,因此上式可写成:

这样便可求得AR模型的反射系数。
将m阶AR模型的反射系数和m-1阶AR模型的系数代入到Levinson关系式中,可以求得AR模型其他的p-1个参数。
Levinson关系式如下:

m阶AR模型的第m+1个参数G,其中是预测误差功率,可由递推公式求得。
易知为进行该式的递推,必须知道0阶AR模型误差功率,

可知该式由给定序列易于求得。完成上述过程,即最终求得了表征该随机信号的AR模型的p+1个参数。然后根据

即可求得该随机信号的功率谱密度。


实验内容:
实验程序及实验图像
周期法:
Fs=1000;
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);
gridon


							

								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');
gridon;



nfft=256

nfft
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

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

文档大小:1.4MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用