功率谱分析(Matlab)

合集下载

matlab 功率谱生成时域

matlab 功率谱生成时域

【MATLAB功率谱生成时域】一、MATLAB功率谱概述1.1 什么是功率谱功率谱是描述信号功率随频率变化的函数,是信号在频域上的表示。

对于随机信号而言,功率谱可以用来表示信号的能量分布情况,对于非随机信号,可以用来表示信号的频谱特性。

1.2 MATLAB中的功率谱在MATLAB中,可以通过一些函数来生成时域信号的功率谱,常用的函数包括pwelch、periodogram等。

二、MATLAB功率谱生成的基本步骤2.1 生成时域信号首先需要生成一个时域信号,可以是一维或多维的数据,可以是离散的数据或连续的数据。

2.2 对信号进行预处理在对信号进行功率谱分析之前,有时需要对信号进行一些预处理,例如去除噪声、滤波等操作。

2.3 计算功率谱使用MATLAB中的功率谱函数对预处理后的信号进行功率谱计算,得到频率和功率谱密度。

三、使用MATLAB生成时域信号3.1 生成随机信号可以使用MATLAB中的randn函数生成服从正态分布的随机信号。

3.2 生成正弦信号可以使用MATLAB中的sin函数生成正弦信号。

3.3 生成方波信号可以使用MATLAB中的square函数生成方波信号。

四、MATLAB中功率谱生成示例4.1 生成随机信号的功率谱可以使用pwelch函数对随机信号进行功率谱分析,并画出功率谱图。

4.2 生成正弦信号的功率谱可以使用pwelch函数对正弦信号进行功率谱分析,并画出功率谱图。

4.3 生成方波信号的功率谱可以使用pwelch函数对方波信号进行功率谱分析,并画出功率谱图。

五、MATLAB功率谱生成时域的应用5.1 信号频谱分析利用功率谱可以对信号的频谱特性进行分析,从而了解信号的频率成分和能量分布情况。

5.2 信号滤波通过对信号的功率谱进行分析,可以设计相应的滤波器来滤除不需要的频率成分,实现信号的滤波处理。

六、结语MATLAB提供了丰富的函数和工具,可以方便地对时域信号进行功率谱分析。

通过使用MATLAB进行功率谱分析,可以更加深入地了解信号在频域上的特性,为信号处理和频谱分析提供了有力的工具支持。

matlab中 功率谱估计的函数

matlab中 功率谱估计的函数

在matlab中,功率谱估计是信号处理和频谱分析中常用的一种方法。

通过对信号的频谱特性进行估计,可以有效地分析信号的功率分布情况,从而为信号处理和系统设计提供重要的参考信息。

在matlab中,提供了多种功率谱估计的函数,以下将对其中几种常用的函数进行介绍和分析。

1. periodogram函数periodogram函数是matlab中用于估计信号功率谱密度的函数之一。

它基于傅里叶变换将离散时间信号转换成频域信号,然后计算频域信号的功率谱密度。

其调用格式为:[Pxx, F] = periodogram(x,window,nfft,fs)其中,x为输入的离散时间信号,window为窗函数,nfft为离散傅里叶变换的点数,fs为信号的采样频率。

periodogram函数返回的Pxx 为功率谱密度估计值,F为对应的频率。

2. pwelch函数pwelch函数也是用于估计功率谱密度的函数,它采用了Welch方法,通过对信号进行分段处理,然后对各段信号进行傅里叶变换,并对各段功率谱密度进行平均。

其调用格式为:[Pxx, F] = pwelch(x,window,noverlap,nfft,fs)其中,x为输入的离散时间信号,window为窗函数,noverlap为相邻分段的重叠点数,nfft为离散傅里叶变换的点数,fs为信号的采样频率。

pwelch函数返回的Pxx为功率谱密度估计值,F为对应的频率。

3. cpsd函数cpsd函数用于估计信号的交叉功率谱密度,即两个信号之间的频谱特性。

其调用格式为:[Pxy, F] = cpsd(x,y,window,noverlap,nfft,fs)其中,x和y为输入的两个离散时间信号,window为窗函数,noverlap为相邻分段的重叠点数,nfft为离散傅里叶变换的点数,fs为信号的采样频率。

cpsd函数返回的Pxy为交叉功率谱密度估计值,F为对应的频率。

4. mscohere函数mscohere函数用于估计信号的相干函数,即两个信号之间的相关性。

用matlab实现功率谱分析

用matlab实现功率谱分析

EXERCISE 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);功率谱如下:由以上两种情况可知,当采样点更多时,函数的信息量越多,两个相邻谱峰分开的能力越强,相应的频谱分辨率也越好。

matlab 功率谱计算

matlab 功率谱计算

matlab 功率谱计算在MATLAB中,可以使用多种方法来计算信号的功率谱。

下面我将从多个角度介绍几种常用的方法。

方法一,使用fft函数计算功率谱。

1. 首先,将信号进行零均值化,即减去信号的均值。

2. 然后,使用fft函数对零均值化后的信号进行傅里叶变换,得到频域表示。

3. 对频域表示进行平方运算,得到每个频率分量的幅度平方。

4. 最后,对幅度平方进行归一化处理,即除以信号长度和采样频率的乘积,得到功率谱密度。

示例代码如下:matlab.% 假设信号为x,采样频率为Fs.x = % 输入信号。

Fs = % 采样频率。

% 零均值化。

x = x mean(x);% 计算功率谱。

N = length(x); % 信号长度。

X = fft(x); % 傅里叶变换。

Pxx = (abs(X).^2)/(NFs); % 幅度平方归一化。

% 绘制功率谱图。

f = (0:N-1)(Fs/N); % 频率轴。

plot(f, 10log10(Pxx));xlabel('频率 (Hz)');ylabel('功率谱密度 (dB/Hz)');方法二,使用pwelch函数计算功率谱。

MATLAB还提供了pwelch函数,可以更方便地计算信号的功率谱密度估计。

pwelch函数使用了Welch方法,可以自动进行分段加窗、重叠和平均处理,得到更准确的功率谱估计结果。

示例代码如下:matlab.% 假设信号为x,采样频率为Fs.x = % 输入信号。

Fs = % 采样频率。

% 计算功率谱。

[Pxx, f] = pwelch(x, [], [], [], Fs);% 绘制功率谱图。

plot(f, 10log10(Pxx));xlabel('频率 (Hz)');ylabel('功率谱密度 (dB/Hz)');以上是两种常用的计算信号功率谱的方法,你可以根据实际需求选择适合的方法进行计算。

matlab 加速度信号 功率谱 振型

matlab 加速度信号 功率谱 振型

标题:MATLAB中加速度信号处理及功率谱分析一、引言近年来,随着科技的不断发展,加速度传感器被广泛应用于工程领域中。

通过对加速度信号进行处理和分析,可以获取到关于结构物或设备运行状态的重要信息,从而实现对结构物或设备的健康监测和故障诊断。

MATLAB作为一款功能强大的工程计算软件,提供了丰富的工具和函数,能够帮助工程师和科研人员对加速度信号进行高效准确的处理和分析。

本文将介绍如何在MATLAB中对加速度信号进行处理和功率谱分析,以及如何通过功率谱分析获取加速度信号的振型信息。

二、加速度信号处理1. 加速度信号的获取在进行加速度信号处理之前,首先需要获取原始的加速度信号数据。

通常情况下,可以通过加速度传感器采集到结构物或设备的振动数据。

采集到的数据往往以时间序列的形式存在,每个时间点对应一个加速度数值。

在MATLAB中,可以通过load函数加载加速度信号数据文件,或者通过传感器接口直接获取实时数据。

2. 时域分析获得原始加速度信号数据后,可以进行时域分析。

时域分析是对信号在时间轴上的变化情况进行分析,常见的时域分析包括波形显示、均方根值计算、峰值提取等。

可以利用MATLAB绘制加速度信号的波形图,观察信号的振动特点和变化趋势;同时通过计算均方根值和提取峰值,获取信号的幅值信息和峰峰值。

3. 频域分析除了时域分析,频域分析也是加速度信号处理的重要环节。

频域分析是将信号在频率轴上进行分析,常见的频域分析包括傅里叶变换、功率谱密度分析等。

在MATLAB中,可以利用fft函数对加速度信号进行傅里叶变换,将时域信号转换为频域信号。

通过频谱分析可以获取加速度信号中的频率成分和频谱特性,为后续的功率谱分析奠定基础。

三、功率谱分析1. 功率谱密度估计功率谱密度是描述信号在频域上能量分布的重要指标,通过对加速度信号进行功率谱分析,可以获取信号在不同频率下的能量分布情况。

MATLAB中提供了多种功率谱密度估计方法,如周期图法、Welch方法、势密度方法等。

MATLAB处理信号得到频谱、相谱、功率谱全解

MATLAB处理信号得到频谱、相谱、功率谱全解

第一:频谱一.调用方法X=FFT(x);X=FFT(x,N);x=IFFT(X);x=IFFT(X,N)用MATLAB进行谱分析时注意:(1)函数FFT返回值的数据结构具有对称性。

例:N=8;n=0:N-1;xn=[4 3 2 6 7 8 9 0];Xk=fft(xn)→Xk =39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 -7.7071i 5.0000 4.7782 + 7.7071i 0 + 5.0000i -10.7782 - 6.2929iXk与xn的维数相同,共有8个元素。

Xk的第一个数对应于直流分量,即频率值为0。

(2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。

在IFFT时已经做了处理。

要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

二.FFT应用举例例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。

采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

clf;fs=100;N=128; %采样频率和数据点数n=0:N-1;t=n/fs; %时间序列x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求得Fourier变换后的振幅f=n*fs/N; %频率序列subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;%对信号采样数据为1024点的处理fs=100;N=1024;n=0:N-1;t=n/fs;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求取Fourier变换的振幅f=n*fs/N;subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=1024');grid on;subplot(2,2,4)plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=1024');grid on;运行结果:fs=100Hz,Nyquist频率为fs/2=50Hz。

matlab功率谱计算

matlab功率谱计算

matlab功率谱计算在MATLAB中,可以使用函数`pwelch`来计算信号的功率谱。

具体步骤如下:1. 准备信号数据。

您可以将信号数据保存在一个向量或数组中。

2. 设置参数。

您需要设置窗口长度(窗长)和窗口重叠。

窗长(window length)指的是计算功率谱时使用的每个窗口的数据点数。

通常情况下,窗长应该是2的幂次方,这样计算效率更高。

窗口重叠(window overlap)指的是每个窗口之间数据点的重叠数。

通常情况下,窗口重叠为窗长的一半。

3. 使用`pwelch`函数计算功率谱。

根据您的需求,可以指定输出参数和输入参数。

常见的输入参数有信号数据、窗长和窗口重叠数;常见的输出参数有频率和功率谱密度。

示例代码如下:```matlab% 准备信号数据signal = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];% 设置参数windowLength = 4; % 窗长windowOverlap = windowLength / 2; % 窗口重叠% 计算功率谱[powerSpectrum, frequencies] = pwelch(signal, windowLength, windowOverlap);% 绘制功率谱图plot(frequencies, 10*log10(powerSpectrum));xlabel('Frequency (Hz)');ylabel('Power Spectral Density (dB/Hz)');```这段代码会计算信号的功率谱,并绘制功率谱图。

其中,`powerSpectrum`为计算得到的功率谱密度,`frequencies`为对应的频率。

注意:`pwelch`函数还有许多其他的输入参数和输出参数,您可以根据自己的需求进行配置。

具体可参考MATLAB的帮助文档。

[matlab实现经典功率谱估计]matlab功率谱估计

[matlab实现经典功率谱估计]matlab功率谱估计

[matlab实现经典功率谱估计]matlab功率谱估计1、直接法:直接法又称周期图法,它是把随机序列x(n)的N个观测数据视为一能量有限的序列,直接计算x(n)的离散傅立叶变换,得X(k),然后再取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计。

Matlab代码示例:clear;Fs=1000; %采样频率n=0:1/Fs:1;%产生含有噪声的序列xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); window=boxcar(length(xn)); %矩形窗nfft=1024;[Pxx,f]=periodogram(xn,window,nfft,Fs); %直接法plot(f,10*log10(Pxx));2、间接法:间接法先由序列x(n)估计出自相关函数R(n),然后对R(n)进行傅立叶变换,便得到x(n)的功率谱估计。

Matlab代码示例:clear;Fs=1000; %采样频率n=0:1/Fs:1;%产生含有噪声的序列xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); nfft=1024;cxn=xcorr(xn,”unbiased”); %计算序列的自相关函数CXk=fft(cxn,nfft);Pxx=abs(CXk);index=0:round(nfft/2-1);k=index*Fs/nfft;plot_Pxx=10*log10(Pxx(index+1));plot(k,plot_Pxx);3、改进的直接法:对于直接法的功率谱估计,当数据长度N太大时,谱曲线起伏加剧,若N太小,谱的分辨率又不好,因此需要改进。

3.1、Bartlett法Bartlett平均周期图的方法是将N点的有限长序列x(n)分段求周期图再平均。

Matlab代码示例:clear;Fs=1000;n=0:1/Fs:1;xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); nfft=1024;window=boxcar(length(n)); %矩形窗noverlap=0; %数据无重叠p=0.9; %置信概率[Pxx,Pxxc]=psd(xn,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);pause;figure(2)plot(k,[plot_Pxx plot_Pxx-plot_Pxxc plot_Pxx+plot_Pxxc]);3.2、Welch法Welch法对Bartlett法进行了两方面的修正,一是选择适当的窗函数w(n),并再周期图计算前直接加进去,加窗的优点是无论什么样的窗函数均可使谱估计非负。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.3xn=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');gridN=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.25xn=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');gridN=1024;Nfft=512; %修改数据长度512Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t);x2=sin(2*pi*300*t); %0.3xn=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');gridN=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.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pmem(xn,24,Nfft,Fs); %修改阶数为24subplot(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');GridBurg法估计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.3xn=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');gridN=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.25xn=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');gridN=1024;Nfft=512; %修改数据长度512Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t);x2=sin(2*pi*300*t); %0.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pburg(xn,14,Nfft,Fs);subplot(4,1,3)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Burg f2/fs=300,Nfft=512, Oder=14');gridN=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.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pburg(xn,24,Nfft,Fs); %修改阶数为24subplot(4,1,4)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Burg f2/fs=300,Nfft=256, Oder=24');gridLevinson递推法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.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pyulear(xn,14,Nfft,Fs);%[Pxx1,f]=Levinson(xn,14,Nfft,Fs);subplot(4,1,1)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=256,f2/fs=0.3,Oder=14');gridN=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.25xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pyulear(xn,14,Nfft,Fs);subplot(4,1,2)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=256,f2/fs=0.25,Oder=14');gridN=1024;Nfft=512; %修改数据长度512Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t);x2=sin(2*pi*300*t); %0.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pyulear(xn,14,Nfft,Fs);subplot(4,1,3)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=512,f2/fs=0.3,Oder=14');gridN=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.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pyulear(xn,24,Nfft,Fs); %修改阶数为24subplot(4,1,4)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=256,f2/fs=0.3,Oder=24');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.3xn=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');gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t+pi/6); %相位加了pi/6x2=sin(2*pi*300*t); %0.3xn=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.3,Nfft=256,Oder=14,相位加pi/6');gridN=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.3xn=x1+awgn(x1,5)+x2+awgn(x2,5); %性噪比改为5[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=256,Oder=14,性噪比=5');gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*300*t);x2=sin(2*pi*400*t); %0.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pmem(xn,14,Nfft,Fs);subplot(4,1,4)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('MEM f1/fs=0.3,f2/fs=0.4,Nfft=256,Oder=14');gridBurg改变信号的相位、频率、信噪比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.3xn=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');gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t+pi/6); %相位加了pi/6x2=sin(2*pi*300*t); %0.3xn=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=300,Nfft=256, Oder=14,相位加pi/6'); gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*300*t);x2=sin(2*pi*400*t); %0.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pburg(xn,14,Nfft,Fs);subplot(4,1,3)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Burg f1/fs=300,f2/fs=400,Nfft=256, Oder=14'); gridN=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.3xn=x1+awgn(x1,5)+x2+awgn(x2,5); %性噪比改为5[Pxx1,f]=pburg(xn,14,Nfft,Fs);subplot(4,1,4)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)');title('Burg f2/fs=300,Nfft=256, Oder=14,性噪比=5');gridLevinson法改变信号的相位、频率、信噪比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.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pyulear(xn,14,Nfft,Fs);%[Pxx1,f]=Levinson(xn,14,Nfft,Fs);subplot(4,1,1)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=256,f2/fs=0.3,Oder=14');gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t+pi/6); %相位加了pi/6x2=sin(2*pi*300*t); %0.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pyulear(xn,14,Nfft,Fs);%[Pxx1,f]=Levinson(xn,14,Nfft,Fs);subplot(4,1,2)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=256,f2/fs=0.3,Oder=14,相位加pi/6'); gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*300*t);x2=sin(2*pi*400*t); %0.3xn=x1+awgn(x1,10)+x2+awgn(x2,10);[Pxx1,f]=pyulear(xn,14,Nfft,Fs);%[Pxx1,f]=Levinson(xn,14,Nfft,Fs);subplot(4,1,3)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=256,f1/fs=0.3,f2/fs=0.4,Oder=14'); gridN=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.3xn=x1+awgn(x1,5)+x2+awgn(x2,5); %性噪比位5[Pxx1,f]=pyulear(xn,14,Nfft,Fs);%[Pxx1,f]=Levinson(xn,14,Nfft,Fs);subplot(4,1,4)plot(f,10*log10(Pxx1));xlabel('Frequency (Hz)');ylabel('Power Spectrum (dB)'); title('Levinson Nfft=256,f2/fs=0.3,Oder=14,性噪比=5'); grid。

相关文档
最新文档