主要内容

xspectrogram

使用短时傅里叶变换的交叉谱图

描述

年代= xspectrogram (xy指定的信号的交叉频谱图xy。输入信号必须是具有相同元素数量的向量。的每一列年代包含对共同的短期、时间局域频率内容的估计xy

年代= xspectrogram (xy窗口使用窗口划分xy进入段并执行窗口。

年代= xspectrogram (xy窗口noverlap使用noverlap相邻段之间重叠的样本。

例子

年代= xspectrogram (xy窗口noverlapnfft使用nfft采样点来计算离散傅里叶变换。

年代wt= x谱图___返回归一化频率的向量,w,以及时间瞬间的矢量,t,计算交叉谱图。该语法可以包括来自以前语法的输入参数的任何组合。

年代ft= x谱图___fs返回频率向量,f,用…表示fs,采样率。fs一定是第六个输入xspectrogram。若要输入采样率并仍使用上述可选参数的默认值,请将这些参数指定为空,[]

年代wt= x谱图xy窗口noverlapw中指定的归一化频率的交叉频谱图w

例子

年代ft= x谱图xy窗口noverlapffs中指定频率的交叉频谱图f

例子

___c= x谱图___同样返回一个矩阵,c,包含输入信号时变复交叉频谱的估计。cross-spectrogram,年代的大小c

例子

___= x谱图___freqrange指定的频率范围内的交叉频谱图freqrange。有效的选项freqrange“单向的”双侧的,“中心”

例子

___= x谱图___名称,值使用名称-值参数指定其他选项。选项包括最小阈值和输出时间维度。

___= x谱图___spectrumtype返回短期交叉功率谱密度估计值spectrumtype指定为psd的并返回短期交叉功率谱估计spectrumtype指定为“权力”

xspectrogram (___在没有输出参数的情况下,绘制当前图形窗口中的交叉谱图。

xspectrogram (___freqloc指定要在其上绘制频率的轴。指定freqloc作为“xaxis”“桠溪”

例子

全部折叠

产生两个线性啁啾采样在1兆赫兹为10毫秒。

  • 第一个啁啾的初始频率为150khz,在测量结束时增加到350khz。

  • 第二个啁啾的初始频率为200khz,在测量结束时增加到300khz。

加入高斯白噪声,使信噪比为40db。

nSamp = 10000;Fs = 1000e3;信噪比= 40;t = (0:nSamp-1)'/Fs;X1 = chirp(t,150e3,t(end),350e3);x1 = x1+randn(size(x1))*std(x1)/db2mag(SNR);X2 = chirp(t,200e3,t(end),300e3);x2 = x2+randn(size(x2))*std(x2)/db2mag(SNR);

计算并绘制两个啁啾的交叉谱图。将信号分成200个采样段,每个采样段用汉明窗窗。指定相邻段之间80个重叠采样点,DFT长度为1024个采样点。

xspectrogram (x1, x2,汉明(200),80年,1024年,Fs,“桠溪”

图包含一个轴对象。带有xlabel Time (ms), ylabel Frequency (kHz)的axes对象包含一个类型为image的对象。

修改第二个啁啾,以便在测量期间频率从50千赫上升到350千赫。使用带有形状因子的500个样本Kaiser窗口 β 5 打开分段窗口。指定450个重叠样本和256个DFT长度。计算并绘制交叉谱图。

X2 = chirp(t,50e3,t(end),350e3);x2 = x2+randn(size(x2))*std(x2)/db2mag(SNR);xspectrogram (x1, x2,凯瑟(500 5),450256年,Fs,“桠溪”

图包含一个轴对象。带有xlabel Time (ms), ylabel Frequency (kHz)的axes对象包含一个类型为image的对象。

在这两种情况下,该函数都会突出显示两个信号共有的频率内容。

加载一个包含两个以44100 Hz采样的语音信号的文件。

  • 第一个信号是一个女声的录音,说“变换功能”。

  • 第二个信号是同一个女性声音的录音,她说:“改革正义。”

绘制两个信号。垂直偏移第二个信号,使两者都可见。

负载(“voice.mat”要听,输入soundsc(transform,fs),pause(2),soundsc(reform,fs)T = (0:length(reform)-1)/fs;情节(t,变换,t,改革+ 0.3)传说(”“变换函数”“改革司法”的

图包含一个轴对象。axes对象包含2个line类型的对象。这些对象分别代表着“改造功能”、“改造正义”。

计算两个信号的交叉谱图。将信号分成1000个采样段,用汉明窗对其进行窗口处理。在相邻段之间指定800个重叠样本。只包括频率高达4千赫。

Nwin = 1000;NVLP = 800;Fint = 0:4000;[s,f,t] = xspectrogram(transform,reform,hamming(nwin),nvlp,fint,fs);网格(t,f,20*log10(s))视图(2)轴

图包含一个轴对象。axes对象包含一个surface类型的对象。

交叉谱图突出了信号具有更多共同频率内容的时间间隔。“form”这个音节尤其值得注意。

产生两个二次啁啾,每个采样在1千赫2秒。两种啁啾的初始频率都为100赫兹,在测量过程中增加到200赫兹。与第一个啁啾相比,第二个啁啾的相位差为23°。

Fs = 1e3;T = 0:1/fs:2;Y1 = chirp(t, 100,1200,“二次”, 0);Y2 = chirp(t, 100,1200,“二次”、23);

计算啁啾的复交叉谱图,提取它们之间的相移。将信号分成128个采样段。指定120个相邻段之间的重叠样本。使用带有形状因子的Kaiser窗口对每个段进行窗口β= 18,指定DFT长度为128个样本。的绘图功能xspectrogram显示交叉谱图。

[~ f, xt, c] = xspectrogram (y1, y2,皇帝(128年,18),120128年,fs);xspectrogram (y1、y2、皇帝(128年,18),120128年,fs,“桠溪”

图包含一个轴对象。具有xlabel Time (s), ylabel Frequency (Hz)的axes对象包含一个类型为image的对象。

提取并显示交叉谱图的最大能量时频脊。

[tfr,~,lridge] = tfridge(c,f);持有情节(xt,总和生育率,“k”“线宽”, 2)

图包含一个轴对象。具有xlabel Time (s), ylabel Frequency (Hz)的axes对象包含2个类型为image, line的对象。

相移是沿脊的时变交叉谱的虚部与实部之比。计算相移并以度表示。显示其平均值。

PSHFT = angle(c(lridge))*180/pi;意思是(pshft)
Ans = - 23000

产生两个信号,每个以3khz采样1秒。第一个信号是二次啁啾,其频率在测量期间从300 Hz增加到1300 Hz。啁啾嵌入在高斯白噪声中。第二个信号,也嵌入在白噪声中,是一个具有正弦变化频率内容的啁啾。

Fs = 3000;T = 0:1/fs:1-1/fs;X1 = chirp(t,300,t(end),1300,“二次”) + randn(大小(t)) / 100;x2 = exp (2 j *π* 100 * cos(2 *π* 2 * t)) + randn(大小(t)) / 100;

计算并绘制两个信号的交叉谱图。将信号分成256个采样段,相邻段之间有255个重叠采样。使用带有形状因子的Kaiser窗口β= 30窗口段。使用默认的DFT点数。在零频率处将交叉频谱图居中。

Nwin = 256;xspectrogram (x1, x2, kaiser (nwin 30), nwin-1, [], fs,“中心”“桠溪”

图包含一个轴对象。带有xlabel Time (ms), ylabel Frequency (kHz)的axes对象包含一个类型为image的对象。

计算功率谱而不是功率谱密度。将小于- 40db的值设置为零。以奈奎斯特频率为中心。

xspectrogram (x1, x2, kaiser (nwin 30), nwin-1, [], fs,“权力”“MinThreshold”, -40,“桠溪”)标题(二次啁啾与复啁啾的交叉谱图

图包含一个轴对象。标题为二次啁啾和复啁啾交叉谱图,xlabel Time (ms), ylabel Frequency (kHz)的轴对象包含一个类型为image的对象。

阈值进一步突出了共同频率的区域。

计算并绘制两个序列的交叉谱图。

指定每个序列为4096个样本长。

N = 4096;

要创建第一个序列,生成一个凸二次啁啾嵌入白高斯噪声和带通滤波器。

  • 啁啾的初始归一化频率为0.1π,在测量结束时增加到0.8π。

  • 16阶滤波器的归一化频率在0.2π和0.4π rad/sample之间,阻带衰减为60 dB。

rx = chirp(0:N-1,0.1/2,N,0.8/2,“二次”[],“凸”) + randn (N - 1) / 100;Dx = designfilt(“bandpassiir”“FilterOrder”, 16岁,“StopbandFrequency1”, 0.2,“StopbandFrequency2”, 0.4,“StopbandAttenuation”、60);X = filter(dx,rx);

要创建第二个序列,生成一个嵌入高斯白噪声的线性啁啾,并对其进行带阻滤波。

  • 啁啾的初始归一化频率为0.9π,在测量结束时降低到0.1π。

  • 16阶滤波器在0.6π和0.8π rad/sample之间停止归一化频率,并具有1 dB的通带纹波。

ry = chirp(0:N-1,0.9/2,N,0.1/2)'+randn(N,1)/100;Dy = designfilt(“bandstopiir”“FilterOrder”, 16岁,“PassbandFrequency1”, 0.6,“PassbandFrequency2”, 0.8,“PassbandRipple”1);Y = filter(dy,ry);

绘制这两个序列。垂直偏移第二个序列,使两者都可见。

情节([x y + 2])

图包含一个轴对象。axes对象包含2个line类型的对象。

计算并绘制的交叉谱图xy。使用512个样本的汉明窗口。指定500个相邻段之间的重叠样本和2048个DFT点。

xspectrogram (x, y,汉明(512),500年,2048年,“桠溪”

图包含一个轴对象。具有xlabel Samples, ylabel Normalized Frequency(乘以pi blank r a d a an s / s ample)的axes对象包含一个类型为image的对象。

将小于- 50db的交叉谱图值设为零。

xspectrogram (x, y,汉明(512),500年,2048年,“MinThreshold”, -50,“桠溪”

图包含一个轴对象。具有xlabel Samples, ylabel Normalized Frequency(乘以pi blank r a d a an s / s ample)的axes对象包含一个类型为image的对象。

谱图显示了被滤波器增强或抑制的频率区域。

输入参数

全部折叠

输入信号,指定为向量。

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

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

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

  • 如果窗口是整数吗xspectrogramxy分成长度段窗口并以该长度的汉明窗对每个段进行窗口。

  • 如果窗口是一个向量xspectrogramxy成段的长度相同的矢量和窗口,每个段使用窗口

如果输入信号不能被精确地分成整数段用noverlap重叠样本,然后相应截断。

如果你指定窗口空的,那么xspectrogram使用汉明窗,这样xy分为8段与noverlap重叠的样本。

有关可用窗口的列表,请参见窗户

例子:损害(N + 1)(1-cos(2 *π* (0:N) / N)) / 2都指定了长度为汉恩窗口N+ 1。

数据类型:|

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

  • 如果窗口是标量,那么noverlap必须小于窗口

  • 如果窗口是一个向量noverlap一定比的长度小窗口

如果你指定noverlap空的,那么xspectrogram使用在段之间产生50%重叠的数字。如果未指定段长度,则函数集noverlap对⌊N/ 4.5⌋,N是输入信号的长度。

数据类型:|

DFT点的个数,指定为正整数标量。如果你指定nfft空的,那么xspectrogram设置DFT长度为马克斯(256 2p,在那里p=⌈日志2Nw

  • Nw窗口如果窗口是一个标量。

  • Nw长度(窗口如果窗口是一个向量。

数据类型:|

归一化频率,用向量表示。w必须至少包含两个元素。归一化频率单位为rad/sample。

例子:π。/ [2 - 4]

数据类型:|

频率,用向量表示。f必须至少包含两个元素。的单位f是由采样率指定的,fs

数据类型:|

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

数据类型:|

跨频谱估计的频率范围,指定为“单向的”双侧的,或“中心”。对于实值信号,默认值为“单向的”。对于复值信号,默认值为双侧的,并指定“单向的”导致错误。

  • “单向的”-返回实际输入信号的单侧交叉频谱图。如果nfft那么它是偶数年代nfft/2 + 1行,并在间隔内计算[0,πrad /样品。如果nfft是奇数,那么年代有(nfft+ 1)/2行,区间是[0,πrad /样品。如果你指定fs,则区间分别为[0,fs/2]周期/单位时间和[0,fs/2)周期/单位时间。

  • 双侧的-返回实信号或复信号的双面交叉谱图。年代nfft并在间隔内计算[0, 2πrad /样品。如果你指定fs,则区间为[0,fs)周期/单位时间。

  • “中心”-返回实信号或复信号的中心双面交叉谱图。年代nfft行。如果nfft那么它是偶数年代是在区间内计算的吗(-ππrad /样品。如果nfft是奇数,那么年代被计算过(-ππrad /样品。如果你指定fs,则区间分别为(-fs/ 2,fs/2]周期/单位时间和(-fs/ 2,fs/2)周期/单位时间。

交叉功率谱缩放,指定为psd的“权力”

  • 省略spectrumtype,或指定psd的,返回交叉功率谱密度。

  • 指定“权力”通过分辨率带宽对交叉功率谱密度的每个估计进行缩放,这取决于窗口的等效噪声带宽和段持续时间。结果是每个频率下功率的估计值。

频率显示轴,指定为“xaxis”“桠溪”

  • “xaxis”—显示频率x-轴和时间y设在。

  • “桠溪”—显示频率y-轴和时间x设在。

如果调用,则忽略此参数xspectrogram带有输出参数。

名称-值参数

指定可选的参数对为Name1 = Value1,…,以=家,在那里名字是参数名和吗价值是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:“OutputTimeDimension”xspectrogram (x, 100年,“downrows”)xy分成长度为100的段,每个段都有一个相同长度的汉明窗口。频谱图的输出具有沿行向下的时间维度。

阈值,指定为以分贝表示的实标量。xspectrogram的元素设置为零年代比如10 log10年代)≤

输出时间维度,指定为acrosscolumnsdownrows。将此值设置为downrows的时间维数年代ps足球俱乐部,tc沿着行和沿着列的频率维度。将此值设置为acrosscolumns的时间维数年代ps足球俱乐部,tc跨列和沿行频率维度。如果在没有输出参数的情况下调用函数,则忽略此输入。

输出参数

全部折叠

交叉谱图,以矩阵的形式返回。的列间时间增加年代频率沿行增加,从0开始。

  • 如果输入信号xy长度相同N,然后年代k列,地点:

    • k=⌊(N- - - - - -noverlap) / (窗口- - - - - -noverlap)⌋如果窗口是一个标量。

    • k=⌊(N- - - - - -noverlap) / (长度(窗口- - - - - -noverlap)⌋如果窗口是一个向量。

  • 如果输入信号是实数并且nfft那么它是偶数年代有(nfft/2 + 1)行。

  • 如果输入信号是实数并且nfft是奇数,那么年代有(nfft+ 1)/2行。

  • 如果输入信号是复杂的,则年代nfft行。

数据类型:|

归一化频率,作为一个向量返回。w的长度等于的行数年代

数据类型:|

时间瞬间,作为矢量返回。中的时间值t对应于使用指定的每个段的中点窗口

数据类型:|

周期频率,作为一个向量返回。f的长度等于的行数年代

数据类型:|

时变复交叉谱,以矩阵形式返回。cross-spectrogram,年代的大小c

数据类型:|

参考文献

米特拉,桑吉特·K。数字信号处理:基于计算机的方法。第二版。纽约:麦格劳-希尔出版社,2001。

[2]奥本海姆,艾伦V,罗纳德W.谢弗,约翰R.巴克。离散时间信号处理。第2版。上马鞍河,NJ: Prentice Hall, 1999。

扩展功能

版本历史

在R2017a中引入