谱相减MATLAB代码以及信噪比计算

谱相减MATLAB代码以及信噪比计算
谱相减MATLAB代码以及信噪比计算

实验二 语音信号的频域处理

一、 实验目的、要求

(1)掌握语音信号频域分析方法 (2)了解语音信号频域的特点

(3)了解谱减法作为频域语音增强的原理与编程实现 (3)了解谱减法的缺点,并分析产生该缺点的原因 二、实验原理

语音虽然是一个时变、非平稳的随机过程。但在短时间内可近似看作是平稳的。因此如果能从带噪语音的短时谱中估计出“纯净”语音的短时谱,即可达到语音增强的目的。由于噪声也是随机过程,因此这种估计只能建立在统计模型基础上。利用人耳感知对语音频谱分量的相位不敏感的特性,这类语音增强算法主要针对短时谱的幅度估计。

短时话幅度估计概述 设一帧加窗后的带噪语音为

()()()

01y n s n d n n N =+≤≤- (2.1)

其中()s n 为纯净语音,()d n 假设为平稳加性高斯噪声。

将()y n 在一组基{()}k n φ上展开,使展对系数为各不相关的随机变量。设()y n 的相关函数为(,)y R n m ,由K -L 展开得知{()}k n φ满足

1

()()(,)()N k y k m K n R n m m λφφ-==∑ (2.2)

则()y n 的展开式为

1

1

0()()()()N k k K N k k n y n Y n

Y y n n φφ-=-=?

=????=??

∑∑ (2.3) 如果()y n 的相关长度小于帧长N ,则()k n φ的近似函数为

2()k nk n j N π???

=

??

? (2.4)

可见()y n 的展开过程实际上相当于离散博里叶交换,其展开系数(为傅里叶变换系数。由()()()y n s n d n =+,则有:k k k Y S N =+。

其中[]||exp k k k Y Y j θ=、[]||exp k k k S S j α=、k N 分别为()y n 、()s n 及()d n 的傅里叶交换系数。由于假设噪声是高斯分布的,其傅里叶系数k N 相当于多个高

斯样本的加权和,故可认为仍然为高斯分布。其均值为0,方差可通过无语音时对噪声的分析而获得。

语音增强的任务就是利用已知的噪声功率谱信息,从k Y 中估计出k S 。由于人耳对相位不敏感,故只需估计出||k S ,然后借用带噪语音的相位,进行傅里叶逆变换就可得到增强的语音。基于短时谱幅度估计的方法的原理图如图2.1所示。

图2.1 短时谱估计原理图

在短时谱幅(STSA)估计基础上,人们提出了许多语音增强算法。基本思想是利用输入带噪语音短时谱幅来估计清洁语音短时谱幅,结合带噪语音相位信息,得到增强信号。

运用短时傅里叶变换(STFT)和重叠相加是短时谱估计技术中最常用的方法。输入信号)(n y 的短时谱幅|)(|k Y 与一个修正因子相乘,得到增强信号谱幅度|)(?|k S

(通常修正因子与噪声信号)(n d 谱幅估计密切相关);或将含噪语音谱幅减去噪声谱幅估计,得到增强信号谱幅,这些方法统称为相减类型算法(subtractive -type algorithms)。噪声谱幅估计可以通过有声、无声检测获取。一

般认为噪声与信号不相关,增强信号谱幅|)(?|k S

是清洁语音信号)(n s 的谱幅估计。通常假设人耳对含噪语音相位产生的畸变不敏感,所以进行IDFT 恢复成时域信号时,含噪语音的相位一般不作处理。

三、使用仪器、材料

微机(带声卡)、耳机,话筒。

四、 实验步骤

(1) 分析含噪语音信号的频谱(幅度谱和相位谱) (2) 获取噪声信号频谱(幅度谱) (3) 对含噪语音信号进行分帧并进行加窗处理 (4) 将含噪语音信号谱和噪声谱作为输入,进行谱减法 (5) 回复增强语音信号帧. (6) 对比输入信号与增强信号波形,分析算法对其产生的影响. 五、实验过程原始记录(数据,图表,计算)

假设)(n y 为含噪语音离散时间序列,由清洁语音信号)(n s 和非相关加性噪声信号)(n d 组成。)(n y 可表示为

)(n y =)(n s +)(n d (2.5)

将输入信号按帧处理,前后帧之间重叠(一般为50%),对每帧含噪语音进行加窗处理,然后进行FFT 变换,变换到频率域。含噪语音的能量谱可以表示为

2|)(|k Y ≈2|)(|k S +2|)(|k D (2.6) 其中)(k Y 为

)(k Y =∑-=-1

02)(N n N

kn j e

n y π=|)(|k Y )(k i e ? (2.7)

其中)(k ?为含噪语音)(k Y 的相位。

由于没法直接得到含噪语音中噪声能量谱2|)(|k D ,一般将无声阶段的数帧噪声信号进行能量谱加权平均得到噪声能量谱估计2|)(|k D 。假设噪声与语音信号不相关,语音能量谱估计为

2|)(?|k S

=2|)(|k Y -2|)(?|k D (2.8) 其中清洁语音能量谱估计2|)(?|k S

由含噪语音能量谱减去噪声能量谱估计得到。由于噪声能量谱估计与含噪语音中噪声能量谱之间存在差异,式(3.4)可能出现负值,为了避免能量谱出现负值,将这些负值设为零,这一处理称为半波整流

(half-wave rectification)。通过半波整流,清洁语音能量谱估计2|)(?|k S

可表示为 0

|)(?|0|)(?|0

|)(?||)(?|2222

<>???=k S k S

k S k S

当当 (2.9) 结合含噪语音相位信息,通过逆离散傅里叶变换(IDFT)得到时域清洁语音信

号的估计信号)(?n s

。 )(?n s

=IDFT()(|)(?|k j e k S ?) (2.10) 其中增强语音信号频谱)(?k S

也可以通过时变滤波器)(k G 重建 )(?k S =)(k G )(k Y (2.11) 式中时变滤波器(或称为增益函数))(k G 可表示为

否则

如果βαβα+<

????

?

?

??

???-=1

|)(||)(?|)|)(||)(?|()|)(||)(?|1()(2

25.0225.02

2k Y k D k Y k D k Y k D

k G (2.12)

六:实验结果,及分析

(a) 原始含噪语音

(b) 谱相减增强语音

(c) 原始含噪语音

(d) 谱相减增强语音

图2.2 谱减法结果分析

实验结果:图2.2中(a),(c)为不同信噪比输入含噪语音信号,图2.2中(b),(d)为对

应增强语音信号。当信噪比较低时,降噪效果较差。并且引入音乐噪声。

算法缺陷分析:

(1)不可避免的引入音乐噪声。要有效地滤除含噪语音中的噪声,需要准确地估计含噪语音中噪声的频谱。噪声谱估计越准确,增强信号谱中音乐噪声越小。然而,由于不能直接得到噪声谱,在绝大多数谱相减算法中,通过加权平均无声阶段噪声谱得到噪声谱估计,这种噪声谱估计与含噪语音中的瞬时噪声谱存在差异,噪声平稳性越差,差异越大,由于这种差异的存在,谱相减不可避免地引入音乐噪声。

(2) 半波、全波整流

式(3.4)中负能量值的产生是由于噪声谱估计发生了错误。这些负值用半波整流(被设定为0)或全波整流(被设定为绝对值),这样处理并没有纠正这种错误,可能导致时域信号更进一步的失真。

(3) 用含噪语音的相位作为增强语音的相位

在生成增强时域信号时,含噪语音的相位并没有作任何修改。这是基于这样一个事实,相位的失真对语音质量下降造成的影响不大。当信噪比比较高(>5dB)时,相位失真确实对语音质量的影响不大,然而,当信噪比较低时(<0dB)这种由于相位失真造成的语音质量下降是可以感觉得到的。

七、实验参考程序代码

谱相减原程序代码

hanning=zeros(1,256);

speech=zeros(1,32000);

dd=wavread('D:\语音信号处理实验2\noise.wav');%噪声;

sp=wavread('D:\语音信号处理实验2\speech.wav');%纯语音;

hanning=zeros(1,256);

noise=dd(10000:45000);

speech=sp(25000:60000);

e2=noise+speech;

szeros=zeros(1,32000);

soutput1=zeros(1,32000);

j=sqrt(-1);

a=3,b=0.01;

Snoise=zeros(1,256);

phase=zeros(1,256);

for n=1:256

hanning(n)=(1/2)*(1-cos((2*pi)*(n-1)/255));

end

% to get noise spectral

Noise=zeros(1,256);Noise1=zeros(1,256);

for i=1:3

Noise1(1:256)=abs(fft(e2(1+i*256:256*(i+1)).*hanning'));

Noise=Noise+Noise1/3;

% spectral subtraction algrithm

for i=1:245 %%第i帧

snoise=e2((i-1)*128+1:(i-1)*128+256).*hanning';

phase=angle(fft(snoise)); % to get noisy signal spectral phase

Snoise=abs(fft(snoise)); % to get noisy signal spectral amplitude

for n=1:256

if(Snoise(n)^2-Noise(n)^2)<0 %the power of enhanced speech must be positive

Sout0(n)=0.1*Snoise(n);

else

Sout0(n)=(Snoise(n)^2-(Noise(n)*1.5)^2)^0.5; %power type spectral subtraction

end

S0(n)=Sout0(n)*(cos(phase(n))+j*sin(phase(n))); % to get enhanced speech spectral amplitude

end

sout0=ifft(S0);

szeros(((i-1)*128+1):((i-1)*128+256))=real(sout0);

soutput1=soutput1+szeros;

szeros=zeros(1,32000);

end

%the following is for SNR calculation

sp_energe=zeros(1,256);sn_energe=zeros(1,256);SN=zeros(1,256);

in_SNR1=zeros(1,125);out_SNR1=zeros(1,125);snoise=zeros(1,256);

for i=1:240

snoise=speech((i-1)*128+1:(i-1)*128+256).*hanning';%第i帧清洁语音存放到snoise

SN=noise((i-1)*128+1:(i-1)*128+256).*hanning'; %第i帧清洁语音存放到SN

%in_SNR1(i)

sp_energe(i)=snoise(1:256)'*snoise(1:256);%第i帧清洁语音snoise的能量存放到sp_energe(i) sn_energe(i)=SN(1:256)'*SN(1:256);%第i帧皂声SN的能量存放到sn_energe(i)

in_SNR1(i)=10*log10(sp_energe(i)/sn_energe(i));%第i帧含噪语音信号输入信噪比in_SNR1(i)

SN=soutput1((i-1)*128+1:(i-1)*128+256).*hanning; %第i帧输出信号存放SN

sn_energe1(i)=SN(1:256)*SN(1:256)';%第i帧输出信号SN能量

out_SNR1(i)=10*log10(sp_energe(i)/abs(sn_energe1(i)-sp_energe(i)));%第i帧增强信号输出信噪比end

plot(e2);

hold on

plot(soutput1,'r');

plot(speech,'g');

plot(in_SNR1) hold on

plot(out_SNR1,'r')

figure

plot(hanning);

%sound(speech); %sound(e2); sound(soutput1);

实验一图像去噪

实验一图像去噪 在现代医学中,医学影像技术广泛应用于医学诊断和临床治疗,成为医生诊断和治疗的重要手段和工具。如今,医学图像在医疗诊断中起着不可低估的重要作用,核磁共振,超声,计算机X射线断层扫描以及其他的成像技术等,都是无侵害的器官体外成像的有效手段。这些技术丰富了正常的何病态的解剖知识,同时也成为诊断和医疗体系的重要组成部分。 然而,由于不同的成像机理,医学图像往往存在时间、空间分辨率和信噪比的矛盾。医学成像收到各种实际因素的影响,如患者的舒适度,系统的要求等等,需要快速成像。图像中的噪声大大降低了图像的质量,使一些组织的边界变得模糊,细微结构难以辨认,加大了对图像细节识别和分析的难度,影响医学诊断。因此医学图像的去噪处理既要能有效的去处噪声,又要能很好的保留边界和结构信息。本实验通过对测试图像加不同类型的噪声,然后分别用各种滤波法处理,然后以定量分析各种滤波方法的特点。 一.实验原理 1.噪声的分类 根据噪声的统计特征可分为平稳随机噪声和非平稳随机噪声两种。根据噪声产生的来源,大致可以分为外部噪声和内部噪声两类。外部噪声主要有四种常见的形式: (1)光和电的基本性质引起的噪声。如电流可看作电子或空穴运动,这些粒子运动产生随机散粒噪声,导体中的电子流动的热噪声,光量子运动的光量子噪声等。 (2)由机械运动引起的噪声。如接头震动使电流不稳,磁头或磁带抖动等。(3)设备元器件及材料本身引起的噪声。 (4)系统内部电路的噪声。 而在图像中,噪声主要有三个特点: (1)叠加性 (2)随机性 (3)噪声和不同图像区域之间的相关性。

医学图像中,典型的噪声有:高斯噪声,锐利噪声,指数噪声,均匀噪声,脉冲噪声等等。 2.去噪的方法 人们根据实际图像的特点、噪声的统计特征和频谱分布规律, 发展了各式各样的去噪方法, 其中最为直观的方法是根据噪声能量一般集中于高频、而图像频谱则分布于一个有限区间的这一特点, 采用低通滤波来进行去噪的方法, 从本质上讲, 图像去噪的方法都是低通滤波的方法, 而低通滤波是一把双刃剑, 它在消除图像噪声的同时, 也会消除图像的部分有用的高频信息, 因此, 各种去噪方法的研究实际是在去噪和保留高频信息之间进行的权衡。 图像平滑处理视其噪声图像本身的特性而定, 可以在空间域也可以在频率域采用不同的措施。空间域里的一些方法是噪声去除, 即先判断某点是否为噪声点, 若是, 重新赋值, 如不是按原值输出。另一类方法是平均, 即不依赖于噪声点的识别和去除, 而对整个图像进行平均运算。在频域里是对图像频谱进行修正, 一般采用低通滤波方法, 而不像在空域里直接对图像的像素灰度级值进行运算。在空间域对图像平滑处理常用领域平均法,中值滤波和秩统计滤波。 2.1 多帧平均法 根据噪声空域随机性的特点,可以有效的压缩噪声,增强有用的信息。设噪声为加性噪声,即: g(x,y)=f(x,y)+n(x,y) 式中个g(x,y)为输出图像,f(x,y)为有用信息,n(x,y)为噪声。被测物保持不动,得到M帧图像,进行叠加后,除以m,使m>M,得到平均图像。 2.2 空间域滤波器 2.1.1 均值滤波 均值滤波是将一个像素及其邻域中所有像素的平均值赋给输出图像中相应的像素, 从而达到平滑的目的。其过程是使一个窗口在图像上滑动, 窗口中心位置的值用窗内各点值的平均值来代替, 即用几个像素的灰度平均值来代替一个像素的灰度。其主要的优点是算法简单、计算速度快, 但其代价是会造成图像一定程度的模糊。为解决邻域平均法造成图像模糊的问题, 可采用阈值法、K 邻点平均法、梯度倒数加权平滑法、最大均匀性平滑法、小斜面模型平滑法等。它们

matlab功率谱估计

功率谱估计及其MATLAB仿真 1经典功率谱估计 经典功率谱估计是将数据工作区外的未知数据假设为零,相当于数据加窗。经典功率谱估计方法分为:相关函数法(BT法)、周期图法以及两种改进的周期图估计法即平均周期图法和平滑平均周期图法,其中周期图法应用较多,具有代表性。 1.1相关函数法(BT法) 该方法先由序列x(n)估计出自相关函数R(n),然后对R(n)进行傅立叶变换,便得到x(n)的功率谱估计。当延迟与数据长度相比很小时,可以有良好的估计精度。 Matlab代码示例1(Btfangfa.M): Fs=500;%采样频率 n=0:1/Fs:1; xn=cos(2*pi*40*n)+3*cos(2*pi*90*n)+randn(size(n));%产生含有噪声的序列 nfft=512; cxn=xcorr(xn,'unbiased');%计算序列的自相关函数 CXk=fft(cxn,nfft); Pxx=abs(CXk); index=0:round(nfft/2-1); %Round towards nearest integer. k=index*Fs/nfft; plot_Pxx=10*log10(Pxx(index+1)); figure(1); plot(k,plot_Pxx); 结果如下: 1.2周期图法(periodogram) 周期图法是把随机序列x(n)的N个观测数据视为一能量有限的序列,直接计算x(n)的离散傅立叶变换得X(k),然后再取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计。Matlab代码示例2(PEriod.M): Fs=600; n=0:1/Fs:1;

Matlab频谱分析程序

Matlab频谱分析程序

Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation (谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。 从数学上看,一个平稳随机过程n x 的power spectrum (功率谱)和correlation sequence (相关序列)通过discrete-time Fourier transform (离散时间傅立叶变换)构成联系。从normalized frequency (归一化角频率)角度看,有下式 ()()j m xx xx m S R m e ωω∞ -=-∞ = ∑ 注:()() 2 xx S X ωω=,其中 ()/2 /2 lim N j n n N N X x e N ωω=-=∑ πωπ -<≤。 其matlab 近似为X=fft(x,N)/sqrt(N),在下文中()L X f 就是指matlab fft 函数的计算结果了 使用关系2/s f f ωπ=可以写成物理频率f 的函数,

其中s f 是采样频率 ()()2/s jfm f xx xx m S f R m e π∞ -=-∞ = ∑ 相关序列可以从功率谱用IDFT 变换求得: ()()()/2 2//2 2s s s f jfm f j m xx xx xx s f S e S f e R m d df f πωππ ωωπ- -= =?? 序列n x 在整个Nyquist 间隔上的平均功率可以 表示为 ()()() /2 /2 02s s f xx xx xx s f S S f R d df f ππ ωωπ- -= =?? 上式中的 ()()2xx xx S P ωωπ = 以及()()xx xx s S f P f f = 被定义为平稳随机信号n x 的power spectral density (PSD)(功率谱密度) 一个信号在频带[]1 2 1 2 ,,0ωωωω π ≤<≤上的平均功率 可以通过对PSD 在频带上积分求出 []()()2 1 121 2 ,xx xx P P d P d ωωωωωω ωωωω-- = +?? 从上式中可以看出()xx P ω是一个信号在一个无 穷小频带上的功率浓度,这也是为什么它叫做功率谱密度。

计算方法_全主元消去法_matlab程序

%求四阶线性方程组的MA TLAB程序 clear Ab=[0.001 2 1 5 1; 3 - 4 0.1 -2 2; 2 -1 2 0.01 3; 1.1 6 2.3 9 4];%增广矩阵 num=[1 2 3 4];%未知量x的对应序号 for i=1:3 A=abs(Ab(i:4,i:4));%系数矩阵取绝对值 [r,c]=find(A==max(A(:))); r=r+i-1;%最大值对应行号 c=c+i-1;%最大值对应列号 q=Ab(r,:),Ab(r,:)=Ab(i,:),Ab(i,:)=q;%行变换 w=Ab(:,c),Ab(:,c)=Ab(:,i),Ab(:,i)=w;%列变换 n=num(i),num(i)=num(c),num(c)=n;%列变换引起未知量x次序变化for j=i:3 Ab(j+1,:)=-Ab(j+1,i)*Ab(i,:)/Ab(i,i)+Ab(j+1,:);%消去过程 end end %最后得到系数矩阵为上三角矩阵 %回代算法求解上三角形方程组 x(4)=Ab(4,5)/Ab(4,4); x(3)=(Ab(3,5)-Ab(3,4)*x(4))/Ab(3,3); x(2)=(Ab(2,5)-Ab(2,3)*x(3)-Ab(2,4)*x(4))/Ab(2,2); x(1)=(Ab(1,5)-Ab(1,2)*x(2)-Ab(1,3)*x(3)-Ab(1,4)*x(4))/Ab(1,1); for s=1:4 fprintf('未知量x%g =%g\n',num(s),x(s)) end %验证如下 %A=[0.001 2 1 5 1; 3 -4 0.1 -2 2;2 -1 2 0.01 3; 1.1 6 2.3 9 4]; %b=[1 2 3 4]'; %x=A\b; %x1= 1.0308 %x2= 0.3144 %x3= 0.6267 %x4= -0.0513

matlab实现功率谱密度分析psd

matlab实现功率谱密度分析psd及详细解说 功率谱密度幅值的具体含义?? 求信号功率谱时候用下面的不同方法,功率谱密度的幅值大小相差很大! 我的问题是,计算具体信号时,到底应该以什么准则决定该选用什么方法啊? 功率谱密度的幅植的具体意义是什么??下面是一些不同方法计算同一信号的matlab 程序!欢迎大家给点建议! 直接法: 直接法又称周期图法,它是把随机序列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)); 间接法: 间接法先由序列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);

图像峰值信噪比的计算

1数字图像处理 数字图像处理是利用计算机(或数字技术)对图像信息进行加工处理,以改善图像质量、压缩图像数据或从图像数据中获取更多信息。数字图像处理的主要方法可分为两大类:空域法和变换域法。 a. 空域法 把图像看作是平面中各个象素组成的集合,然后直接对这个二维函数进行相应的处理。 b. 频域法(变换域法) 首先对图像进行正交变换,得到变换域系数阵列,然后再实行各种处理,处理后再反变换到空间域,得到处理结果。这类处理包括:滤波、数据压缩和特征提取等。 1.图像压缩编码基础 图像压缩即去除多余数据。以数学的观点来看,图像压缩过程实际上就是将二维像素阵列变换为一个在统计上无关联的数据集合。因此,图像压缩是指以较少的比特有损或无损地表示原来的像素矩阵的技术,也称图像编码。 图像压缩编码的必要性和可能性: 图像压缩编码的目的是以尽量少的比特数表征图像,同时保持复原图像的质量,使它符合预定应用场合的要求。压缩数据量、提高有效性是图像压缩编码的首要目的。图像编码是一种信源编码,其信源是各种类型的图像信息。 图像数据可以进行压缩有以下几方面的原因。首先,原始图像数据是高度相关的,存在很大的冗余度。如图像内相邻象素之间的空间冗余度。序列图像前后帧之间的时间冗余度。多光谱遥感图像各谱间的频率域冗余度。数据冗余造成比特数浪费,消除这些冗余就可以节约码字,也就达到了数据压缩的目的。其次,基用相同码长表示不同出现概率的符号也会造成符号冗余度。如果采用可变长编码技术,对出现概率高的符号用短码字、对出现概率低的符号用长码字表示,就可消除符号冗余度,从而节约码字。允许图像编码有一定的失真也是图像可以压缩的一个重要原因。

信号检测与估值matlab仿真报告

信号检测与估值 仿真报告 题目信号检测与估值的MATLAB仿真学院通信工程学院 专业通信与信息系统 学生姓名 学号 导师姓名

作业1 试编写程序,画出相干移频键控、非相干移频键控(无衰落)和瑞利衰落信道下非相干移频键控的性能曲线。 (1)根据理论分析公式画性能曲线; (2)信噪比范围(0dB-10dB),间隔是1dB; (3)信噪比计算SNR=10lg(Es/N0) 一、脚本文件 1、主程序 %******************************************************** %二元移频信号检测性能曲线(理论分析) %FSK_theo.m %******************************************************** clear all; clc; SNRindB=0:1:20; Pe_CFSK=zeros(1,length(SNRindB)); Pe_NCFSK=zeros(1,length(SNRindB)); Pe_NCFSK_Rayleigh=zeros(1,length(SNRindB)); for i=1:length(SNRindB) EsN0=exp(SNRindB(i)*log(10)/10); Es_aveN0=exp(SNRindB(i)*log(10)/10); Pe_CFSK(i)=Qfunct(sqrt(EsN0));%相干移频键控系统 Pe_NCFSK(i)=0.5*exp(-EsN0/2);%非相干移频键控系统(无衰落) Pe_NCFSK_Rayleigh(i)=1/(2+Es_aveN0);%非相干移频键控系统(瑞利衰落)end semilogy(SNRindB,Pe_CFSK,'-o',SNRindB,Pe_NCFSK,'-*',SNRindB,Pe_NCFSK_Rayleigh ,'-'); xlabel('Es/No或平均Es/No(dB)'); ylabel('最小平均错误概率Pe'); legend('相干移频','非相干移频(无衰落)','非相干移频(瑞利衰落)'); title('二元移频信号检测性能曲线'); axis([0 20 10^-7 1]); grid on; 2、调用子函数 %******************************************************** %Q函数 %Qfunct.m %********************************************************

(完整版)功率谱估计性能分析及Matlab仿真

功率谱估计性能分析及Matlab 仿真 1 引言 随机信号在时域上是无限长的,在测量样本上也是无穷多的,因此随机信号的能量是无限的,应该用功率信号来描述。然而,功率信号不满足傅里叶变换的狄里克雷绝对可积的条件,因此严格意义上随机信号的傅里叶变换是不存在的。因此,要实现随机信号的频域分析,不能简单从频谱的概念出发进行研究,而是功率谱[1]。 信号的功率谱密度描述随机信号的功率在频域随频率的分布。利用给定的 N 个样本数据估计一个平稳随机信号的功率谱密度叫做谱估计。谱估计方法分为两大类:经典谱估计和现代谱估计。经典功率谱估计如周期图法、自相关法等,其主要缺陷是描述功率谱波动的数字特征方差性能较差,频率分辨率低。方差性能差的原因是无法获得按功率谱密度定义中求均值和求极限的运算[2]。分辨率低的原因是在周期图法中,假定延迟窗以外的自相关函数全为0。这是不符合实际情况的,因而产生了较差的频率分辨率。而现代谱估计的目标都是旨在改善谱估计的分辨率,如自相关法和Burg 法等。 2 经典功率谱估计 经典功率谱估计是截取较长的数据链中的一段作为工作区,而工作区之外的数据假设为0,这样就相当将数据加一窗函数,根据截取的N 个样本数据估计出其功率谱[1]。 周期图法( Periodogram ) Schuster 首先提出周期图法。周期图法是根据各态历经的随机过程功率谱的定义进行的谱估计。 取平稳随机信号()x n 的有限个观察值(0),(1),...,(1)x x x n -,求出其傅里叶变换 1 ()()N j j n N n X e x n e ω ω---==∑ 然后进行谱估计

music 方位估计 实验报告三 MATLAB 代码

实验报告三 实验目的: 实现常规波束形成及基于MUSIC 方法的方位估计。 实验内容: 1)若干阵元的接收阵,信号频率为10KHz ,波束主轴12度,仿真给出常规波束形成的波束图。 2)16个阵元的均匀线列阵,信号频率为10KHz ,信号方位为12度,用MUSIC 方法完成目标定向,信噪比-5dB ,0dB ,5dB 。 i) 波束形成时的阵型设计为两种,一种是均匀线列阵,阵元16个;一种是均匀圆阵,阵元数为16个,比较这两种阵型的波束图。 ii )比较不同信噪比下MUSIC 方法估计的性能(统计100次)。 实验原理: i)常规波束形成: 如图所示,基阵的输出),(θt v 。 ∑∑=*=* ==M m i i M m i i w t x t x w t v 1 1 ) ()()()(),(θθθ 采用向量符号则有, )()()()(),(H H θθθw x x w t t t v == 式中,x(t)和w(q )分别为观测数据向量和加权系数向量, ) ,(θt v 图 1 波束形成器基本原理图

T M 21])()()([)(t x t x t x t Λ=x T M 21])()()([)(θθθθw w w Λ =w 基阵输出端的空间功率谱表示为: ) ()( )()]()([)( )]()()()([ )],(),([ ] ),([)(H H H H H *2 θθθθθθθθθθRw w w x x w w x x w =====t t E t t E t v t v E t v E P 式中,R 为观测数据的协方差矩阵。 ii )基于MUSIC 方法的方位估计: )()()()(1 t n t s a t x i d i +=∑=θ T M 21])()()([)(t x t x t x t Λ =x )()()()(t n t s A t x +=θ 假设: (1 ) 信号源的数目d 是已知的, 且d < M ; (2 ) 各信号的方向矢量是相互独立的, 即)(θA 是一个列满秩矩阵; (3 ) 噪声)(t n 是空间平稳随机过程, 为具有各态历经性的均值为零、方差为σ2n 的高斯过程; (4 ) 噪声各取样间是统计独立的。 在上述假设条件下, 基阵输出的协方差矩阵可表示为: I A AR t x t x E R H s H 2])()([α+== 其中, R s 为信号的协方差矩阵;I 为单位矩阵。对R 进行特征分解, 并以特 征值降值排列可得 H m m M d m m H m m d m m e e e e R ∑∑+==+ =1 1λ λ 信号子空间与噪声子空间正交。 若噪声子空间记为E N , 即 ∑+== M d m H m m N e e E 1

功率谱估计介绍(介绍了matlab函数)

功率谱估计介绍 谱估计在现代信号处理中是一个很重要的课题,涉及的问题很多。在这里,结合matlab,我做一个粗略介绍。功率谱估计可以分为经典谱估计方法与现代谱估计方法。经典谱估计中最简单的就是周期图法,又分为直接法与间接法。直接法先取N点数据的傅里叶变换(即频谱),然后取频谱与其共轭的乘积,就得到功率谱的估计;间接法先计算N点样本数据的自相关函数,然后取自相关函数的傅里叶变换,即得到功率谱的估计.都可以编程实现,很简单。在matlab中,周期图法可以用函数periodogram实现。 周期图法估计出的功率谱不够精细,分辨率比较低。因此需要对周期图法进行修正,可以将信号序列x(n)分为n个不相重叠的小段,分别用周期图法进行谱估计,然后将这n段数据估计的结果的平均值作为整段数据功率谱估计的结果。还可以将信号序列x(n)重叠分段,分别计算功率谱,再计算平均值作为整段数据的功率谱估计。 种称为分段平均周期图法,一般后者比前者效果好。加窗平均周期图法是对分段平均周期图法的改进,即在数据分段后,对每段数据加一个非矩形窗进行预处理,然后在按分段平均周期图法估计功率谱。相对于分段平均周期图法,加窗平均周期图法可以减小频率泄漏,增加频峰的宽度。welch法就是利用改进的平均周期图法估计估计随机信号的功率谱,它采用信号分段重叠,加窗,FFT 等技术来计算功率谱。与周期图法比较,welch法可以改善估计谱曲线的光滑性,大大提高谱估计的分辨率。matlab中,welch法用函数psd实现。调用格式如下: [Pxx,F] = PSD(X,NFFT,Fs,WINDOW,NOVERLAP) X:输入样本数据 NFFT:FFT点数 Fs:采样率 WINDOW:窗类型 NOVERLAP,重叠长度 现代谱估计主要针对经典谱估计分辨率低和方差性不好提出的,可以极大的提高估计的分辨率和平滑性。可以分为参数模型谱估计和非参数模型谱估计。参数模型谱估计有AR模型,MA模型,ARMA模型等;非参数模型谱估计有最小方差法和MUSIC法等。由于涉及的问题太多,这里不再详述,可以参考有关资料。matlab中,现代谱估计的很多方法都可以实现。music方法用pmusic命令实现;pburg函数利用burg法实现功率谱估计;pyulear函数利用yule-walker算法实现功率谱估计等等。 另外,sptool工具箱也具有功率谱估计的功能。窗口化的操作界面很方便,而且有多种方法可以选择 在海杂波抑制的研究中,对海杂波谱分析一定要用到谱估计理论,一定得花时间学好!

Matlab频谱分析程序

Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation (谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。 从数学上看,一个平稳随机过程n x 的power spectrum (功率谱)和correlation sequence (相关序列)通过discrete-time Fourier transform (离散时间傅立叶变换)构成联系。从normalized frequency (归一化角频率)角度看,有下式 ()()j m xx xx m S R m e ωω∞ -=-∞ = ∑ 注:()() 2 xx S X ωω=,其中( )/2 /2 lim N j n n N n N X x e ωω=-=∑ πωπ-<≤。其matlab 近似为X=fft(x,N)/sqrt(N),在下文中()L X f 就是指matlab fft 函数的计算结果了 使用关系2/s f f ωπ=可以写成物理频率f 的函数,其中s f 是采样频率 ()()2/s jfm f xx xx m S f R m e π∞ -=-∞ = ∑ 相关序列可以从功率谱用IDFT 变换求得: ()()()/2 2//2 2s s s f jfm f j m xx xx xx s f S e S f e R m d df f πωπ π ωωπ--= =? ? 序列n x 在整个Nyquist 间隔上的平均功率可以表示为 ()()() /2 /2 02s s f xx xx xx s f S S f R d df f π π ωωπ--= =? ?

王能超 计算方法——算法设计及MATLAB实现课后代码

第一章插值方法 1.1Lagrange插值 1.2逐步插值 1.3分段三次Hermite插值 1.4分段三次样条插值 第二章数值积分 2.1 Simpson公式 2.2 变步长梯形法 2.3 Romberg加速算法 2.4 三点Gauss公式 第三章常微分方程德差分方法 3.1 改进的Euler方法 3.2 四阶Runge-Kutta方法 3.3 二阶Adams预报校正系统 3.4 改进的四阶Adams预报校正系统 第四章方程求根 4.1 二分法 4.2 开方法 4.3 Newton下山法 4.4 快速弦截法 第五章线性方程组的迭代法 5.1 Jacobi迭代 5.2 Gauss-Seidel迭代 5.3 超松弛迭代 5.4 对称超松弛迭代 第六章线性方程组的直接法 6.1 追赶法 6.2 Cholesky方法 6.3 矩阵分解方法 6.4 Gauss列主元消去法

第一章插值方法 1.1Lagrange插值 计算Lagrange插值多项式在x=x0处的值. MATLAB文件:(文件名:Lagrange_eval.m)function [y0,N]= Lagrange_eval(X,Y,x0) %X,Y是已知插值点坐标 %x0是插值点 %y0是Lagrange插值多项式在x0处的值 %N是Lagrange插值函数的权系数 m=length(X); N=zeros(m,1); y0=0; for i=1:m N(i)=1; for j=1:m if j~=i; N(i)=N(i)*(x0-X(j))/(X(i)-X(j)); end end y0=y0+Y(i)*N(i); end 用法》X=[…];Y=[…]; 》x0= ; 》[y0,N]= Lagrange_eval(X,Y,x0) 1.2逐步插值 计算逐步插值多项式在x=x0处的值. MATLAB文件:(文件名:Neville_eval.m)function y0=Neville_eval(X,Y,x0) %X,Y是已知插值点坐标 %x0是插值点 %y0是Neville逐步插值多项式在x0处的值 m=length(X); P=zeros(m,1); P1=zeros(m,1); P=Y; for i=1:m P1=P; k=1; for j=i+1:m k=k+1;

信噪比

信噪比 简介 信噪比是音箱回放的正常声音信号与无信号时噪声信号(功率)的比值。用dB表示。例如,某音箱的信噪比为80dB,即输出信号功率是噪音功率的10^8倍,输出信号标准差则是噪音标准差的10^4倍,信噪比数值越高,噪音越小。 定义 “噪声”的简单定义就是:“在处理过程中设备自行产生的信号”,这些信号与输入信号无关。对于MP3播放器来说,信噪比都是一个比较重要的参数,它指音源产生最大不失真声音 信噪比 [1] 信号强度与同时发出噪音强度之间的比率称为信号噪声比,简称信噪比(Signal/Noise),通常以S/N表示,单位为分贝(dB)。对于播放器来说,该值当然越大越好。目前MP3播放器的信噪比有60dB、65dB、85dB、90dB、95dB等等,我们在选择MP3的时候,一般都选择60dB以上的,但即使这一参数达到了要求,也不一定表示机子好,毕竟它只是MP3性能参数中要考虑的参数之一。指在规定输入电压下的输出信号电压与输入电压切断时,输出所残留之杂音电压之比,也可看成是最大不失真声音信号强度与同时发出的噪音强度之间的比率,通常以S/N表示。一般用分贝(dB)为单位,信噪比越高表示音频产品越好,常见产品都选择60dB以上。

国际电工委员会对信噪比的最低要求 国际电工委员会对信噪比的最低要求是前置放大器大于等于63dB,后级放大器大于等于86dB,合并式放大器大于等于63dB。合并式放大器信噪比的最佳值应大于90dB,CD机的信噪比可达90dB以上,高档的更可达110dB以上。信噪比低时,小信号输入时噪音严重,整个音域的声音明显感觉是混浊不清,所以信噪比低于80dB的音箱不建议购买,而低音炮70dB 的低音炮同样原因不建议购买。 用途 另外,信噪比可以是车载功放;光端机;影碟机;数字语音室;家庭影院套 信噪比 装;网络摄像机;音箱……等等,这里所说明的是MP3播放器的信噪比。以dB计算的信号最大保真输出与不可避免的电子噪音的比率。该值越大越好。低于75dB这个指标,噪音在寂静时有可能被发现。AWE64 Gold声卡的信噪比是80dB,较为合理。SBLIVE更是宣称超过120dB的顶级信噪比。总的说来,由于电脑里的高频干扰太大,所以声卡的信噪比往往不令人满意。 编辑本段图像信噪比 简介 图像的信噪比应该等于信号与噪声的功率谱之比,但通常功率谱难以计算,

(完整版)MATLAB模拟2ASK调制误码率与信噪比关系曲线的程序

%模拟2ASK % Pe=zeros(1,26); jishu=1; for snr=-10:0.5:15 max = 10000; s=round(rand(1,max));%长度为max的随机二进制序列 f=100;%载波频率 nsamp = 1000;每个载波的取样点数 tc=0:2*pi/999:2*pi;tc的个数应与nsamp相同 cm=zeros(1,nsamp*max); cp=zeros(1,nsamp*max); mod=zeros(1,nsamp*max); for n=1:max; if s(n)==0; m=zeros(1,nsamp); b=zeros(1,nsamp); else if s(n)==1; m=ones(1,nsamp); b=ones(1,nsamp); end end c = sin(f*tc); cm((n-1)*nsamp+1:n*nsamp)=m; cp((n-1)*nsamp+1:n*nsamp)=b; mod((n-1)*nsamp+1:n*nsamp)=c; end tiaoz=cm.*mod;%2ASK调制 t = linspace(0,length(s),length(s)*nsamp); tz=awgn(tiaoz,snr);%信号tiaoz中加入白噪声,信噪比为SNR=10dB jiet = 2*mod.*tz; %相干解调 [N,Wn]=buttord(0.2,0.3,1,15); [b,a]=butter(N,Wn); dpsk=filter(b,a,jiet);%低通滤波 % 抽样判决,判决门限为0.5 depsk = zeros(1,nsamp*max); for m = nsamp/2:nsamp:nsamp*max; if dpsk(m) < 0.5; for i = 1:nsamp depsk((m-500)+i) = 0; end

(整理)matlab16常用计算方法.

常用计算方法 1.超越方程的求解 一超越方程为 x (2ln x – 3) -100 = 0 求超越方程的解。 [算法]方法一:用迭代算法。将方程改为 01002ln()3 x x =- 其中x 0是一个初始值,由此计算终值x 。取最大误差为e = 10-4,当| x - x 0| > e 时,就用x 的值换成x 0的值,重新进行计算;否则| x - x 0| < e 为止。 [程序]P1_1abs.m 如下。 %超越方程的迭代算法 clear %清除变量 x0=30; %初始值 xx=[]; %空向量 while 1 %无限循环 x=100/(2*log(x0)-3); %迭代运算 xx=[xx,x]; %连接结果 if length(xx)>1000,break ,end %如果项数太多则退出循环(暗示发散) if abs(x0-x)<1e-4,break ,end %当精度足够高时退出循环 x0=x; %替换初值 end %结束循环 figure %创建图形窗口 plot(xx,'.-','LineWidth',2,'MarkerSize',12)%画迭代线'.-'表示每个点用.来表示,再用线连接 grid on %加网格 fs=16; %字体大小 title('超越方程的迭代折线','fontsize',fs)%标题 xlabel('\itn','fontsize',fs) %x 标签 ylabel('\itx','fontsize',fs) %y 标签 text(length(xx),xx(end),num2str(xx(end)),'fontsize',fs)%显示结果 [图示]用下标作为自变量画迭代的折线。如P0_20_1图所示,当最大误差为10-4时,需要迭代19次才能达到精度,超越方程的解为27.539。 [算法]方法二:用求零函数和求解函数。将方程改为函数 100()2ln()3f x x x =-- MATLAB 求零函数为fzero ,fzero 函数的格式之一是 x = fzero(f,x0) 其中,f 表示求解的函数文件,x0是估计值。fzero 函数的格式之二是 x = fzero(f,[x1,x2])

功率谱密度估计方法的MATLAB实现

功率谱密度估计方法的MATLAB实现 在应用数学和物理学中,谱密度、功率谱密度和能量谱密度是一个用于信号的通用概念,它表示每赫兹的功率、每赫兹的能量这样的物理量纲。在物理学中,信号通常是波的形式,例如电磁波、随机振动或者声波。当波的频谱密度乘以一个适当的系数后将得到每单位频率波携带的功率,这被称为信号的功率谱密度(power spectral density, PSD)或者谱功率分布(spectral power distribution, SPD)。功率谱密度的单位通常用每赫兹的瓦特数(W/Hz)表示,或者使用波长而不是频率,即每纳米的瓦特数(W/nm)来表示。信号的功率谱密度当且仅当信号是广义的平稳过程的时候才存在。如果信号不是平稳过程,那么自相关函数一定是两个变量的函数,这样就不存在功率谱密度,但是可以使用类似的技术估计时变谱密度。信号功率谱的概念和应用是电子工程的基础,尤其是在电子通信系统中,例如无线电和微波通信、雷达以及相关系统。因此学习如何进行功率谱密度估计十分重要,借助于Matlab工具可以实现各种谱估计方法的模拟仿真并输出结果。下面对周期图法、修正周期图法、最大熵法、Levinson递推法和Burg法的功率谱密度估计方法进行程序设计及仿真并给出仿真结果。 以下程序运行平台:Matlab R2015a(8.5.0.197613) 一、周期图法谱估计程序 1、源程序 Fs=100000; %采样频率100kHz N=1024; %数据长度N=1024 n=0:N-1; t=n/Fs; xn=sin(2000*2*pi*t); %正弦波,f=2000Hz Y=awgn(xn,10); %加入信噪比为10db的高斯白噪声 subplot(2,1,1); plot(n,Y) title('信号') xlabel('时间');ylabel('幅度');

信噪比

回复#1 yhc310 的帖子 eight大哥的文章我看过了,不过那个计算公式好像是原始信号和染噪信号的公式。我现在分析的都是实际的故障信号和降噪后信号的。eight以前也提过这个问题,这种情况可能只能做一个估计。上 面那个函数是我看段晨东文章里面得到的。 他的公式如下: function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号 N=length(x1); y1=sum(x1.^2); y2=sum(x1-x2); y=10*log((y1/y2).^2); 但是由这个公式算出来的信噪比都是150多,我觉得有问题。故改为如下公式 function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号 N=length(x1); y1=sum(x1.^2); y2=sum((x1-x2).^2); y=10*log((y1/y2)); https://www.360docs.net/doc/541908974.html,是目前CAD/CAE/CAM/PLM类专业网站中,用户最多,技术含量最高的网站之一,涵盖目前所有常用的C3P类软件技术讨论。 注册登录 ?分栏模式 ?搜索 ?导航 ?论坛 ?C3P门户 ?个人空间 ?论坛问卷 ?帮助

C3P 论坛-CadCaeCamPlm 社区,是来了不想走的地方 ? CAD 回收站专区 ? [047]信号处理方法 ? 求信噪比计算公式 回 复 管理员 UID 21 帖子 42453 精华 14 积分 47337 威望 45 点 C3P 币 47337 元 贡献值 2045 点 推广邀请能量 4571 焦耳 阅读权限 200 在线时间 868 小时 注册时间 2000-7-9 最后登录 主题帖 发表于 2009-2-12 15:37 | 只看该作者 论坛斑竹招募进行中 快快加入C3P 惊喜的朋友圈 广告帖子、乱码帖子、内部错误链接有奖举报点 附件无法下载有奖举报点 申请C3P 基金币 发贴公告 论坛的起源和新手成长必读 各位高手大家好!求各位给个信噪比的计算公式。数据都是现场故障数据,所以公式必须是原始信号和降噪后信号的关 系。 一下是我计算信噪比的公式,但是可能有错误! function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号 N=length(x1); y1=sum(x1.^2); y2=sum((x1-x2).^2); y=10*log((y1/y2)); ============================== 参考 https://www.360docs.net/doc/541908974.html,/forum/vi ... p%3Bfilter%3Ddigest ============================== eight 大哥的文章我看过了,不过那个计算公式好像是原始信号和染噪信号的公式。我现在分析的都是实际的故障信号和降噪后信号的。eight 以前也提过这个问题,这种情况可能只能做一个估计。上面那个函数是我看段晨东文章里面得到的。 他的公式如下: function y=snr(x1,x2);%x1是原始信号,x2是降噪后信号

matlab用于计算方法的源程序

1、Newdon迭代法求解非线性方程 function [x k t]=NewdonToEquation(f,df,x0,eps) %牛顿迭代法解线性方程 %[x k t]=NewdonToEquation(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:原函数,定义为内联函数 ?:函数的倒数,定义为内联函数 %x0:初始值 %eps:误差限 % %应用举例: %f=inline('x^3+4*x^2-10'); ?=inline('3*x^2+8*x'); %x=NewdonToEquation(f,df,1,0.5e-6) %[x k]=NewdonToEquation(f,df,1,0.5e-6) %[x k t]=NewdonToEquation(f,df,1,0.5e-6) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquation(f,df,1) if nargin==3 eps="0".5e-6; end tic; k=0; while 1 x="x0-f"(x0)./df(x0); k="k"+1; if abs(x-x0) < eps || k >30 break; end x0=x; end t=toc; if k >= 30 disp('迭代次数太多。'); x="0"; t="0"; end

2、Newdon迭代法求解非线性方程组 function y="NewdonF"(x) %牛顿迭代法解非线性方程组的测试函数 %定义是必须定义为列向量 y(1,1)=x(1).^2-10*x(1)+x(2).^2+8; y(2,1)=x(1).*x(2).^2+x(1)-10*x(2)+8; return; function y="NewdonDF"(x) %牛顿迭代法解非线性方程组的测试函数的导数 y(1,1)=2*x(1)-10; y(1,2)=2*x(2); y(2,1)=x(2).^+1; y(2,2)=2*x(1).*x(2)-10; return; 以上两个函数仅供下面程序的测试 function [x k t]=NewdonToEquations(f,df,x0,eps) %牛顿迭代法解非线性方程组 %[x k t]=NewdonToEquations(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:方程组(事先定义) ?:方程组的导数(事先定义) %x0:初始值 %eps:误差限 % %说明:由于虚参f和df的类型都是函数,使用前需要事先在当前目录下采用函数M文件定义% 另外在使用此函数求解非线性方程组时,需要在函数名前加符号“@”,如下所示 % %应用举例: %x0=[0,0];eps=0.5e-6; %x=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)

AR功率谱估计MatlAB

AR模型的谱估计是现代谱估计的主要内容 AR模型的谱估计是现代谱估计的主要内容。 1.AR 模型的Yule—Walker方程和Levinson-Durbin递推算法:在MATLAB中,函数levinson和aryule都采用 Levinson-Durbin递推算法来求解AR模型的参数a1,a2,……,ap及白噪声序列的方差,只是两者的输入参数不同,它们的格式为: A=LEVINSON(R,ORDER) A=ARYULE(x,ORDER) 两函数均为定阶ORDER的求解,但是函数levinson的输入参数要求是序列的自相关函数,而函数aryule的输入参数为采样序列。 下面语句说明函数levinson和函数aryule的功能是相同的: 例子: randn('seed',0) a=[1 0.1 0.2 0.3 0.4 0.5]; x=impz(1,a,20)+randn(20,1)/20; r=xcorr(x,'biased'); r(1:length(x)-1)=[]; A=levinson(r,5) B=aryule(x,5) 2.Burg算法: 格式为:A=ARBURG(x,ORDER); 其中x为有限长序列,参数ORDER用于指定AR 模型的阶数。以上面的例子为例: randn('seed',0) a=[1 0.1 0.2 0.3 0.4 0.5]; x=impz(1,a,20)+randn(20,1)/20; A=arburg(x,5)

3.改进的协方差法: 格式为:A=ARMCOV(x,ORDER); 该函数用来计算有限长序列x(n)的ORDER阶AR 模型的参数。例如:输入下面语句: randn('seed',0) a=[1 0.1 0.2 0.3 0.4 0.5]; x=impz(1,a,20)+randn(20,1)/20; A=armcov(x,5) AR模型阶数P的选择: AR 模型阶数P一般事先是不知道的,需要事先选定一个较大的值,在递推的过程中确定。在使用Levinson—Durbin递推方法时,可以给出由低阶到高阶的每一组参数,且模型的最小预测误差功率Pmin(相当于白噪声序列的方差)是递减的。直观上讲,当预测误差功率P达到指定的希望值时,或是不再发生变化时,这时的阶数即是应选的正确阶数。 因为预测误差功率P是单调下降的,因此,该值降到多少才合适,往往不好选择。比较常见的准则是: 最终预测误差准则:FPE(r)=Pr{[N+(r+1)]/ [N-(r+1)]} 信息论准则:AIC(r)=N*log(Pr)+2*r 上面的N为有限长序列x(n)的长度,当阶数r由1增加时,FPE(r) 和AIC(r)都将在某一r处取得极小值。将此时的r定为最合适的阶数p。 MATLAB中AR模型的谱估计的函数说明: 1. Pyulear函数: 功能:利用Yule--Walker方法进行功率谱估计. 格式: Pxx=Pyulear(x,ORDER,NFFT) [Pxx,W]=Pyulear(x,ORDER,NFFT) [Pxx,W]=Pyulear(x,ORDER,NFFT,Fs) Pyulear(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)

相关文档
最新文档