用matlab实现功率谱分析
[键入文字]RCISE 208051302 功率谱分辨率(A) 分别产生两个离散时间(以 10 赫兹的采样率,100 个时间点)正弦函数的抽样函数,表达式为 X(t)=2.6sin(4.2πt + φ) 和 Y(t) = 2.1 sin(4.4πt + θ),其中φ~U(0, 4π) ,θ~U(-π,π)且独立,分别将函数保存在数据文件 m10_3x. dat 、m10_y. dat,中;(B) Z(t) = X(t) + Y(t),读取两个数据文件中的记录数据,添加相应的条件产生 Z(t)的记录数据并保存在 m10_3z.dat;(C ) 使用 pwelch 估测和绘制 Z(t)的功率谱;(D) 重复上述,用 10 赫兹的采样率, 1000 个时间点,调整序列长度;(E) 根据以上结果讨论 Z(t)的频谱分辨率。程序如下:1、以 10 赫兹的采样率,100 个时间点时fai= unifrnd (0,6.28,1, 1);seita= unifrnd (-3.14,3.14,1, 1);t=0:0.1:9.9;a=4.2*3.14*t + fai;X=2.6*sin(a); %产生 X(t )savefile = .m10_3x.dat ;save(savefile, X );Y= 2.1*sin(4.4*3.14*t+seita); %产生 Y(t)savefile = .m10_3y. dat ;save(savefile, Y );Z= X+ Y; %产生 Z(t)[键入文字]savefile = .m10_3z.dat ;save(savefile, Z );pwelch(Z);绘得功率谱如下:2、用 10 赫兹的采样率,1000 个时间点时fai= unifrnd (0,6.28,1, 1);seita= unifrnd (-3.14,3.14,1, 1);t=0:0.1:99.9;a=4.2*3.14*t + fai;X=2.6*sin(a); %产生 X(t )savefile = .m10_3x.dat ;save(savefile, X );Y= 2.1*sin(4.4*3.14*t+seita); %产生 Y(t)savefile = .m10_3y. dat ;save(savefile, Y );Z= X+ Y; %产生 Z(t)savefile = .m10_3z.dat ;[键入文字]save(savefile, Z );pwelch(Z);功率谱如下:由以上两种情况可知,当采样点更多时,函数的信息量越多,两个相邻谱峰分开的能力越强,相应的频谱分辨率也越好。