经典功率谱分析Matlab程序 - 范文中心

经典功率谱分析Matlab程序

12/12

一、直接法

clear;clc;close all; %清除变量;清屏;关闭当前图形窗口

Fs=1000;

t=0:1/Fs:1;

nfft=2048; %改变nfft 的值可对比不同采样值时的谱估计效果

%****************生成信号、噪声**************%

x1=cos(2*pi*40*t)+3*cos(2*pi*45*t);%信号

x2=randn(size(t)); %噪声

x3=x1+x2; %信号+噪声

[Pxx,f]=periodogram(x3,window,nfft,Fs); %直接法

plot(f,10*log10(Pxx));title('直接法 nfft=2048');;

set(gca,'xlim',[1 120]); ;ylabel('Am/dB');

xlabel('Frequency/Hz');

二、间接法

Fs=1000;% 采样频率

n=0:1/Fs:1;% 产生含有噪声的序列

x1=cos(2*pi*40*n)+3*cos(2*pi*45*n);%信号

x2=randn(size(n)); %噪声

x3=x1+x2; %信号+噪声

nfft=1024;

cxn=xcorr(x3);% 计算序列的自相关函数

CXk=fft(cxn);

Pxx=abs(CXk);

index=0:round(nfft/2-1);

f=index*Fs/nfft;

plot_Pxx=10*log10(Pxx(index+1));

figure (1)

plot(f,plot_Pxx);

title('间接法 nfft=1024');ylabel('Am/dB');

set(gca,'xlim',[1 120]);

xlabel('Frequency/Hz');

三、Bartlett 法

clear;clc;close all; %清除变量;清屏;关闭当前图形窗口

Fs=1000;

t=0:1/Fs:1;

nfft=1024;

%****************生成信号、噪声**************%

x1=cos(2*pi*40*t)+3*cos(2*pi*45*t);%信号

x2=randn(size(t)); %噪声

x3=x1+x2; %信号+噪声

window=hamming(512); %海明窗

noverlap=0; %数据无重叠

p=0.9; %置信概率

[Pxx,Pxxc]=psd(x3,nfft,Fs,window,noverlap,p);

index=0:round(nfft/2-1);

k=index*Fs/nfft;

plot_Pxx=10*log10(Pxx(index+1));

plot_Pxxc=10*log10(Pxxc(index+1));

figure(1)

plot(k,plot_Pxx);title('Bartlett法海明窗');;

set(gca,'xlim',[1 120]); ;ylabel('Am/dB');

xlabel('Frequency/Hz');

四、Welch 法

clear;clc;close all; %清除变量;清屏;关闭当前图形窗口

Fs=1000;

t=0:1/Fs:1;

nfft=1024;

%****************生成信号、噪声**************%

x1=cos(2*pi*40*t)+3*cos(2*pi*45*t);%信号

x2=randn(size(t)); %噪声

x3=x1+x2; %信号+噪声

window=hamming(512); %海明窗

noverlap=128;

range='onesided'; %频率间隔为[0 Fs/2],只计算一半的频

[Pxx1,f]=pwelch(x3,window,noverlap,nfft,Fs,range);

plot_Pxx1=10*log10(Pxx1);

figure(1);

plot(f,plot_Pxx1);title('Welch法海明窗');ylabel('Am/dB');

set(gca,'xlim',[1 120]); xlabel('Frequency/Hz');

对所给的实测信号进行谱估计,本文采用了周期图法和Welch 法。其程序如下所示:

一、周期图法

clear;clc;close all;%清除变量;清屏;关闭当前图形窗口

Fs=2000; %采样频率

load Chanel8Xia2Data.mat;

x1=Chanel8Xia2Gray;

x2=Chanel8Xia2Sti;

Mlag=length(x1);

%****************求功率谱密度**************%

[Pxx1,f]=periodogram(x1,window,length(x1),Fs);%直接法

[Pxx2,f]=periodogram(x2,window,length(x1),Fs);

plot_Pxx1=10*log10(Pxx1);

plot_Pxx2=10*log10(Pxx2);

%****************显示功率谱密度曲线**************%

figure(1);

plot(f,plot_Pxx1,'b');

axis([0,100,-50,40]);grid on;

title('直接法 ');;

set(gca,'xlim',[1 100]);

ylabel('Am/dB');

hold on;

plot(f,plot_Pxx2,'r');

axis([0,100,-50,40]);grid on;

title('直接法 ');

xlabel('Frequency/Hz');ylabel('Am/dB');

二、Welch 法

clear;clc;close all; %清除变量;清屏;关闭当前图形窗口

Fs=2000;

load Chanel8Xia2Data.mat;

x1=Chanel8Xia2Gray;

x2=Chanel8Xia2Sti;

window1=hamming(1024); %海明窗

noverlap=256; %数据无重叠

range='onesided'; %频率间隔为[0 Fs/2],只计算一半的频、 %****************求功率谱密度**************%

[Pxx1,f]=pwelch(x1,window1,noverlap,length(x1),Fs,range);

[Pxx2,f]=pwelch(x2,window1,noverlap,length(x1),Fs,range);

plot_Pxx1=10*log10(Pxx1);

plot_Pxx2=10*log10(Pxx2);

%****************显示功率谱密度曲线**************%

figure(1);

plot(f,plot_Pxx1,'b');

axis([0,100,-30,30]);grid on;

title('Welch法海明窗');ylabel('Am/dB');

set(gca,'xlim',[1 100]);

hold on;

plot(f,plot_Pxx2,'r');

title('Welch法海明窗');ylabel('Am/dB');

xlabel('Frequency/Hz');


相关内容

  • 雷达电子战仿真系统设计
    第8卷第4期 2010年8月 信息与电子工程 V01.8.No.4Aug.,2010 INFORMATIONANDELECTRONICENGINEERING 文章编号:1672-2892(2010)04-0393-05 雷达电子战仿真系统设 ...
  • 巴特沃兹滤波器
    巴特沃兹滤波器 (Butterworth) 特点:具有通带内最大平坦的振幅特性,且随f单调 其幅度平方函数具有如下形式: 式中,N为整数,称为滤波器的阶数,N越大,通带和阻带的近似性越好,过渡带也越陡.如下图所示: 图 巴特沃兹filter ...
  • AM模拟调制系统的设计与仿真
    摘要 调幅,英文是Amplitude Modulation(AM ).调幅也就是通常说的中波,范围在503---1060KHz .调幅是用声音的高低变为幅度的变化的电信号. 本课程设计主要研究了AM 模拟调制系统的设计和仿真.在本次通信系统 ...
  • 基于MATLAB的地沟油生物柴油掺烧比优化分析_张珺涵
    第14卷第24期2014年8月1671-1815(2014)24-0127-06 科学技术与工程 Science Technology and Engineering Vol. 14No. 24Aug.2014 2014Sci. Tech. ...
  • 十大经典数学模型
    十大经典数学模型 1.蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,是比赛时必用的方法) 2.数据拟合.参数估计.插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而 ...
  • 通信系统原理
    课 程 设 计 报 告 系 : 三 系 学 生 姓 名 :班 级:学 号: [1**********] 成 绩:指 导 教 师: 吴 琼 开 课 时 间:2013-2014学年一学期 目录 一.课程设计目的 ................ ...
  • 用matlab实现线性常系数差分方程的求解
    数字信号处理课程设计 题目: 试实现线性常系数差分方程的求解 学院: 专业: 班级: 学号: 组员: 指导教师: 题目:用Matlab 实现线性常系数差分方程求解 一. 设计要求 1. 2. 3. 掌握线性常系数差分方程的求解 熟练掌握Ma ...
  • 自适应滤波器的MATLAB实现
    自适应滤波器的MATLAB实现 2009级 1引言 滤波是信号与信息处理领域的一种最基本而又重要的技术.在信号的传输过程中,通常会受到噪声或干扰的污染,而滤波器就是用来从含有噪声或干扰信号的数据中提取人们感兴趣的.接近规定质量的信息.滤波器 ...
  • 应用于雷达系统匹配滤波器的matlab仿真
    应用于雷达系统匹配滤波器的matlab仿真 一.匹配滤波器原理 在输入为确知加白噪声的情况下,所得输出信噪比最大的线性滤波器就是匹配滤波器,设一线性滤波器的输入信号为x(t): x(t)=s(t)+n(t) (1.1) 其中:s(t)为确知 ...
  • 三相瞬时功率理论在有源电力滤波器仿真中的研究
    第35卷第6期2013年12月 光学仪器 OPTICAL V01.35,No.6December,2013 INSTRUMENTS 文章编号:1005-5630(2013)06-0058-06 三相瞬时功率理论在有源电力滤波器仿真中的研究 ...