频谱分析(完整版)

更新时间:2023-11-11 06:50:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Matlab 信号处理工具箱 帮助文档 谱估计专题

翻译:无名网友 & Lyra

频谱分析

Spectral estimation(谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。

从数学上看,一个平稳随机过程xn的power spectrum(功率谱)和correlation sequence(相关序列)通过discrete-time Fourier transform(离散时间傅立叶变换)构成联系。从normalized frequency(归一化角频率)角度看,有下式

Sxx????m????R?m?exx2??j?m

注:Sxx????X???1,其中X????limN??Nn??N/2?N/2xnej?n??????。其matlab

近似为X=fft(x,N)/sqrt(N),在下文中XL?f?就是指matlab fft函数的计算结果了

使用关系??2?f/fs可以写成物理频率f的函数,其中fs是采样频率

?Sxx?f??m????R?m?exx?2?jfm/fs

相关序列可以从功率谱用IDFT变换求得:

Rxx?m??????sSxx???ej?mSxx?f?e2?jfm/fsd???df

2?fs?fs/2f/2序列xn在整个Nyquist间隔上的平均功率可以表示为

?sSxx???S?f?d???xxdf 2?fs?fs/2f/2Rxx?0??上式中的

???Pxx????Sxx???Sxx?f?以及Pxx?f?? 2?fs被定义为平稳随机信号xn的power spectral density (PSD)(功率谱密度) 一个信号在频带??1,?2?,0??1??2??上的平均功率可以通过对PSD在频带上积分求出

?2P??1,?2??P???d??????xx1??1Pxx???d?

?2从上式中可以看出Pxx???是一个信号在一个无穷小频带上的功率浓度,这也是为什么它叫做功率谱密度。

PSD的单位是功率(e.g 瓦特)每单位频率。在Pxx???的情况下,这是瓦特/弧度/抽或只是瓦特/弧度。在Pxx?f?的情况下单位是瓦特/赫兹。PSD对频率的积分得到的单位是瓦特,正如平均功率P??,??所期望的那样。

12对实信号,PSD是关于直流信号对称的,所以0????的Pxx???就足够完整的描述PSD了。然而要获得整个Nyquist间隔上的平均功率,有必要引入单边PSD的概念:

?????0?0 Ponesided??????2Pxx???0????信号在频带??1,?2?,0??1??2??上的平均功率可以用单边PSD求出

?2P??1,?2??P??1onesided???d?

频谱估计方法

Matlab 信号处理工具箱提供了三种方法 Nonparametric methods(非参量类方法)

PSD直接从信号本身估计出来。最简单的就是periodogram(周期图法),一种改进

的周期图法是Welch's method。更现代的一种方法是multitaper method(多椎体法)。

Parametric methods (参量类方法)

这类方法是假设信号是一个由白噪声驱动的线性系统的输出。这类方法的例子是Yule-Walker autoregressive (AR) method和Burg method。这些方法先估计假设的产生信号的线性系统的参数。这些方法想要对可用数据相对较少的情况产生优于传统非参数方法的结果。

Subspace methods (子空间类)

又称为high-resolution methods(高分辨率法)或者super-resolution methods(超分辨率方法)基于对自相关矩阵的特征分析或者特征值分解产生信号的频率分量。代表方法有multiple signal classification (MUSIC) method或eigenvector (EV) method。这类方法对线谱(正弦信号的谱)最合适,对检测噪声下的正弦信号很有效,特别是低信噪比的情况。

方法 周期图 Welch 多椎体 PSD 估计 重叠,加窗的信号段的平均周期图 多个正交窗(称为锥)的组合做谱估计 描述 函数 spectrum.periodogram, periodogram spectrum.welch, pwelch, cpsd, tfestimate, mscohere spectrum.mtm, pmtm spectrum.yulear, pyulear spectrum.burg, pburg spectrum.cov, pcov spectrum.mcov, pmcov spectrum.music, pmusic spectrum.eigenvector, peig Yule-Walker 时间序列的估计的自相关函数计算自回归AR (AR)谱估计 Burg 通过最小化线性预测误差计算自回归(AR)谱估计 Covariance通过最小化前向预测误差做时间序列的自回(协方差) 归(AR)谱估计 修正协方差 通过最小化前向及后向预测误差做时间序列的自回归(AR)谱估计 MUSIC 多重信号分类 特征向量法 虚谱估计 Nonparametric Methods非参数法

下面讨论periodogram, modified periodogram, Welch, 和 multitaper法。同时也讨论CPSD函数,传输函数估计和相关函数。

Periodogram周期图法

一个估计功率谱的简单方法是直接求随机过程抽样的DFT,然后取结果的幅度的平方。这样的方法叫做周期图法。

一个长L的信号xL?n?的PSD的周期图估计是

??f??PxxXL?f?fsL2 注:这里XL?f?运用的是matlab里面的fft的定义不带归一化系数,所以要除以L 其中

XL?f???xL?n?e?2?jfn/fs

n?0L?1实际对XL?f?的计算可以只在有限的频率点上执行并且使用FFT。实践上大多数周期图法的应用都计算N点PSD估计

??f??Pxxk其中

XL?fk?fsL2,fk?kfs,k?0,1,?,N?1 NXL?fk???xL?n?e?2?jkn/N

n?0L?1选择N是大于L的下一个2的幂次是明智的,要计算XL?fk?我们直接对xL?n?补零到长度为N。假如L>N,在计算XL?fk?前,我们必须绕回xL?n?模N。

作为一个例子,考虑下面1001元素信号xn,它包含了2个正弦信号和噪声 randn('state',0); fs = 1000; % Sampling frequency t = (0:fs)/fs; % One second worth of samples A = [1 2]; % Sinusoid amplitudes (row vector) f = [150;140]; % Sinusoid frequencies (column vector) xn = A*sin(2*pi*f*t) + 0.1*randn(size(t)); 注意:最后三行表明了一个方便的表示正弦之和的方法,它等价于: xn = sin(2*pi*150*t) + 2*sin(2*pi*140*t) + 0.1*randn(size(t)); 对这个PSD的周期图估计可以通过产生一个周期图对象(periodogram object)来计算 Hs = spectrum.periodogram('Hamming'); 估计的图形可以用psd函数显示。 psd(Hs,xn,'Fs',fs,'NFFT',1024,'SpectrumType','twosided')

Power Spectral Density Estimate via Periodogram0-10-20Power/frequency (dB/Hz)-30-40-50-60-70-8000.10.20.30.40.50.6Frequency (kHz)0.70.80.9 平均功率通过用下述求和去近似积分 求得 [Pxx,F] = psd(Hs,xn,fs,'twosided'); Pow = (fs/length(Pxx)) * sum(Pxx) Pow = 2.5059 你还可以用单边PSD去计算平均功率 [Pxxo,F] = psd(Hs,xn,fs,'onesided'); Pow = (fs/(2*length(Pxxo))) * sum(Pxxo) Pow = 2.5011 周期图性能

下面从四个角度讨论周期图法估计的性能:泄漏,分辨率,偏差和方差。 频谱泄漏

考虑有限长信号xL?n?,把它表示成无限长序列x?n?乘以一个有限长矩形窗wR?n?的乘积的形式经常很有用:

xL?n??x?n??wR?n?

因为时域的乘积等效于频域的卷积,所以上式的傅立叶变换是

1XL?f??fsfs/2?fs/2?X???WR?f???d?

前文中导出的表达式

Burg Power Spectral Density Estimate0-10Power/frequency (dB/Hz)-20-30-40-50-60050100150200250300Frequency (Hz)350400450500

需要注意的是,随着Burg法模型阶数的降低,由于正弦信号初始相位带来的频率偏移逐渐明显。

Covariance & Modified Covariance协方差和修正协方差法

AR谱估计的协方差算法基于最小化前向预测误差而产生。而修正协方差算法是基于最小化前向和后向预测误差而产生。工具箱中的spectrum.cov对象和pcov函数,以及spectrum.mcov对象和pmcov函数实现了各自算法。

比较语音信号分别用协方差算法和修正协方差算法得到的谱,它们几乎完全一致,即使是对于短信号而言。

load mtlb Hcov = spectrum.cov(14); % 14th order model psd(Hcov,mtlb(1:64),'Fs',Fs,'NFFT',1024) Covariance Power Spectral Density Estimate-30-40Power/frequency (dB/Hz)-50-60-70-80-9000.511.52Frequency (kHz)2.533.5Hmcov = spectrum.mcov(14); % 14th order model psd(Hmcov,mtlb(1:64),'Fs',Fs,'NFFT',1024) Modified Covariance Power Spectral Density Estimate-40-45-50 Power/frequency (dB/Hz)-55-60-65-70-75-80-85-9000.511.52Frequency (kHz)2.533.5

Subspace Methods子空间法

MUSIC方法和特征向量分析法

spectrum.music对象和pmusic函数,以及spectrum.eigenvector对象和peig函数提供了两种相关的谱分析方法:

? spectrum.music对象和pmusic函数提供Schmidt提出的MUSIC算法。 ? spectrum.eigenvector对象和peig函数提供Johnson提出的EV算法。 这两种算法均基于对自相关矩阵的特征分析,用于对频率的估计。这种谱分析将数据相关矩阵的信息分为信号子空间或者噪声子空间。

特征分析方法简介

考虑存在于白噪声中的一些复正弦信号。可以把该系统的自相关矩阵R写作时信号自相关矩阵S与噪声自相关矩阵W之和:

R?S?W

信号自相关矩阵的特征向量与信号噪声子空间有紧密联系。S的特征向量v像信号向量一样扩展成为信号子空间。如果系统包含M个复正弦信号,自相关矩阵阶数为p,则特征向量vM?1至vp?1扩展成自相关矩阵的噪声子空间。 频率估计函数

特征分析方法通过计算信号和噪声子空间向量的某些函数来生成其频率估计值。MUSIC和EV技术选择一个函数,它在一个输入正弦信号频率点上趋于无穷(分母趋于0)。使用数字技术,得到的估计值在感兴趣的频点上具有尖锐的峰值,这就意味着向量中可能没用无穷大点。

MUSIC估计由下面方程所示:

PMUSIC?f??1??eH?f???vkvkH?e?f??k?p?1?N?1k?p?1?NvkHe?f?2

此处N是特征向量的维数,e?f?是复正弦信号向量:

e?f????1exp?j2?f?exp?j2?f?2?exp?j2?f?4?……exp?j2?f??n?1????

v表示输入信号则相关矩阵的特征向量,vk是第k个特征向量;H代表共轭转置。求

和中的特征向量对应了最小的特征值并张成噪声空间(p是信号子空间维度)。

H表达式vkHe?f?等价于一个傅里叶变换(向量e?f?由复指数组成)。这一形式对于数值计算有用,因为FFT能够对每一个vk进行计算,然后幅度平方再被求和。

EV算法通过自相关矩阵的特征值对求和进行加权:

PEV?f??1?N2?Hvef??k???/?k?k?p?1?

工具箱中的pmusic函数和peig函数采用SVD(奇值分解)对信号计算,采用eig

函数来分析自相关矩阵,并将特征向量归为信号子空间和噪声子空间。当使用SVD的时候,pmusic和peig并未显式地计算相关矩阵,但是奇异值却是特征值。

本文来源:https://www.bwwdw.com/article/tmsv.html

Top