主要内容

pwelch

韦尔奇的功率谱密度估计

描述

例子

pxx= pwelch (x返回功率谱密度估计值,pxx,为输入信号,x,使用Welch的重叠段平均估计器找到。当x是一个矢量,它被视为一个单一通道。当x是一个矩阵,PSD为每一列独立计算,并存储在pxx.如果x实值,pxx是片面的PSD估计。如果x是复数,pxx为双侧PSD估计。默认情况下,x被划分为尽可能长的段,以获得尽可能接近但不超过8个重叠50%的段。每个部分都有一个汉明窗口。对修改后的周期图求平均值以得到PSD估计。如果你不能除长度x恰好是重叠50%的整数段,x相应地被截断。

例子

pxx= pwelch (x窗口使用输入向量或整数,窗口,将信号分割成段。如果窗口是一个向量,pwelch将信号分割成长度等于的片段窗口.修改后的周期图是用信号段乘以矢量来计算的,窗口.如果窗口是整数,信号被分割成段的长度窗口.修改后的周期图使用汉明长度窗计算窗口

例子

pxx= pwelch (x窗口noverlap使用noverlap段与段之间的重叠样本。noverlap一定是小于的正整数窗口如果窗口整数形式。noverlap一定是小于的长度的正整数窗口如果窗口是一个向量。如果您没有指定noverlap,或指定noverlap当为空时,重叠样本的默认数量是窗口长度的50%。

例子

pxx= pwelch (x窗口noverlapnfft指定在PSD估计中使用的离散傅里叶变换(DFT)点的数量。默认的nfft是256中的大者,还是2的次幂大于段的长度。

pxxw] = pwelch(___返回归一化频率向量,w.如果pxx是片面的PSD估计,w如果跨度为区间[0,π]nfft是偶数且[0,π)如果nfft是奇数。如果pxx为双侧PSD估计,w跨度为区间[0,2π)。

例子

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

pxxw] = pwelch(x窗口noverlapw返回向量中指定的归一化频率下的双面Welch PSD估计,w.向量w必须包含至少两个元素,否则函数将其解释为nfft

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

例子

___] = pwelch(x窗口___freqrange返回指定的频率范围内的Welch PSD估计freqrange.有效的选项freqrange是:“单向的”双侧的,或“中心”

例子

___] = pwelch(x窗口___跟踪返回最大保持频谱估计if跟踪指定为“maxhold”并返回最小保持谱估计,如果跟踪指定为“minhold”

例子

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

例子

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

例子

pwelch (___在没有输出参数的情况下,在当前图形窗口中绘制Welch PSD估计。

例子

全部折叠

获得由角频率为的离散时间正弦信号组成的输入信号的韦尔奇PSD估计 π / 4 加添加剂的Rad /sample N 0 1 白噪声。

创建一个角频率为的正弦波 π / 4 加添加剂的Rad /sample N 0 1 白噪声。重置随机数发生器可重现的结果。信号有长度 N x 3. 2 0 样本。

rng默认的N = 0:319;X = cos(/4*n)+randn(size(n));

使用默认的汉明窗和DFT长度获得韦尔奇PSD估计。默认段长度为71个样本,DFT长度为256个点,产生频率分辨率为 2 π / 2 5 6 rad /样品。由于信号是实值,周期图是单侧的,有256/2+1个点。绘制韦尔奇PSD估计。

PXX = pwelch(x);pwelch (x)

图中包含一个轴对象。标题为Welch功率谱密度估计的坐标轴对象包含一个类型为line的对象。

重复计算。

  • 把信号分成不同长度的部分 n 年代 c N x / 4 5 .这一动作相当于将信号分成尽可能长的段,以获得尽可能接近但不超过8个重叠50%的段。

  • 使用汉明窗口将部分窗口化。

  • 指定相邻部分之间50%的重叠

  • 要计算FFT,使用 马克斯 2 5 6 2 p 点, p 日志 2 n 年代 c

验证两种方法得到的结果是否相同。

Nx =长度(x);nsc =下限(Nx/4.5);Nov =楼层(nsc/2);NFF = max(256,2^nextpow2(nsc));T = pwelch(x,hamming(nsc),nov,nff);Maxerr = max(abs(abs(t(:)))-abs(pxx(:))))
Maxerr = 0

将信号分成8段等长,段与段之间重叠50%。指定与上一步相同的FFT长度。计算韦尔奇PSD估计,并验证它给出的结果与前两个过程相同。

Ns = 8;Ov = 0.5;lsc = floor(Nx/(ns-(ns-1)*ov));T = pwelch(x,lsc,floor(ov*lsc),nff);Maxerr = max(abs(abs(t(:)))-abs(pxx(:))))
Maxerr = 0

获得由角频率为的离散时间正弦信号组成的输入信号的韦尔奇PSD估计 π / 3. 加添加剂的Rad /sample N 0 1 白噪声。

创建一个角频率为的正弦波 π / 3. 加添加剂的Rad /sample N 0 1 白噪声。重置随机数发生器可重现的结果。信号有512个样本。

rng默认的N = 0:511;X = cos(/3*n)+randn(size(n));

将信号分割成长度为132个样本的分段,得到韦尔奇PSD估计。信号段乘以一个长度为132个样本的汉明窗。由于没有指定重叠样本的个数,所以设置为132/2 = 66。DFT长度为256点,产生的频率分辨率为 2 π / 2 5 6 rad /样品。由于信号是实值,PSD估计是片面的,有256/2+1 = 129点。绘制PSD作为归一化频率的函数。

segmentLength = 132;[pxx,w] = pwelch(x,segmentLength);情节(w /π,10 * log10 (pxx))包含(“\omega / \pi”

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

获得由角频率为的离散时间正弦信号组成的输入信号的韦尔奇PSD估计 π / 4 加添加剂的Rad /sample N 0 1 白噪声。

创建一个角频率为的正弦波 π / 4 加添加剂的Rad /sample N 0 1 白噪声。重置随机数发生器可重现的结果。信号长度为320个样本。

rng默认的N = 0:319;X = cos(/4*n)+randn(size(n));

将信号分成长度为100个样本的分段,得到韦尔奇PSD估计。信号段乘以长度为100个样本的汉明窗口。重叠样本数为25。DFT长度为256点,频率分辨率为 2 π / 2 5 6 rad /样品。由于信号是实值,PSD估计是片面的,有256/2+1点。

segmentLength = 100;Noverlap = 25;pxx = pwelch(x,segmentLength,noverlap);图(10 * log10 (pxx))

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

获得由角频率为的离散时间正弦信号组成的输入信号的韦尔奇PSD估计 π / 4 加添加剂的Rad /sample N 0 1 白噪声。

创建一个角频率为的正弦波 π / 4 加添加剂的Rad /sample N 0 1 白噪声。重置随机数发生器可重现的结果。信号长度为320个样本。

rng默认的N = 0:319;X = cos(/4*n) + randn(size(n));

将信号分成长度为100个样本的分段,得到韦尔奇PSD估计。使用默认的50%的重叠。指定DFT长度为640点,使频率 π / 4 rad/sample对应一个DFT bin (bin 81)。由于信号是实值,PSD估计是片面的,有640/2+1点。

segmentLength = 100;NFFT = 640;pxx = pwelch(x,segmentLength,[],nfft);图(10 * log10 (pxx)包含(rad /样品的) ylabel ('dB / (rad/sample)'

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

创建一个由100赫兹正弦波组成的附加信号N(0,1)白噪声。重置随机数发生器可重现的结果。采样率为1 kHz,信号持续时间为5秒。

rng默认的Fs = 1000;T = 0:1/fs:5-1/fs;X = cos(2* *100*t) + randn(size(t));

得到韦尔奇重叠段对前一信号PSD估计的平均。使用500个样本和300个重叠样本的段长度。使用500个DFT点,使100 Hz直接落在DFT箱上。输入采样率输出频率矢量,单位为Hz。画出结果。

[pxx,f] = pwelch(x,500,300,500,fs);情节(f, 10 * log10 (pxx))包含(的频率(赫兹)) ylabel (“PSD (dB / Hz)”

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

创建一个由三个噪声正弦波和一个啁啾组成的信号,以200khz采样0.1秒。正弦波的频率为1khz、10khz和20khz。正弦波有不同的振幅和噪声水平。无噪声啁啾的频率从20 kHz开始,在采样期间线性增加到30 kHz。

Fs = 200e3;Fc = [1 10 20]'*1e3;Ns = 0.1*Fs;t = (0:Ns-1)/Fs;x = [1 1/10 10] * sin(2 *π* Fc * t) + (1/200 1/2000 1/20) * randn (Ns);X = X +chirp(t,20e3,t(end),30e3);

计算韦尔奇PSD估计和信号的最大保持和最小保持谱。画出结果。

[pxx,f] = pwelch(x,[],[],[],Fs);pmax = pwelch(x,[],[],[],Fs,“maxhold”);pmin = pwelch(x,[],[],[],Fs,“minhold”);情节(f, pow2db (pxx))情节(f, pow2db ((pmax pmin]),':')举行包含(的频率(赫兹)) ylabel (“PSD (dB / Hz)”)传说(“pwelch”“maxhold”“minhold”

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象代表pwelch, maxhold, minhold。

重复上述步骤,这一次计算以功率谱为中心的估计。

[pxx,f] = pwelch(x,[],[],[],Fs,“中心”“权力”);pmax = pwelch(x,[],[],[],Fs,“maxhold”“中心”“权力”);pmin = pwelch(x,[],[],[],Fs,“minhold”“中心”“权力”);情节(f, pow2db (pxx))情节(f, pow2db ((pmax pmin]),':')举行包含(的频率(赫兹)) ylabel (“权力(dB)”)传说(“pwelch”“maxhold”“minhold”

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象代表pwelch, maxhold, minhold。

这个例子说明了使用韦尔奇重叠分段平均(WOSA) PSD估计的置信界限。虽然不是统计显著性的必要条件,但韦尔奇估计中下界置信限超过周围PSD估计上界置信限的频率清楚地表明时间序列中的显著振荡。

创建一个100hz和150hz正弦波叠加叠加的信号N(0,1)噪音。两个正弦波的振幅是1。采样率为1khz。重置随机数发生器可重现的结果。

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

获得95%置信区间的WOSA估计。设置段长度为200,并将段重叠50%(100个样本)。绘制WOSA PSD估计值以及置信区间,并放大100和150 Hz附近感兴趣的频率区域。

L = 200;重迭= 100;[pxx,f,pxxc] = pwelch(x,hamming(L),重叠,200,fs,...“ConfidenceLevel”, 0.95);情节(f, 10 * log10 (pxx))情节(f, 10 * log10 (pxxc),“-”。)举行Xlim ([25 250])的频率(赫兹)) ylabel (“PSD (dB / Hz)”)标题(95%置信区间的韦尔奇估计

图中包含一个轴对象。标题为Welch Estimate with 95% confidence Bounds的坐标轴对象包含3个类型为line的对象。

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

创建一个由100赫兹正弦波组成的附加信号 N 0 1 / 4 白噪声。重置随机数发生器可重现的结果。采样率为1 kHz,信号持续时间为5秒。

rng默认的Fs = 1000;T = 0:1/fs:5-1/fs;Noisevar = 1/4;x = cos(2 *π* 100 * t) + sqrt (noisevar) * randn(大小(t));

利用韦尔奇方法得到直流中心功率谱。使用500个样本的段长度和300个重叠样本,DFT长度为500个点。画出结果。

[pxx,f] = pwelch(x,500,300,500,fs,“中心”“权力”);情节(f, 10 * log10 (pxx))包含(的频率(赫兹)) ylabel (“(dB)级”网格)

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

你可以看到,在-100和100 Hz处的功率接近于振幅为1的实值正弦波的预期功率的1/4。偏离1/4是由于附加噪声的影响。

生成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);pwelch (x)

图中包含一个轴对象。标题为Welch功率谱密度估计的坐标轴对象包含3个类型为line的对象。

输入参数

全部折叠

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

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

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

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

窗口,指定为行或列向量或整数。如果窗口是一个向量,pwelchx成长度相等的重叠段窗口,然后将每个信号段与中指定的向量相乘窗口.如果窗口为整数,pwelch为长度等于整数值的段,并使用长度相等的汉明窗。如果的长度x不能精确地分成整数个段noverlap重叠样本数,x相应地被截断。如果你指定窗口为空时,使用默认的汉明窗口获取8段xnoverlap重叠的样本。

数据类型:|

重叠样本的数目,指定为小于的长度的正整数窗口.如果你省略了noverlap或指定noverlap如果为空,则使用一个值来获得段之间50%的重叠。

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

如果nfft大于段长度,则数据为零填充。如果nfft小于线段长度,该线段是否被包装使用datawrap使长度等于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的每个估计。使用“权力”选项,以获得每个频率的功率估计。

跟踪模式,指定为之一“的意思是”“maxhold”,或“minhold”.默认为“的意思是”

  • “的意思是”-返回每个输入通道的Welch谱估计。pwelch计算韦尔奇频谱估计在每个频率仓通过平均功率谱估计的所有部分。

  • “maxhold”-返回每个输入通道的最大保持频谱。pwelch通过保持所有片段功率谱估计值中的最大值,计算每个频率仓的最大保持谱。

  • “minhold”-返回每个输入通道的最小保持频谱。pwelch通过保持所有部分功率谱估计值中的最小值,计算每个频率仓的最小保持谱。

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

输出参数

全部折叠

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

数据类型:|

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

数据类型:

循环频率,作为实值列向量返回。对于片面的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

数据类型:|

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

数据类型:|

更多关于

全部折叠

韦尔奇重叠段平均谱估计

周期图不是广义平稳过程真功率谱密度的一致估计量。韦尔奇减少周期图方差的技术将时间序列分解成通常重叠的片段。

韦尔奇的方法为每个部分计算一个修改的周期图,然后平均这些估计值以产生功率谱密度的估计值。由于该过程是广义平稳的,韦尔奇的方法使用时间序列不同部分的PSD估计,修改的周期图表示真实PSD的近似不相关估计,平均减少了可变性。

这些片段通常乘以一个窗口函数,例如汉明窗口,因此韦尔奇的方法相当于平均修改的周期图。由于段通常重叠,在一个段的窗口缩小的段的开始和结束处的数据值远离相邻段的结束处。这可以防止因窗口化而导致的信息丢失。

参考文献

[1]海耶斯,蒙森H。统计数字信号处理与建模“,.纽约:John Wiley & Sons出版社,1996年。

Stoica, Petre和Randolph Moses。信号的光谱分析。上马鞍河,新泽西州:Prentice Hall, 2005。

扩展功能

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

R2006a之前介绍