文档

运行cpsd

互功率谱密度

描述

例子

pxy= CPSD(<一个href="#bvi4l92-x" class="intrnllnk">x,<一个href="#bvi4l92-x" class="intrnllnk">y估计两个离散时间信号的交叉功率谱密度(CPSD),xy,使用Welch的平均修正周期图方法进行谱估计。

  • 如果xy都是向量,它们的长度必须相同。

  • 如果其中一个信号是矩阵,则另一个是向量,则载体的长度必须等于矩阵中的行数。该功能扩展了向量并返回逐柱横跨功率谱密度估计的矩阵。

  • 如果xy是具有相同数量的行,但不同列数的矩阵,然后运行cpsd返回一个三维数组,pxy,包含所有输入列组合的交叉功率谱密度估计值。每一列的pxy对应于列的x,每个页面对应于一列ypxy (:, m, n) =运行cpsd (x(:,米),y (:, n))

  • 如果xy那么矩阵的大小是相等的吗运行cpsd操作列:pxy (:, n) =运行cpsd (x (:, n), y (:, n)).获取多输入/多输出阵列,附加“再分配”到参数列表。

真正的xy运行cpsd返回一个片面的CPSD。对于复杂的x要么y运行cpsd返回双面CPSD。

pxy= CPSD(<一个href="#bvi4l92-x" class="intrnllnk">x,<一个href="#bvi4l92-x" class="intrnllnk">y,<一个href="#bvi4l92-window" class="intrnllnk">窗口用途窗口划分xy进入段并执行窗口。

pxy= CPSD(<一个href="#bvi4l92-x" class="intrnllnk">x,<一个href="#bvi4l92-x" class="intrnllnk">y,<一个href="#bvi4l92-window" class="intrnllnk">窗口,<一个href="#bvi4l92-noverlap" class="intrnllnk">noverlap.用途noverlap.相邻段之间重叠的样本。

pxy= CPSD(<一个href="#bvi4l92-x" class="intrnllnk">x,<一个href="#bvi4l92-x" class="intrnllnk">y,<一个href="#bvi4l92-window" class="intrnllnk">窗口,<一个href="#bvi4l92-noverlap" class="intrnllnk">noverlap.,<一个href="#bvi4l92-nfft" class="intrnllnk">nfft用途nfft采样点计算离散傅里叶变换。

例子

pxy= CPSD(___,“再分配”)计算一个多输入/多输出阵列的交叉功率谱密度估计。该语法可以包含以前语法中的输入参数的任何组合。

[<一个href="#bvi4l92-pxy" class="intrnllnk">pxy,<一个href="//www.tatmou.com/help/releases/R2019b/signal/ref/cpsd.html" class="intrnllnk">w) =运行cpsd (___返回归一化频率向量,w,此时估计交叉功率谱密度。

[<一个href="#bvi4l92-pxy" class="intrnllnk">pxy,<一个href="//www.tatmou.com/help/releases/R2019b/signal/ref/cpsd.html" class="intrnllnk">f) =运行cpsd (___,<一个href="#bvi4l92_sep_shared-fs" class="intrnllnk">fs返回一个频率矢量,f以采样率表示,fs,此时估计交叉功率谱密度。fs必须是第六个数字输入运行cpsd.若要输入一个抽样率并且仍然使用前面可选参数的默认值,请将这些参数指定为空,[]

例子

[<一个href="#bvi4l92-pxy" class="intrnllnk">pxy,<一个href="//www.tatmou.com/help/releases/R2019b/signal/ref/cpsd.html" class="intrnllnk">w) =运行cpsd (<一个href="#bvi4l92-x" class="intrnllnk">x,<一个href="#bvi4l92-x" class="intrnllnk">y,<一个href="#bvi4l92-window" class="intrnllnk">窗口,<一个href="#bvi4l92-noverlap" class="intrnllnk">noverlap.,<一个href="#bvi4l92_sep_shared-w" class="intrnllnk">w在指定的归一化频率下返回交叉功率谱密度估计w

例子

[<一个href="#bvi4l92-pxy" class="intrnllnk">pxy,<一个href="//www.tatmou.com/help/releases/R2019b/signal/ref/cpsd.html" class="intrnllnk">f) =运行cpsd (<一个href="#bvi4l92-x" class="intrnllnk">x,<一个href="#bvi4l92-x" class="intrnllnk">y,<一个href="#bvi4l92-window" class="intrnllnk">窗口,<一个href="#bvi4l92-noverlap" class="intrnllnk">noverlap.,<一个href="#bvi4l92_sep_shared-f" class="intrnllnk">f,<一个href="#bvi4l92_sep_shared-fs" class="intrnllnk">fs在中指定的频率处返回交叉功率谱密度估计f

___) =运行cpsd (<一个href="#bvi4l92-x" class="intrnllnk">x,<一个href="#bvi4l92-x" class="intrnllnk">y___,<一个href="#bvi4l92-freqrange" class="intrnllnk">freqrange在指定的频率范围内返回交叉功率谱密度估计值freqrange.有效的选择freqrange'片面''twosiding', 和“中心”

例子

CPSD(___没有输出参数在当前数字窗口中绘制跨功率谱密度估计。

例子

全部收缩

生成两个彩色噪声信号并绘制它们的交叉功率谱密度。指定长度为1024的FFT和没有重叠的500点三角形窗口。

r = randn(16384,1);HX = FIR1(30,0.2,Rectwin(31));x =滤波器(HX,1,R);hy = = =(1,10)/ sqrt(10);y =过滤器(Hy,1,R);CPSD(X,Y,Triang(500),250,1024)

在1 kHz上采样1秒,产生两个双通道正弦曲线。第一信号的通道具有200 Hz和300Hz的频率。第二信号的通道具有300Hz和400Hz的频率。两个信号都嵌入在单位方差白色高斯噪声中。

fs = 1 e3;t = (0:1 / fs: 1 - 1 / fs) ';Q = 2*sin(2*pi*[200 300].*t);q = q + randn(大小(q));R = 2*sin(2*pi*[300 400].*t);r = r + randn(大小(r));

计算两个信号的交叉功率谱密度。使用256样本Bartlett窗口将信号划分为段和窗口段。在邻接段和2048个DFT点之间指定128个重叠样本。使用内置功能运行cpsd绘制结果。

CPSD(Q,R,Bartlett(256),128,2048,FS)

默认情况下,运行cpsd在相同大小的矩阵输入上逐列工作。每个通道峰值处于原始正弦曲线的频率。

重复计算,但现在添加“再分配”到参数列表。

CPSD(Q,R,Bartlett(256),128,2048,FS,“再分配”

当被召唤时“再分配”选项,运行cpsd返回包含所有输入列组合的交叉功率谱密度估计值的三维数组。第二通道的估计第一个频道r在共频300hz处有一个增强的峰值。

产生两个100赫兹的正弦信号采样在1 kHz 296毫秒。其中一个正弦波滞后另一个2.5毫秒,相当于相位滞后π/ 2。两个信号都嵌入了方差为1/4²的高斯白噪声中。

Fs = 1000;t = 0:1 / Fs: 0.296;x = cos(2 *π* t * 100) + 0.25 * randn(大小(t));τ= 1/400;y = cos(2 *π* 100 * (t-tau)) + 0.25 * randn(大小(t));

计算并绘制交叉功率谱密度的大小。使用默认设置运行cpsd.在信号之间存在显着相干的频率处的幅度峰值。

CPSD(X,Y,[],[],[],FS)

绘制幅值平方相干函数和交叉谱的相位。在高相干频率处的纵坐标对应于正弦波之间的相位滞后。

[Cxy F] = mscohere (x, y ,[],[],[], Fs);[Pxy F] =运行cpsd (x, y ,[],[],[], Fs);次要情节(2,1,1)情节(F, Cxy)标题(“平方一致性”子图(2,1,2)plot(F,angle(Pxy)) hold绘图(F,2 * Pi * 100 * Tau *那些(大小(f)),“——”) 抓住离开包含('赫兹')ylabel('\ theta(f)')标题(“交叉谱阶段”

生成二 N 样本指数序列, x 一个 一个 n x b b n , 和 n 0 .指定 一个 0 8 b 0 9 ,和一个小的 N 查看有限尺寸的效果。

N = 10;n = 0: n - 1;一个= 0.8;b = 0.9;xa = a。^ n;xb = b。^ n;

计算并绘制在归一化频率的完整间隔内序列的横频谱密度, - π π .指定一个有长度的矩形窗口 N 段与段之间没有重叠。

w = -π:1/1000:π;风= rectwin (N);小说= 0;[pxx f] =运行cpsd (xa, xb,风、诺w);

两序列的互功率谱具有较大的解析表达式 N

R ω. 1 1 - 一个 e - j ω. 1 1 - b e j ω.

通过将其划分来将此表达式转换为交叉功率谱密度 2 π N .比较结果。涟漪运行cpsd结果是窗口的结果。

nfac = 2 * pi * n;x = 1./(1-a* exp (-1j*w));Y = 1 ./(1-B * EXP(1J * W));r = x * y / nfac;半机(F / PI,ABS(PXX))保持semilogy (w /π,abs (R))离开传奇(“运行cpsd”“分析”

重复计算 N 2 5 .曲线同意六个数字 N 小到100。

N = 25;n = 0: n - 1;xa = a。^ n;xb = b。^ n;风= rectwin (N);[pxx f] =运行cpsd (xa, xb,风、诺w);R = x * Y /(2 *π* N);半机(F / PI,ABS(PXX))保持semilogy (w /π,abs (R))离开传奇(“运行cpsd”“分析”

使用交叉功率谱密度来识别高度损坏的音调。

当你拨打数字电话上的一个号码或符号时,所产生的声音信号是两组不同频率的正弦信号之和。每一对音调包含低组的一个频率(697 Hz, 770 Hz, 852 Hz,或941 Hz)和高组的一个频率(1209 Hz, 1336 Hz,或1477 Hz)。

生成与所有符号相对应的信号。采样每个音调在4千赫半秒。准备一个参考表。

fs = 4 e3;t = 0:1 / fs: 0.5 - 1 / f;nms = [' 1 '' 2 '“3”“4”“5”“6”'7''8''9''*'' 0 '“#”];ver = [697 770 852 941];hor = [1209 1336 1477];v =长度(ver);h =长度(hor);k = 1: vL = 1:h *(k-1)+ L;语气=总和(罪(2 *π*[版本(k),贺南洪(l)]。* t)) ';音调(:,idx) =基调;结束结束

绘制每个信号的Welch期刊,并向分量频率注释。使用200样本的汉明窗口将信号划分为非重叠段和窗口段。

[pxx f] = pwelch(音调,汉明(200),0,[],fs);k = 1: vL = 1:h *(k-1)+ L;ax =次要情节(v、h、idx);绘图(f,10 * log10(pxx(:,idx))ylim([ -  80 0])标题(nms(idx))tx = [ver(k); hor(l)];ax.xtick = tx;ax.xticklabel = Int2str(TX);结束结束

通过拨打号码8产生的信号通过嘈杂的频道发送。收到的信号如此损坏,即不能通过检查来识别这些数字。

mys = sum(sin(2 * pi * [ver(3); hor(2)]。* t)'+ 5 * randn(尺寸(t'));%听到,键入soundsc(mys,fs)

计算损坏的信号的横频谱密度和参考信号。使用具有形状因子的512样本kaiser窗口窗口信号β= 5.绘制每个频谱的幅度。

[pxy,f] = CPSD(MyS,Tones,Kaiser(512,5),100,[],FS);k = 1: vL = 1:h *(k-1)+ L;ax =次要情节(v、h、idx);情节(f, 10 * log10 (abs (pxy (:, idx)))) ylim(-80[0])标题(nms (idx)) tx =[版本(k),贺南洪(l)];ax.xtick = tx;ax.xticklabel = Int2str(TX);结束结束

损坏信号中的数字具有具有最高峰值和最高RMS值的光谱。

(~, loc) = max (rms (abs (pxy)));数字= nms (loc)
数字= ' 8 '

输入参数

全部收缩

输入信号,指定为向量或矩阵。

例子:因为(π/ 4 * (0:159))+ randn (1160)指定嵌入高斯白噪声中的正弦信号。

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

窗口,指定为整数或行或列向量。使用窗口将信号分成若干段。

  • 如果窗口是整数吗运行cpsd分<一个href="#bvi4l92-x" class="intrnllnk">x和<一个href="#bvi4l92-x" class="intrnllnk">y进入长度的段窗口每个部分都有一个相同长度的汉明窗。

  • 如果窗口是一个矢量,然后运行cpsdxy作为矢量和Windows每个段的相同长度的段窗口

如果长度xy不能完全划分为整数数量的段<一个href="#bvi4l92-noverlap" class="intrnllnk">noverlap.重叠样本,然后相应地截断信号。

如果您指定窗口那是空的,然后运行cpsd使用汉明窗xy被分成八个部分noverlap.重叠样本。

有关可用窗口的列表,请参见<一个href="//www.tatmou.com/help/releases/R2019b/signal/ug/windows.html" class="a">视窗.

例子:损害(N + 1)(1-cos(2 *π* (0:N) / N)) / 2两者都指定长度的Hann窗口N+ 1。

数据类型:|

重叠样本的数量,指定为正整数。

  • 如果<一个href="#bvi4l92-window" class="intrnllnk">窗口是标量,那么noverlap.必须小于窗口

  • 如果窗口是一个矢量,然后noverlap.必须小于的长度窗口

如果您指定noverlap.那是空的,然后运行cpsd使用在段之间产生50%重叠的数字。如果段长度未指定,则函数集noverlap.对⌊N/ 4.5⌋,N为输入和输出信号的长度。

数据类型:|

DFT点的数目,指定为正整数。如果您指定nfft那是空的,然后运行cpsd设置参数马克斯(256 2p,在那里p=⌈日志2N用于长度的输入信号N.

数据类型:|

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

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

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

数据类型:

频率,指定为具有至少两个元素的行或列向量。频率每单位时间循环。单位时间由采样率指定,<一个href="#bvi4l92_sep_shared-fs" class="intrnllnk">fs.如果fs有样本/秒的单位吗f以Hz为单位。

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

数据类型:

交叉功率谱密度估计的频率范围,规定为'片面''twosiding',或“中心”.默认值是'片面'对于实值信号和'twosiding'用于复值信号。

  • '片面'- 返回两个实值输入信号的跨功率谱密度的单面估计,<一个href="#bvi4l92-x" class="intrnllnk">x和<一个href="#bvi4l92-x" class="intrnllnk">y.如果<一个href="#bvi4l92-nfft" class="intrnllnk">nfft是偶数,<一个href="#bvi4l92-pxy" class="intrnllnk">pxynfft/2 + 1行,并在区间内计算[0,π]rad /样品。如果nfft是奇数,pxy拥有 (nfft+ 1)/ 2行和间隔是[0,π)rad /样品。如果您指定<一个href="#bvi4l92_sep_shared-fs" class="intrnllnk">fs,相应的间隔是[0,fs/2]周期/单位时间为偶数nfft[0,fs/2)奇数周期/单位时间nfft

  • 'twosiding'-返回两个实值或复数输入信号的交叉功率谱密度的双边估计,xy.在这种情况下,pxynfft行,并在间隔内计算[0, 2π)rad /样品。如果您指定fs,区间为[0,fs)周期/单位时间。

  • “中心”-返回两个实值或复数输入信号的交叉功率谱密度的中心双边估计,xy.在这种情况下,pxynfft行,并在间隔内计算(-π,π]rad /样品nfft(-π,π)rad /样本为奇数nfft.如果您指定fs,对应的区间为(-fs/ 2,fs/2]周期/单位时间为偶数nfft和(-fs/ 2,fs/2)奇数周期/单位时间nfft

输出参数

全部收缩

交叉功率谱密度,以矢量、矩阵或三维阵列的形式返回。

归一化频率,作为实值列向量返回。

  • 如果<一个href="#bvi4l92-pxy" class="intrnllnk">pxy是片面的,w跨越间隔[0,π]当<一个href="#bvi4l92-nfft" class="intrnllnk">nfft甚至和[0,π)nfft是奇数。

  • 如果pxy是双面的,w跨越间隔[0, 2π)

  • 如果pxyDC-centered,w跨越间隔(-π,π]nfft甚至和(-π,π)nfft是奇数。

数据类型:|

频率,作为实值列向量返回。

数据类型:|

更多关于

全部收缩

交叉功率谱密度

交叉功率谱密度是每单位频率的功率分布,并且被定义为

P x y ω. σ. - R x y e - j ω.

交叉相关序列定义为

R x y E x n + y n E x n y n -

在哪里xnyn是联合平稳随机过程,——∞<n<∞ - < n < , 和E{·}是预期的价值运算符。

算法

运行cpsd使用Welch的平均,修正周期图的谱估计方法。

参考

[1] Rabiner,Lawrence R.和B. Gold。数字信号处理的理论与应用.Englewood Cliffs,NJ:Prentice-Hall,1975,PP。414-419。

[2] Welch, Peter D.“使用快速傅里叶变换估计功率谱:一种基于时间平均的方法,在短的,修改的周期图。”IEEE®《音频与电声学学报》,AU-15卷,1967年6月,70-73页。

[3] Oppenheim,Alan V.,Ronald W. Schafer和John R. Buck。离散时间信号处理.第二版。上鞍河,新泽西:普伦提斯霍尔,1999。

扩展功能

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

在R2006A之前介绍