主要内容

pwelch

韦尔奇的功率谱密度估计

描述

例子

pxx= pwelch (x返回功率谱密度(PSD)估计,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, pwelch, pwelch___返回归一化频率向量,w.如果pxx是片面的PSD估计,w跨越区间[0,π],如果nfft是偶数和[0,π)如果nfft是奇数。如果pxx是一个双面PSD估计,w跨越区间[0,2π)。

例子

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

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

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

例子

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

例子

___= pwelch, pwelch, pwelchx窗口___跟踪返回最大保持频谱估计跟踪指定为“maxhold”并返回最小保持频谱估计跟踪指定为“minhold”

例子

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

例子

___= pwelch, pwelch, pwelch___spectrumtype返回PSD估计值spectrumtype指定为psd的并返回功率谱spectrumtype指定为“权力”

例子

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

例子

全部折叠

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

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

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

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

PXX = pwelch(x);pwelch (x)

图中包含一个axes对象。标题为Welch功率谱密度估计的axis对象包含一个类型为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长度。计算Welch 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

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

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

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

得到Welch PSD估计,将信号分成长度为132个样本段。信号段乘以汉明窗长度为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'

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

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

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

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

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

segmentLength = 100;诺弗拉普= 25;pxx = pwelch(x,segmentLength, nooverllap);图(10 * log10 (pxx))

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

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

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

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

将信号分成长度为100个样本的段,得到Welch 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)'

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

在加法中创建一个包含100hz正弦信号的信号N(0,1)白噪声。重置随机数生成器以获得可重复的结果。采样率为1khz,信号持续时间为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赫兹直接落在DFT箱上。输入采样速率以输出以Hz为单位的频率向量。画出结果。

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

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

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

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);

计算Welch 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”

图中包含一个axes对象。坐标轴对象包含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”

图中包含一个axes对象。坐标轴对象包含3个line类型的对象。这些对象表示pwelch, maxhold, minhold。

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

创建一个信号组成的叠加100hz和150hz正弦波加白N(0,1)噪音。两个正弦波的振幅是1。采样率为1 kHz。重置随机数生成器以获得可重复的结果。

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

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

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

在加法中创建一个包含100hz正弦信号的信号 N 0 1 / 4 白噪声。重置随机数生成器以获得可重复的结果。采样率为1khz,信号持续时间为5秒。

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

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

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

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

你可以看到-100和100hz的功率接近于振幅为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)

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

输入参数

全部折叠

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

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

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

数据类型:|
复数支持:是的

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

数据类型:|

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

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

如果nfft大于段长度,则数据为零填充。如果nfft小于段长度,段被包装使用datawrap使长度等于nfft

数据类型:|

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

归一化频率,指定为至少具有两个元素的行或列向量。归一化频率以rad/sample为单位。

例子: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分别。

    该函数在除0和奈奎斯特频率外的所有频率上乘以2以保持总功率。

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

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

功率谱缩放,指定为psd的“权力”.省略spectrumtype,或指定psd的,返回功率谱密度。指定“权力”用窗口的等效噪声带宽衡量PSD的每个估计。使用“权力”选项来获取每个频率下功率的估计。

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

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

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

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

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

输出参数

全部折叠

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).的值决定了置信区间的覆盖概率概率输入。

数据类型:|

更多关于

全部折叠

韦尔奇的重叠段平均谱估计

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

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

这些段通常乘以一个窗口函数,例如汉明窗口,因此韦尔奇的方法相当于对修改后的周期图进行平均。因为线段通常重叠,在一个线段中由窗口变细的线段的开始和结束处的数据值发生在远离相邻线段的结束处。这防止了窗口操作造成的信息丢失。

参考文献

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

[2]斯托伊卡,彼得,还有伦道夫·摩西。信号的光谱分析。上马鞍河,新泽西州:普伦蒂斯大厅,2005年。

扩展功能

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

版本历史

R2006a之前介绍过

Baidu
map