主要内容

周期图

周期图功率谱密度估计

描述

例子

pxx=周期图(x返回周期图功率谱密度(PSD)估计,pxx,为输入信号,x,发现使用一个矩形窗口。当x是一个矢量,它被视为一个单一通道。当x是一个矩阵,PSD为每一列独立计算,并存储在pxx.如果x实值,pxx是片面的PSD估计。如果x是复数,pxx为双侧PSD估计。点数,nfft,在离散傅里叶变换(DFT)中是256的最大值或比信号长度大2的次幂。

例子

pxx=周期图(x窗口使用窗口返回修改后的周期图PSD估计,窗口窗口向量的长度是否等于x

例子

pxx=周期图(x窗口nfft使用nfft离散傅里叶变换(DFT)中的点。如果nfft大于信号长度,x是零填充长度nfft.如果nfft小于信号长度,信号被模包裹nfft用求和datawrap.例如,输入信号[1 2 3 4 5 6 7 8]nfft的周期图结果为4总和([1 5;2 6;3 7;4 8], 2)

pxxw] =周期图(___返回归一化频率向量,w.如果pxx是单侧周期图,w跨越区间[0,π如果nfft是偶数和[0,π如果nfft是奇数。如果pxx是双面周期图,w跨越区间[0, 2π

例子

pxxf] =周期图(___fs返回一个频率向量,f,单位为周期/单位时间。样本率,fs,为单位时间内的样本数。如果时间单位是秒,那么f单位为周期/秒(Hz)。对于实值信号,f跨度为区间[0,fs/ 2)当nfft是偶数,[0,fs/ 2)nfft是奇数。对于复值信号,f跨度为区间[0,fs).fs必须是第四个输入周期图.要输入一个采样率,并且仍然使用前面可选参数的默认值,请将这些参数指定为空,[]

例子

pxxw] =周期图(x窗口w返回在向量中指定的归一化频率上的双面周期图估计,ww必须包含至少两个元素,否则函数将其解释为nfft

例子

pxxf] =周期图(x窗口ffs返回矢量中指定频率的双面周期图估计值。向量f必须包含至少两个元素,否则函数将其解释为nfft.频率f单位时间为周期。样本率,fs,为单位时间内的样本数。如果时间单位是秒,那么f单位为周期/秒(Hz)。

例子

___] =周期图(x窗口___freqrange属性指定的频率范围内返回周期图freqrange.有效的选项freqrange是:“单向的”双侧的,或“中心”

例子

___pxxc] =周期图(___“ConfidenceLevel”,概率返回概率中PSD估计的× 100%置信区间pxxc

rpxxf] =周期图(___“重新分配”)将每个PSD估计值重新分配到最接近其能量中心的频率。rpxx的每个元素的估计的总和f

例子

rpxxfpxx足球俱乐部] =周期图(___“重新分配”)还返回未重新分配的PSD估计值,pxx,能量中心频率,足球俱乐部.如果你使用“重新分配”标志,则不能指定概率置信区间。

例子

___] =周期图(___spectrumtype如果返回PSD估计值spectrumtype指定为psd的并返回功率谱如果spectrumtype指定为“权力”

例子

周期图(___在没有输出参数的情况下,在当前图形窗口中以每单位频率dB为单位绘制周期图PSD估计值。

例子

全部折叠

得到由角频率为的离散时间正弦信号组成的输入信号的周期图 π / 4 加添加剂的Rad /sample N 0 1 白噪声。

创建一个角频率为的正弦波 π / 4 加添加剂的Rad /sample N 0 1 白噪声。信号长度为320个样本。使用默认的矩形窗口和DFT长度获取周期图。DFT长度是比信号长度大2的次幂,即512点。由于信号是实值且长度相等,所以周期图是单侧的,有512/2+1个点。

N = 0:319;X = cos(/4*n)+randn(size(n));[pxx,w] =周期图(x);情节(w, 10 * log10 (pxx))

图中包含一个轴对象。axis对象包含一个line类型的对象。

重复情节周期图没有输出。

周期图(x)

图中包含一个轴对象。标题为Periodogram Power Spectral Density Estimate的axis对象包含一个类型为line的对象。

得到由角频率为的离散时间正弦信号组成的输入信号的修正周期图 π / 4 含添加剂的弧度/样品 N 0 1 白噪声。

创建一个角频率为的正弦波 π / 4 含添加剂的弧度/样品 N 0 1 白噪声。信号长度为320个样本。使用汉明窗口和缺省DFT长度获得修改后的周期图。DFT长度是比信号长度大2的次幂,即512点。由于信号是实值且长度相等,所以周期图是单侧的,有512/2+1个点。

N = 0:319;X = cos(/4*n)+randn(size(n));周期图(x,汉明(长度(x)))

图中包含一个轴对象。标题为Periodogram Power Spectral Density Estimate的axis对象包含一个类型为line的对象。

得到由角频率为的离散时间正弦信号组成的输入信号的周期图 π / 4 含添加剂的弧度/样品 N 0 1 白噪声。使用与信号长度相等的DFT长度。

创建一个角频率为的正弦波 π / 4 含添加剂的弧度/样品 N 0 1 白噪声。信号长度为320个样本。使用默认的矩形窗口和DFT长度等于信号长度来获得周期图。由于信号是实值,默认情况下返回的单边周期图长度为320/2+1。

N = 0:319;X = cos(/4*n)+randn(size(n));NFFT = length(x);周期图(x, [], nfft)

图中包含一个轴对象。标题为Periodogram Power Spectral Density Estimate的axis对象包含一个类型为line的对象。

获得1700年至1987年间每年采样的Wolf(相对太阳黑子)数数据的周期图。

加载相对太阳黑子数数据。使用默认的矩形窗口和DFT点数(本例为512)获得周期图。这些数据的抽样率为1个样本/年。绘制周期图。

负载sunspot.datrelNums =太阳黑子(:,2);[pxx,f] = periodogram(relNums,[],[],1);情节(f, 10 * log10 (pxx))包含(“周期/年”) ylabel (dB /(周期/年))标题(太阳黑子相对数周期图

图中包含一个轴对象。标题为“相对太阳黑子数周期图数据”的axis对象包含一个类型为line的对象。

在上图中可以看到,周期图中有一个大约0.1个周期/年的峰值,这表示一个大约10年的周期。

得到由两个角频率为的离散时间正弦信号组成的输入信号的周期图 π / 4 而且 π / 2 添加剂中的Rad /sample N 0 1 白噪声。获得双侧周期图估计 π / 4 而且 π / 2 rad /样品。将结果与单侧周期图进行比较。

N = 0:319;X = cos(/4*n)+0.5*sin(/2*n)+randn(size(n));[pxx,w] = periodogram(x,[],[pi/4 pi/2]);pxx
pxx =1×214.0589 - 2.8872
[pxx1,w1] =周期图(x);情节(w1 /πpxx1 w /π,2 * pxx,“o”)传说(“pxx1”“2 * pxx”)包含(“\omega / \pi”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示pxx1,2 * pxx。

得到的周期图值是单侧周期图值的1/2。当您在特定的频率集上评估周期图时,输出是一个双面估计。

创建一个由两个频率为100和200赫兹的正弦波组成的信号N(0,1)白加性噪声。采样频率为1khz。获得100和200 Hz的双面周期图。

Fs = 1000;T = 0:0.001:1-0.001;x = cos(2 *π* 100 * t) +罪(2 *π* 200 * t) + randn(大小(t));频率= [100 200];PXX =周期图(x,[],频率,fs)
pxx =1×20.2647 - 0.2313

下面的例子说明了在周期图中使用置信界限。虽然不是统计显著性的必要条件,但周期图中下置信界超过周围PSD估计的上置信界的频率清楚地表明时间序列中的显著振荡。

创建一个100hz和150hz正弦波叠加叠加的信号N(0,1)噪音。两个正弦波的振幅是1。采样频率为1khz。

Fs = 1000;T = 0:1/fs:1-1/fs;x = cos(2 *π* 100 * t) +罪(2 *π* 150 * t) + randn(大小(t));

获得具有95%置信限的周期图PSD估计。绘制周期图和置信区间,并放大感兴趣的频率区域在100和150 Hz附近。

[pxx,f,pxxc] = periodogram(x,rectwin(length(x)),length(x),fs,...“ConfidenceLevel”, 0.95);情节(f, 10 * log10 (pxx))情节(f, 10 * log10 (pxxc),“-”。xlim([85 175]) xlabel(“赫兹”) ylabel (“dB /赫兹”)标题(“95%置信区间的周期图”

图中包含一个轴对象。标题为Periodogram的axis对象包含3个类型为line的对象。

在100和150 Hz附近的置信下限明显高于100和150 Hz附近以外的置信上限。

得到加物中100赫兹正弦波的周期图 N 0 1 噪音。数据以1千赫采样。使用“中心”选项可获得以dc为中心的周期图并绘制结果。

Fs = 1000;T = 0:0.001:1-0.001;X = cos(2* *100*t)+randn(size(t));周期图(x,[],长度(x), fs,“中心”

图中包含一个轴对象。标题为“功率谱密度”的axis对象包含一个类型为line的对象。

生成一个由嵌入白高斯噪声的200hz正弦波组成的信号。信号以1khz采样1秒。噪声的方差为0.01²。重置随机数发生器可重现的结果。

rng (“默认”) Fs = 1000;t = 0:1/Fs:1-1/Fs;N =长度(t);X = sin(2*pi*t*200)+0.01*randn(size(t));

使用FFT计算信号的功率谱,由信号长度归一化。正弦信号是in-bin,所以所有的功率都集中在一个频率样本中。绘制单边光谱。放大到山顶附近。

q = fft(x,N);ff = 0:Fs/N:Fs-Fs/N;ffts = q*q'/N²
FFTS = 0.4997
ff = ff(1:楼层(N/2)+1);q = q(1:楼层(N/2)+1);茎(ff、abs (q) / N,‘*’)轴([190 210 0 0.55])

图中包含一个轴对象。axis对象包含一个stem类型的对象。

使用周期图计算信号的功率谱。指定Hann窗口和1024的FFT长度。找出在200hz时的估计功率与实际值之间的百分比差异。

风= hann(N);[双关语,fr] = periodogram(x,wind,1024,Fs,“权力”);持有茎(fr,双关)

图中包含一个轴对象。axis对象包含2个stem类型的对象。

periodogErr = abs(max(双关语)-ffts)/ffts*100
periodogErr = 4.7349

重新计算功率谱,但这次使用重新分配。绘制新的估计值,并将其最大值与FFT值进行比较。

[pre,ft,pxx,fx] = periodogram(x,wind,1024,Fs,“权力”“重新分配”);茎(外汇、前)传奇(“原始”“周期图”“重新分配”

图中包含一个轴对象。axis对象包含3个stem类型的对象。这些对象表示原始、周期图、重新分配。

reassignErr = abs(max(pre)-ffts)/ffts*100
reassignErr = 0.0779

估计正弦信号在特定频率下的功率“权力”选择。

创建一个100hz的正弦波,持续时间为1 kHz采样。正弦波的振幅为1.8,等于1.8²/2 = 1.62的幂。估计功率使用“权力”选择。

Fs = 1000;T = 0:1/fs:1-1/fs;X = 1.8*cos(2* *100*t);[pxx,f] = periodogram(x,hamming(length(x)),length(x),fs,“权力”);[pwrest,idx] = max(pxx);流(最大功率出现在%3.1f Hz\nf (idx))
最大功率为100.0 Hz
流('功率估计为%2.2f\n'压水式反应堆)
功率估计为1.62

生成1024个由三个加性正弦信号组成的多通道信号样本 N 0 1 高斯白噪声。正弦信号的频率是 π / 2 π / 3. , π / 4 rad /样品。利用周期图估计信号的PSD并绘制它。

N = 1024;n = 0: n -1;W = pi./[2;3;4];X = cos(w*n)' + randn(length(n),3);周期图(x)

图中包含一个轴对象。标题为Periodogram Power Spectral Density Estimate的axis对象包含3个类型为line的对象。

创建一个函数periodogram_data.m它返回使用窗口的输入信号的修正周期图功率谱密度(PSD)估计。该函数指定了与输入信号长度相等的离散傅里叶变换点的数量。

类型periodogram_data
function [pxx,f] = periodogram_data(inputData,window) %#codegen nfft = length(inputData);[pxx,f] = periodogram(inputData,window,nfft);结束

使用codegen(MATLAB编码器)生成MEX函数。

  • % # codegen函数中的指令表示MATLAB®代码用于代码生成。

  • arg游戏option指定示例参数,定义mexo文件输入的大小、类和复杂性。对于本例,请指定inputData作为一个1024 × 1的双精度随机向量窗口长度为1024的汉明窗。在对MEX函数的后续调用中,使用1024个采样输入信号和窗口。

  • 如果希望MEX函数具有不同的名称,请使用- o选择。

  • 如果要查看代码生成报告,请添加报告选项的末尾codegen命令。

codegenperiodogram_dataarg游戏{randn(1024 1),汉明(1024)}
代码生成成功。

使用周期图函数和生成的MEX函数计算1024个样本噪声正弦波的PSD估计。的正弦波归一化频率 2 π / 5 rad/sample和Hann窗口。绘制两个估计值以验证它们是否一致。

N = 1024;x = 2*cos(2*pi/5*(0:N-1)') + randn(N,1);periodogram(x,hann(N)) [pxMex,fMex] = periodogram_data(x,hann(N));持有情节(fMex /π,pow2db (pxMex),“:”“颜色”,[0 0.4 0])保持网格传奇(“周期图”“墨西哥人函数”

图中包含一个轴对象。标题为Periodogram Power Spectral Density Estimate的axis对象包含2个类型为line的对象。这些对象代表周期图、MEX函数。

输入参数

全部折叠

输入信号,指定为行或列向量或矩阵。如果x是矩阵,则其列被视为独立的通道。

例子:因为(π/ 4 * (0:159))+ randn (1160)是单通道行向量信号。

例子:因为(pi. / (4; 2) * (0:159)) ' + randn (160 2)是一个双通道信号。

数据类型:|
复数支持:金宝app是的

窗口,指定为与输入信号长度相同的行或列向量。如果你指定窗口空的,那么周期图使用矩形窗口。如果您指定“重新分配”标志和一个空的窗口,则该函数使用Kaiser窗口β= 38

数据类型:|

DFT点的数目,指定为正整数。对于一个实值输入信号,x, PSD估计,pxx有长度(nfft/2 + 1) ifnfft是偶数,并且(nfft+ 1)/2如果nfft是奇数。对于复值输入信号,x时,PSD估计总有长度nfft.如果nfft为空,默认nfft使用。

数据类型:|

抽样率,指定为正标量。采样率是单位时间内采样的数量。如果时间的单位是秒,那么采样率的单位是Hz。

规范化的频率,指定为至少有两个元素的行或列向量。归一化频率以弧度/样本为单位。

例子:W = [pi/4 pi/2]

数据类型:

频率,指定为包含至少两个元素的行向量或列向量。频率是单位时间内的周期。单位时间由采样率指定,fs.如果fs有样本单位/秒吗f单位是Hz。

例子:Fs = 1000;F = [100 200]

数据类型:

PSD估计的频率范围,指定为其中之一“单向的”双侧的,或“中心”.默认为“单向的”对于实值信号和双侧的对于复值信号。每个选项对应的频率范围为

  • “单向的”-返回一个实值输入信号的单边PSD估计,x.如果nfft是偶数,pxx长度nfft/2 + 1,在区间内计算[0,πrad /样品。如果nfft长度是奇数pxx是(nfft+ 1)/2,区间是[0,πrad /样品。当fs,则对应的间隔为[0,fs/2]周期/单位时间和[0,fs/2)周期/偶数和奇数长度的单位时间nfft分别。

  • 双侧的-返回实值或复值输入的双侧PSD估计,x.在这种情况下,pxx长度nfft并且在区间内计算[0, 2πrad /样品。当fs,则间隔为[0,fs)周期/单位时间。

  • “中心”-返回实值或复值输入的居中双面PSD估计,x.在这种情况下,pxx长度nfft并且在区间内计算(-ππ弧度/样品为均匀长度nfft而且(-ππ奇数长度的Rad /samplenfft.当fs,则对应的间隔为(-fs/ 2,fs/2]周期/单位时间和(-fs/ 2,fs/2)周期/偶数和奇数长度的单位时间nfft分别。

功率谱缩放,指定为psd的“权力”.要返回功率谱密度,请省略spectrumtype或指定psd的.要获得每个频率下功率的估计值,请使用“权力”代替。指定“权力”用窗口的等效噪声带宽缩放PSD的每个估计,除非“重新分配”使用Flag。

真实PSD的覆盖概率,指定为范围(0,1)中的标量。输出,pxxc对象的下界和上界概率× 100%区间估计为真实PSD。

输出参数

全部折叠

PSD估计,返回为实值,非负列向量或矩阵。的每一列pxx对应列的PSD估计值是x.PSD估计的单位是时间序列数据每单位频率的平方幅度单位。例如,如果输入数据以伏特为单位,则PSD估计的单位是每单位频率的平方伏特。对于以伏特为单位的时间序列,如果假设电阻为1 Ω,并指定以赫兹为单位的采样率,则PSD估计的单位为瓦特/赫兹。

数据类型:|

循环频率,作为实值列向量返回。对于片面的PSD估计,f跨度为区间[0,fs/ 2)当nfft是偶数,[0,fs/ 2)nfft是奇数。对于双面PSD估计,f跨度为区间[0,fs).对于以dc为中心的PSD估计,f跨越区间(-)fs/ 2,fs/2]周期/单位时间为偶数长度nfft和(-fs/ 2,fs/2)周期/奇数长度的单位时间nfft

数据类型:|

归一化频率,作为实值列向量返回。如果pxx是片面的PSD估计,w跨越区间[0,π如果nfft是偶数和[0,π如果nfft是奇数。如果pxx为双侧PSD估计,w跨越区间[0, 2π.对于以dc为中心的PSD估计,w跨越区间(-ππ甚至nfft而且(-ππ为奇数nfft

数据类型:

置信边界,返回为具有实值元素的矩阵。矩阵的行长度等于PSD估计的长度,pxxpxxc栏数是?的两倍pxx.奇数列包含置信区间的下界,偶数列包含上界。因此,pxxc (m, 2 * n - 1)下置信界是和吗pxxc (m, 2 * n)置信上限是否与估计相对应pxx (m, n).的值决定置信区间的覆盖概率概率输入。

数据类型:|

重新分配PSD估计,返回为实值,非负列向量或矩阵。的每一列rpxx对应列的重新分配PSD估计值是x

能量中心频率,指定为矢量或矩阵。

更多关于

全部折叠

周期图

周期图是广义平稳随机过程功率谱密度(PSD)的非参数估计。周期图是自相关序列的偏估计的傅里叶变换。对于一个信号xn采样时fs单位时间样本,周期图定义为

P f Δ t N | n 0 N 1 x n e j 2 π f Δ t n | 2 1 / 2 Δ t < f 1 / 2 Δ t

在哪里Δt为采样间隔。对于单侧周期图,除0和Nyquist之外的所有频率的值,1/2Δt,都乘以2,这样总功率是守恒的。

如果频率以弧度/样本为单位,周期图定义为

P ω 1 2 π N | n 0 N 1 x n e j ω n | 2 π < ω π

上式中的频率范围随的值而变化freqrange论点。参见freqrange输入参数

真实PSD的积分,Pf,在一段时间内,1 /Δt对于循环频率和2π对于归一化频率,等于广义平稳随机过程的方差:

σ 2 1 / 2 Δ t 1 / 2 Δ t P f d f

对于归一化频率,适当地替换积分的极限。

改进的周期图

修改后的周期图将输入时间序列乘以窗口函数。合适的窗函数是非负的,并且在开始点和结束点衰减为零。时间序列乘以窗口函数蜡烛数据逐渐断断续续,有助于减轻周期图中的泄漏。看到周期图的偏倚和变异性举个例子。

如果hn是窗函数,修正周期图是由什么定义的

P f Δ t N | n 0 N 1 h n x n e j 2 π f Δ t n | 2 1 / 2 Δ t < f 1 / 2 Δ t

在哪里Δt为采样间隔。

如果频率以弧度/样本为单位,则修改周期图定义为

P ω 1 2 π N | n 0 N 1 h n x n e j ω n | 2 π < ω π

上式中的频率范围随的值而变化freqrange论点。参见freqrange输入参数

重新分配周期图

重新分配技术提高了光谱估计的局部化,并产生了更容易阅读和解释的周期图。该技术将每个PSD估计值重新分配到其容器的能量中心,远离容器的几何中心。它为啁啾和脉冲提供了精确的定位。

参考文献

[1]奥格,François,帕特里克弗兰德林。用重赋方法提高时频和时标表示法的可读性IEEE®信号处理汇刊.第43卷,1995年5月,第1068-1089页。

[2]富洛普,肖恩·A.和凯利·菲兹。计算经时间校正的瞬时频率(重新分配)谱图的算法及其应用。美国声学学会杂志.第119卷,2006年1月,360-371页。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

R2006a之前介绍