功率谱分析(Matlab)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功率谱分析
由题目内容,设采样频率fs=1000HZ,数据长度为256,模型阶数为14,f1=200,f2=300、250。
(1)用最大熵法进行谱估计
运行程序后,观察图像f1和f2相差较小时,功率谱变化更剧烈;模型的阶数越高,图像中能够获得的信息就越多,但同时计算量也就越大;增加数据长度可以获得更多的信息,提高了谱分析的分辨率,这是因为AR模型的谱估计隐含着对数据和自相关函数的外推,其长度可能会超过给定长度,分辨率不受信源信号的限制。
(2)分别用Levinson递推法和Burg法进行功率谱分析
①Levinson递推法
运行程序后,观察图像,f1和f2相差较小时,功率谱变化更剧烈;模型的阶数越高,图像中能够获得的信息就越多,但同时计算量也就越大;增加数据长度可以获得更多的信息,提高了谱分析的分辨率,但本题中信号为正弦信号加白噪声,故图像观察不明显。
②Burg法
运行程序后,观察图像,f1和f2相差较小时,功率谱变化更剧烈;模型的阶数越高,图像中能够获得的信息就越多,但同时计算量也就越大;增加数据长度可以获得更多的信息,提高了谱分析的分辨率。
(3)改变信号的相位、频率、信噪比,上述谱分析结果有何变化
如果正弦信号的频率过大,超过fs/2,会产生频率混叠现象,输入f1=600HZ,会在400HZ处产生一个波峰;降低信噪比会导致谱分辨率下降;信号起始相位的变动可导致谱线的偏移和分裂(我的图像观察不到)。
最大熵法估计
N=1024;
Nfft=256;
Fs=1000;
n=0:N-1;
t=n/Fs;
x1=sin(2*pi*200*t);
x2=sin(2*pi*300*t); %0.3
xn=x1+awgn(x1,10)+x2+awgn(x2,10);
[Pxx1,f]=pmem(xn,14,Nfft,Fs);
subplot(4,1,1)
plot(f,10*log10(Pxx1));
xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)');
title('MEM f2/fs=0.3,Nfft=256,Oder=14');
grid
N=1024;
Nfft=256;
Fs=1000;
n=0:N-1;
t=n/Fs;
x1=sin(2*pi*200*t);
x2=sin(2*pi*250*t); %0.25
xn=x1+awgn(x1,10)+x2+awgn(x2,10);
[Pxx1,f]=pmem(xn,14,Nfft,Fs);
subplot(4,1,2)
plot(f,10*log10(Pxx1));
xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('MEM f2/fs=0.25,Nfft=256,Oder=14');
grid
N=1024;
Nfft=512; %修改数据长度512
Fs=1000;
n=0:N-1;
t=n/Fs;
x1=sin(2*pi*200*t);
x2=sin(2*pi*300*t); %0.3
xn=x1+awgn(x1,10)+x2+awgn(x2,10);
[Pxx1,f]=pmem(xn,14,Nfft,Fs);
subplot(4,1,3)
plot(f,10*log10(Pxx1));
xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('MEM f2/fs=0.3,Nfft=512,Oder=14');
grid
N=1024;
Nfft=256;
Fs=1000;
n=0:N-1;
t=n/Fs;
x1=sin(2*pi*200*t);
x2=sin(2*pi*300*t); %0.3
xn=x1+awgn(x1,10)+x2+awgn(x2,10);
[Pxx1,f]=pmem(xn,24,Nfft,Fs); %修改阶数为24
subplot(4,1,4)
plot(f,10*log10(Pxx1));
xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('MEM f2/fs=0.3,Nfft=256,Oder=24');
Grid
Burg法估计
N=1024;
Nfft=256;
Fs=1000;
n=0:N-1;
t=n/Fs;
x1=sin(2*pi*200*t);
x2=sin(2*pi*300*t); %0.3
xn=x1+awgn(x1,10)+x2+awgn(x2,10);
[Pxx1,f]=pburg(xn,14,Nfft,Fs);
subplot(4,1,1)
plot(f,10*log10(Pxx1));
xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Burg f2/fs=300,Nfft=256, Oder=14');
grid
N=1024;
Nfft=256;
Fs=1000;
n=0:N-1;
t=n/Fs;
x1=sin(2*pi*200*t);
x2=sin(2*pi*250*t); %0.25
xn=x1+awgn(x1,10)+x2+awgn(x2,10);
[Pxx1,f]=pburg(xn,14,Nfft,Fs);
subplot(4,1,2)
plot(f,10*log10(Pxx1));
xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Burg f2/fs=250,Nfft=256, Oder=14');
grid
N=1024;
Nfft=512; %修改数据长度512
Fs=1000;
n=0:N-1;
t=n/Fs;