主要内容gydF4y2Ba

频谱图计算gydF4y2Ba信号处理工具箱gydF4y2Ba

信号处理工具箱™提供了计算非平稳信号的频谱图的三个功能。每个函数都有不同的输入参数、默认值和输出。最适合您的选择取决于您的特定应用。gydF4y2Ba

一个gydF4y2Ba非平稳的gydF4y2Ba信号是频率内容随时间变化的信号。的gydF4y2Ba短时傅里叶变换gydF4y2Ba(STFT)用于分析该频率内容如何随着信号的演变而变化。STFT的大小平方称为gydF4y2Ba光谱图gydF4y2Ba信号的时频表示。gydF4y2Ba

频谱图只是几种可能的时频表示之一。有关信号处理工具箱和小波工具箱™中可用的其他时频表示的概述,请参见gydF4y2Ba时频画廊gydF4y2Ba.对于平稳信号的处理,使用gydF4y2Ba周期图gydF4y2Ba功能,请参阅gydF4y2Ba利用FFT估计功率谱密度gydF4y2Ba.gydF4y2Ba

谱图计算函数gydF4y2Ba

信号处理工具箱有这些功能,可用于计算频谱图:gydF4y2Ba

  • 光谱图gydF4y2Ba-设计最大的灵活性。计算STFT和分段功率谱密度或功率谱。金宝app支持重新分配。gydF4y2Ba

  • stftgydF4y2Ba-设计为可逆性和最大限度的控制。计算STFT。所使用的gydF4y2BadlstftgydF4y2Ba而且gydF4y2BastftLayergydF4y2Ba.金宝app支持多通道输入。与之对应的是gydF4y2BaistftgydF4y2Ba函数,计算逆STFT。gydF4y2Ba

  • pspectrumgydF4y2Ba-设计易于使用。计算功率谱。生成的分析脚本中使用gydF4y2Ba信号分析仪gydF4y2Ba.能计算平稳信号谱和持续谱。金宝app支持重新分配。gydF4y2Ba

的gydF4y2Ba光谱图gydF4y2Ba函数在接下来的讨论中用作参考。gydF4y2Ba

类别gydF4y2Ba 参数gydF4y2Ba 函数gydF4y2Ba
光谱图gydF4y2Ba stftgydF4y2Ba pspectrumgydF4y2Ba
输入gydF4y2Ba 信号gydF4y2Ba 向量和gydF4y2BaNgydF4y2BaxgydF4y2Ba元素gydF4y2Ba
  • 向量和gydF4y2BaNgydF4y2BaxgydF4y2Ba元素gydF4y2Ba

  • 矩阵gydF4y2BaNgydF4y2BaxgydF4y2Ba行gydF4y2Ba

  • 时间表和gydF4y2BaNgydF4y2BaxgydF4y2Ba行gydF4y2Ba

  • 向量和gydF4y2BaNgydF4y2BaxgydF4y2Ba元素gydF4y2Ba

  • 时间表和gydF4y2BaNgydF4y2BaxgydF4y2Ba行gydF4y2Ba

窗口中,gydF4y2BaggydF4y2Ba(gydF4y2BangydF4y2Ba)gydF4y2Ba

第二个位置参数gydF4y2Ba

(默认:汉明窗口)gydF4y2Ba

窗口gydF4y2Ba名称-值参数gydF4y2Ba

(默认值:周期性Hann窗口)gydF4y2Ba

仅限Kaiser窗口gydF4y2Ba
窗口长度,gydF4y2Ba米gydF4y2Ba

指定为样本数量gydF4y2Ba

(默认值:gydF4y2Ba⌊gydF4y2BaNgydF4y2BaxgydF4y2Ba/ 4.5⌋gydF4y2Ba)gydF4y2Ba

指定为样本数量gydF4y2Ba

(默认:128)gydF4y2Ba

TimeResolutiongydF4y2Ba名称-值参数gydF4y2Ba
泄漏,gydF4y2BaℓgydF4y2Ba
  • 取决于窗口gydF4y2Ba

  • 如果使用凯撒窗口,调整使用gydF4y2BaβgydF4y2Ba形状系数gydF4y2Ba

  • 取决于窗口gydF4y2Ba

  • 如果使用凯撒窗口,调整使用gydF4y2BaβgydF4y2Ba形状系数gydF4y2Ba

泄漏gydF4y2Ba与Kaiser窗口相关的名称-值参数gydF4y2BaβgydF4y2Ba形状系数:gydF4y2BaℓgydF4y2Ba= 1 -gydF4y2BaβgydF4y2Ba/ 40gydF4y2Ba
重叠,gydF4y2BalgydF4y2Ba

指定为第三个位置参数的样本数gydF4y2Ba

(默认:窗口长度的50%)gydF4y2Ba

指定的样本数gydF4y2BaOverlapLengthgydF4y2Ba名称-值参数gydF4y2Ba

(默认:窗口长度的75%)gydF4y2Ba

指定的段长度百分比gydF4y2BaOverlapPercentgydF4y2Ba名称-值参数gydF4y2Ba

(默认值:gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba ×gydF4y2Ba ENBWgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ×gydF4y2Ba One hundred.gydF4y2Ba ,gydF4y2Ba 在哪里gydF4y2BaENBWgydF4y2Ba为窗口的等效噪声带宽)gydF4y2Ba

DFT点数,gydF4y2BaNgydF4y2BaDFTgydF4y2Ba

第四个位置参数gydF4y2Ba

(默认值:gydF4y2Ba马克斯(256 2gydF4y2Ba⌈日志gydF4y2Ba2gydF4y2Ba米gydF4y2Ba⌉gydF4y2Ba)gydF4y2Ba)gydF4y2Ba

FFTLengthgydF4y2Ba名称-值参数gydF4y2Ba

(默认:128)gydF4y2Ba

总1024gydF4y2Ba
时间信息gydF4y2Ba 采样率指定为第五个位置参数gydF4y2Ba 作为第二个位置参数指定的采样率或时间向量gydF4y2Ba 作为第二个位置参数指定的采样率或时间向量gydF4y2Ba
函数调用gydF4y2Ba
Fs = 100;X = exp(2j*pi*20*…(0:1 / fs: 2 - 1 / f));M = 200;Lk = 0.5;g = kaiser(M,40*(1-lk));L = 100;Ndft = 1024;gydF4y2Ba
(…)光谱图(x, g, L,…Ndft,fs,"居中")…^ 2;gydF4y2Ba
(…)stft (x, fs,窗口= g,…OverlapLength = L,…FFTLength=Ndft)…^ 2;gydF4y2Ba
PSS = pspectrum(x,fs,…“声谱图”,…TimeResolution = M / fs,……泄漏=路,……重叠百分比=L/M*100…)*总和(g) ^ 2;gydF4y2Ba
方便的阴谋gydF4y2Ba

Fs = 6e2;Ts = 0:1/fs:2.05;X = vco(sin(2* ts))*……exp (ts) (0.1 - 0.4) * fs, fs);M = 32;Lk = 0.9;g = kaiser(M,40*(1-lk));L = 22;Ndft = 1024;gydF4y2Ba

  • 为gydF4y2Ba光谱图gydF4y2Ba,添加gydF4y2Ba“权力”、“桠溪”gydF4y2Ba

  • 为gydF4y2BastftgydF4y2Ba,添加gydF4y2BaFrequencyRange =“单向的”gydF4y2Ba

频谱图函数方便图。gydF4y2Ba

STFT函数方便图gydF4y2Ba

Pspectrum函数方便图gydF4y2Ba

输出gydF4y2Ba 频率范围gydF4y2Ba
  • 控制使用gydF4y2BafreqrangegydF4y2Ba论点:gydF4y2Ba

    • “单向的”gydF4y2Ba-对于偶数gydF4y2BaNgydF4y2BaDFTgydF4y2Ba时,频率区间在零频率和奈奎斯特频率处闭合gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2gydF4y2Ba.gydF4y2Ba

      的奇数值gydF4y2BaNgydF4y2BaDFTgydF4y2Ba,频率区间在零频率处闭合,在零频率处开启gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2gydF4y2Ba.gydF4y2Ba

      (默认为实值信号。)gydF4y2Ba

    • “双侧”gydF4y2Ba-对于的所有值gydF4y2BaNgydF4y2BaDFTgydF4y2Ba,频率区间在零频率处闭合,在零频率处开启gydF4y2BafgydF4y2Ba年代gydF4y2Ba.gydF4y2Ba

    • “中心”gydF4y2Ba-对于偶数gydF4y2BaNgydF4y2BaDFTgydF4y2Ba时,频率区间为开gydF4y2Ba- - - - - -gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2gydF4y2Ba关门时间是gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2gydF4y2Ba.gydF4y2Ba

      的奇数值gydF4y2BaNgydF4y2BaDFTgydF4y2Ba时,频率区间两端为开放。gydF4y2Ba

      (默认为复值信号。)gydF4y2Ba

  • 用户可以指定一个频率矢量来计算STFT和频谱图。gydF4y2Ba

控制使用gydF4y2BaFrequencyRangegydF4y2Ba名称-值参数:gydF4y2Ba

  • “单向的”gydF4y2Ba-与在gydF4y2Ba光谱图gydF4y2Ba.gydF4y2Ba

  • “双侧”gydF4y2Ba-与在gydF4y2Ba光谱图gydF4y2Ba.gydF4y2Ba

  • “中心”gydF4y2Ba-与声谱图相同。gydF4y2Ba

    (默认为实值和复值信号。)gydF4y2Ba

控制使用gydF4y2Ba双侧gydF4y2Ba逻辑名-值参数:gydF4y2Ba

  • 假gydF4y2Ba-间隔关闭在零频率和gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2gydF4y2Ba.gydF4y2Ba

    (默认为实值信号。)gydF4y2Ba

  • 真正的gydF4y2Ba-时间间隔关闭于gydF4y2Ba- - - - - -gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2gydF4y2Ba而在gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2gydF4y2Ba.gydF4y2Ba

    (默认为复值信号。)gydF4y2Ba

时间间隔gydF4y2Ba
  • 信号在最后一个满窗段后截断。gydF4y2Ba

  • 段中心的时间值。gydF4y2Ba

  • 信号在最后一个满窗段后截断。gydF4y2Ba

  • 段中心的时间值。gydF4y2Ba

  • 信号零填充超出最后一个满窗口段。gydF4y2Ba

  • 段中心的时间值。gydF4y2Ba

归一化gydF4y2Ba
  • 第一个输出参数是STFT。它的大小的平方就是谱图。gydF4y2Ba

  • 第四个输出参数是一个模的平方。要得到光谱图,乘以gydF4y2Ba(ΣgydF4y2BangydF4y2BaggydF4y2Ba(gydF4y2BangydF4y2Ba))gydF4y2Ba2gydF4y2Ba并指定gydF4y2Ba“权力”gydF4y2Ba选择。gydF4y2Ba

第一个输出参数是STFT。它的大小的平方就是谱图。gydF4y2Ba
  • 第一个输出参数是一个模的平方。gydF4y2Ba

  • 要得到光谱图,乘以gydF4y2Ba(ΣgydF4y2BangydF4y2BaggydF4y2Ba(gydF4y2BangydF4y2Ba))gydF4y2Ba2gydF4y2Ba.gydF4y2Ba

PSD和功率谱gydF4y2Ba
  • 的第四个输出参数gydF4y2Ba光谱图gydF4y2Ba包含段功率谱密度或段功率谱。gydF4y2Ba

  • 谱图等于功率谱乘以窗口元素总和的平方。gydF4y2Ba

  • spectrumtypegydF4y2Ba论点:gydF4y2Ba

    • “psd”gydF4y2Ba-乘以gydF4y2BaENBWgydF4y2Ba获取功率谱gydF4y2Ba

      (默认)gydF4y2Ba

    • “权力”gydF4y2Ba-功率谱gydF4y2Ba

输出参数为STFT。gydF4y2Ba
  • 输出参数为功率谱gydF4y2Ba

  • 要得到PSD,请除以gydF4y2BaENBWgydF4y2Ba

例子gydF4y2Ba

STFT和谱图定义gydF4y2Ba

信号的STFT是通过滑动运算得到的gydF4y2Ba分析窗口gydF4y2BaggydF4y2Ba(gydF4y2BangydF4y2Ba)gydF4y2Ba的长度gydF4y2Ba米gydF4y2Ba并计算每段加窗数据的离散傅里叶变换(DFT)。窗口以的间隔跳过原始信号gydF4y2BaRgydF4y2Ba样本,相当于gydF4y2BalgydF4y2Ba=gydF4y2Ba米gydF4y2Ba- - - - - -gydF4y2BaRgydF4y2Ba相邻段之间重叠的样本。大多数窗口函数在边缘逐渐减少,以避免光谱振铃。每个加窗段的DFT被添加到一个复值矩阵,其中包含每个时间和频率点的幅度和相位。STFT矩阵有gydF4y2Ba

kgydF4y2Ba =gydF4y2Ba ⌊gydF4y2Ba NgydF4y2Ba xgydF4y2Ba −gydF4y2Ba lgydF4y2Ba 米gydF4y2Ba −gydF4y2Ba lgydF4y2Ba ⌋gydF4y2Ba

列,gydF4y2BaNgydF4y2BaxgydF4y2Ba信号的长度是多少gydF4y2BaxgydF4y2Ba(gydF4y2BangydF4y2Ba)gydF4y2Ba和gydF4y2Ba⌊⌋gydF4y2Ba符号表示楼层功能。矩阵中的行数等于gydF4y2BaNgydF4y2BaDFTgydF4y2Ba为DFT点的个数,对于中心变换和双面变换,为接近的奇数gydF4y2BaNgydF4y2BaDFTgydF4y2Ba/ 2gydF4y2Ba对于实值信号的单边变换。gydF4y2Ba

的gydF4y2Ba米gydF4y2BaSTFT矩阵的第3列gydF4y2Ba XgydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba =gydF4y2Ba [gydF4y2Ba XgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba XgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba XgydF4y2Ba 3.gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba ⋯gydF4y2Ba XgydF4y2Ba kgydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba ]gydF4y2Ba 包含以时间为中心的加窗数据的DFTgydF4y2Ba先生gydF4y2Ba:gydF4y2Ba

XgydF4y2Ba 米gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba =gydF4y2Ba ∑gydF4y2Ba ngydF4y2Ba =gydF4y2Ba −gydF4y2Ba ∞gydF4y2Ba ∞gydF4y2Ba xgydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba ggydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 米gydF4y2Ba RgydF4y2Ba )gydF4y2Ba egydF4y2Ba −gydF4y2Ba jgydF4y2Ba 2gydF4y2Ba πgydF4y2Ba fgydF4y2Ba ngydF4y2Ba .gydF4y2Ba

比较gydF4y2Ba光谱图gydF4y2Ba函数和STFT定义gydF4y2Ba

生成一个由复值凸二次啁啾以600赫兹采样2秒组成的信号。啁啾的初始频率为250hz,最终频率为50hz。gydF4y2Ba

Fs = 6e2;Ts = 0:1/fs:2;X = chirp(ts,250,ts(end),50,gydF4y2Ba“二次”gydF4y2Ba0,gydF4y2Ba“凸”gydF4y2Ba,gydF4y2Ba“复杂”gydF4y2Ba);gydF4y2Ba

光谱图gydF4y2Ba函数gydF4y2Ba

使用gydF4y2Ba光谱图gydF4y2Ba函数来计算信号的STFT。gydF4y2Ba

  • 把信号分成几段,每段gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba 49gydF4y2Ba 样品长。gydF4y2Ba

  • 指定gydF4y2Ba lgydF4y2Ba =gydF4y2Ba 11gydF4y2Ba 相邻段之间重叠的样本。gydF4y2Ba

  • 丢弃最后较短的片段。gydF4y2Ba

  • 用巴特利特窗口对每个分段进行窗口。gydF4y2Ba

  • 求每一段的离散傅里叶变换gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba =gydF4y2Ba 1024gydF4y2Ba 点。默认情况下,gydF4y2Ba光谱图gydF4y2Ba计算复值信号的双面变换。gydF4y2Ba

M = 49;L = 11;g = bartlett(M);Ndft = 1024;[s,f,t] =谱图(x,g,L,Ndft,fs);gydF4y2Ba

使用gydF4y2BawaterplotgydF4y2Ba函数来计算和显示谱图,定义为STFT的大小平方。gydF4y2Ba

waterplot (s, t)gydF4y2Ba

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

STFT的定义gydF4y2Ba

的STFTgydF4y2Ba NgydF4y2Ba xgydF4y2Ba -采样信号使用定义。将信号分成gydF4y2Ba ⌊gydF4y2Ba NgydF4y2Ba xgydF4y2Ba -gydF4y2Ba lgydF4y2Ba 米gydF4y2Ba -gydF4y2Ba lgydF4y2Ba ⌋gydF4y2Ba 重叠的部分。对每一段进行窗口,并计算它的离散傅里叶变换gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba 点。gydF4y2Ba

[segs,~] = buffer(1:length(x),M,L,gydF4y2Ba“nodelay”gydF4y2Ba);X = fft(X (segs).*g,Ndft);gydF4y2Ba

计算STFT的时间和频率范围。gydF4y2Ba

  • 为了找到时间值,将时间向量分成重叠的部分。时间值是段的中点,每个段被视为一个在下端开放的区间。gydF4y2Ba

  • 要找到频率值,请指定一个在零频率处关闭,在低频处打开的奈奎斯特区间。gydF4y2Ba

Tbuf = ts(segs);Tint = mean(tbuf(2:end,:));fint = 0:fs/Ndft:fs-fs/Ndft;gydF4y2Ba

比较输出gydF4y2Ba光谱图gydF4y2Ba根据定义。显示频谱图。gydF4y2Ba

maxdiff = max(max(s-X)))gydF4y2Ba
Maxdiff = 0gydF4y2Ba
waterplot (X,弗林特,色调)gydF4y2Ba

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

函数gydF4y2Bawaterplot (s, t)gydF4y2Ba%瀑布图的频谱图gydF4y2Ba瀑布(f t abs (s)”。^ 2)组(gca, XDir =gydF4y2Ba“反向”gydF4y2Ba,View=[30 50]) xlabel(gydF4y2Ba“频率(赫兹)”gydF4y2Ba) ylabel (gydF4y2Ba“时间(s)”gydF4y2Ba)gydF4y2Ba结束gydF4y2Ba

比较gydF4y2Ba光谱图gydF4y2Ba而且gydF4y2BastftgydF4y2Ba功能gydF4y2Ba

生成一个由1.4 kHz采样的啁啾组成的信号,持续2秒。在测量时间内,啁啾频率从600 Hz线性下降到100 Hz。gydF4y2Ba

Fs = 1400;X = chirp(0:1/fs:2,600,2,100);gydF4y2Ba

stftgydF4y2Ba违约gydF4y2Ba

函数计算信号的STFTgydF4y2Ba光谱图gydF4y2Ba而且gydF4y2BastftgydF4y2Ba功能。的默认值gydF4y2BastftgydF4y2Ba功能:gydF4y2Ba

  • 将信号划分为128个采样段,并对每个采样段进行周期性的Hann窗窗。gydF4y2Ba

  • 指定相邻段之间重叠的96个样本。这个长度相当于窗口长度的75%。gydF4y2Ba

  • 指定128个DFT点,并将STFT置于零频率的中心,频率以赫兹表示。gydF4y2Ba

验证两个结果是否相等。gydF4y2Ba

M = 128;g = hann(M,gydF4y2Ba“周期”gydF4y2Ba);L = 0.75* m;Ndft = 128;[sp,fp,tp] =谱图(x,g,L,Ndft,fs,gydF4y2Ba“中心”gydF4y2Ba);[s,f,t] = stft(x,fs);DFF = max(max(abs(sp-s)))gydF4y2Ba
DFF = 0gydF4y2Ba

使用gydF4y2Ba网gydF4y2Ba函数绘制两个输出。gydF4y2Ba

Subplot (2,1,1) mesh(tp,fp,abs(sp).^2) title(gydF4y2Ba“声谱图”gydF4y2Ba)视图(2),轴gydF4y2Ba紧gydF4y2BaSubplot (2,1,2) mesh(t,f,abs(s).^2) title(gydF4y2Ba“stft”gydF4y2Ba)视图(2),轴gydF4y2Ba紧gydF4y2Ba

图中包含2个轴对象。带有标题谱图的轴对象1包含一个类型为surface的对象。带有标题stft的Axes对象2包含一个类型为surface的对象。gydF4y2Ba

光谱图gydF4y2Ba违约gydF4y2Ba

属性的默认值重复计算gydF4y2Ba光谱图gydF4y2Ba功能:gydF4y2Ba

  • 把信号分成不同长度的片段gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba ⌊gydF4y2Ba NgydF4y2Ba xgydF4y2Ba /gydF4y2Ba 4gydF4y2Ba .gydF4y2Ba 5gydF4y2Ba ⌋gydF4y2Ba ,在那里gydF4y2Ba NgydF4y2Ba xgydF4y2Ba 是信号的长度。用汉明窗口对每个段进行窗口。gydF4y2Ba

  • 指定段之间50%的重叠。gydF4y2Ba

  • 要计算FFT,使用gydF4y2Ba 马克斯gydF4y2Ba (gydF4y2Ba 256gydF4y2Ba ,gydF4y2Ba 2gydF4y2Ba ⌈gydF4y2Ba 日志gydF4y2Ba 2gydF4y2Ba 米gydF4y2Ba ⌉gydF4y2Ba )gydF4y2Ba 点。只计算正归一化频率的频谱图。gydF4y2Ba

M =地板(长度(x)/4.5);g =汉明(M);L =楼层(M/2);Ndft = max(256,2^nextpow2(M));[sx,fx,tx] =谱图(x);[st,ft,tt] = stft(x,Window=g,OverlapLength=L,FFTLength=Ndft,FrequencyRange=gydF4y2Ba“单向的”gydF4y2Ba);DFF = max(max(sx-st))gydF4y2Ba
DFF = 0gydF4y2Ba

使用gydF4y2BawaterplotgydF4y2Ba函数绘制两个输出。将频率轴除以gydF4y2Ba πgydF4y2Ba 在这两种情况下。为gydF4y2BastftgydF4y2Ba输出,用抽样数除以有效抽样率,gydF4y2Ba 2gydF4y2Ba πgydF4y2Ba .gydF4y2Ba

Subplot (2,1,1) waterplot(sx,fx/pi,tx)标题(gydF4y2Ba“声谱图”gydF4y2Ba) subplot(2,1,2) waterplot(st,ft/pi,tt/(2*pi))gydF4y2Ba“stft”gydF4y2Ba)gydF4y2Ba

图中包含2个轴对象。带有标题谱图的轴对象1包含一个patch类型的对象。标题为stft的Axes对象2包含一个类型为patch的对象。gydF4y2Ba

函数gydF4y2Bawaterplot (s, t)gydF4y2Ba%瀑布图的频谱图gydF4y2Ba瀑布(f t abs (s)”。^ 2)组(gca, XDir =gydF4y2Ba“反向”gydF4y2Ba,View=[30 50]) xlabel(gydF4y2Ba“频率/ \π”gydF4y2Ba) ylabel (gydF4y2Ba“样本”gydF4y2Ba)gydF4y2Ba结束gydF4y2Ba

比较gydF4y2Ba光谱图gydF4y2Ba而且gydF4y2BapspectrumgydF4y2Ba功能gydF4y2Ba

生成一个由电压控制振荡器和三个高斯原子组成的信号。信号在gydF4y2Ba fgydF4y2Ba 年代gydF4y2Ba =gydF4y2Ba 2gydF4y2Ba kHz 1秒。gydF4y2Ba

Fs = 2000;Tx = (0:1/fs:2);gaussFun = @ (A, x,μf) exp (- (xμ)。^ 2 /(2 * 0.03 ^ 2)。*罪(2 *π* f。* x) *”;s = gaussFun ((1 1 1), tx”[0.1 - 0.65 1],[2 6 2]* 100)* 1.5;x = vco(线性调频(tx + 1。0 tx(结束),3)。* exp (2 * (tx-1) ^ 2), [0.1 - 0.4] * fs, fs);X = s+ X ';gydF4y2Ba

短时傅里叶变换gydF4y2Ba

使用gydF4y2BapspectrumgydF4y2Ba函数来计算STFT。gydF4y2Ba

  • 把gydF4y2Ba NgydF4y2Ba xgydF4y2Ba -采样信号成段长度gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba 80gydF4y2Ba 样本,对应的时间分辨率为gydF4y2Ba 80gydF4y2Ba /gydF4y2Ba 2000gydF4y2Ba =gydF4y2Ba 40gydF4y2Ba 毫秒。gydF4y2Ba

  • 指定gydF4y2Ba lgydF4y2Ba =gydF4y2Ba 16gydF4y2Ba 相邻段之间重叠的样品或20%。gydF4y2Ba

  • 每段窗用凯泽窗指定一个漏窗gydF4y2Ba ℓgydF4y2Ba =gydF4y2Ba 0gydF4y2Ba .gydF4y2Ba 7gydF4y2Ba .gydF4y2Ba

M = 80;L = 16;Lk = 0.7;[S,F,T] = pspectrum(x,fs,gydF4y2Ba“声谱图”gydF4y2Ba,gydF4y2Ba...gydF4y2BaTimeResolution = M / fs, OverlapPercent = L / M * 100,gydF4y2Ba...gydF4y2Ba泄漏=路);gydF4y2Ba

与所获得的结果进行比较gydF4y2Ba光谱图gydF4y2Ba函数。gydF4y2Ba

  • 在样本中直接指定窗口长度和重叠。gydF4y2Ba

  • pspectrumgydF4y2Ba总是使用凯撒窗口作为gydF4y2Ba ggydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba .泄漏gydF4y2Ba ℓgydF4y2Ba 还有形状因子gydF4y2Ba βgydF4y2Ba 的窗户是由gydF4y2Ba βgydF4y2Ba =gydF4y2Ba 40gydF4y2Ba ×gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba -gydF4y2Ba ℓgydF4y2Ba )gydF4y2Ba .gydF4y2Ba

  • pspectrumgydF4y2Ba总是使用gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba =gydF4y2Ba 1024gydF4y2Ba 在计算离散傅里叶变换时。如果想要计算双面或中心频率范围内的变换,可以指定这个数字。然而,对于单边变换,这是实信号的默认值,gydF4y2Ba光谱图gydF4y2Ba使用gydF4y2Ba 1024gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba 513gydF4y2Ba 点。或者,您可以指定想要计算变换的频率向量,如本例所示。gydF4y2Ba

  • 如果一个信号不能被精确地分成gydF4y2Ba kgydF4y2Ba =gydF4y2Ba ⌊gydF4y2Ba NgydF4y2Ba xgydF4y2Ba -gydF4y2Ba lgydF4y2Ba 米gydF4y2Ba -gydF4y2Ba lgydF4y2Ba ⌋gydF4y2Ba 段,gydF4y2Ba光谱图gydF4y2Ba截断信号gydF4y2BapspectrumgydF4y2Ba用零填充信号以创建一个额外的段。为了使输出相等,删除时间向量的最后一段和最后一个元素。gydF4y2Ba

  • 光谱图gydF4y2Ba返回STFT,其大小的平方是频谱图。gydF4y2BapspectrumgydF4y2Ba返回逐段功率谱,该功率谱已被平方,但还要除以因数gydF4y2Ba ∑gydF4y2Ba ngydF4y2Ba ggydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba 在平方。gydF4y2Ba

  • 对于单边变换,gydF4y2BapspectrumgydF4y2Ba在频谱图中增加2的额外因子。gydF4y2Ba

g = kaiser(M,40*(1-lk));k =(长度(x)-L)/(M-L);gydF4y2Ba如果gydF4y2Bak~=floor(k) S = S(:,1:floor(k));T = T(1:楼层(k));gydF4y2Ba结束gydF4y2Ba[s,f,t] =谱图(x/sum(g)*√(2),g,L, f, fs);gydF4y2Ba

使用gydF4y2BawaterplotgydF4y2Ba函数显示两个函数计算的谱图。gydF4y2Ba

subplot(2,1,1) waterplot(√(S),F,T)标题(gydF4y2Ba“pspectrum”gydF4y2Ba) subplot(2,1,2) waterplot(s,f,t)标题(gydF4y2Ba“声谱图”gydF4y2Ba)gydF4y2Ba

图中包含2个轴对象。标题为pspectrum的Axes对象1包含一个类型为patch的对象。带有标题谱图的轴对象2包含一个patch类型的对象。gydF4y2Ba

maxd = max(max(abs(abs(s).²- s))))gydF4y2Ba
Maxd = 2.4419e-08gydF4y2Ba

功率谱和方便图gydF4y2Ba

的gydF4y2Ba光谱图gydF4y2Ba函数有第四个参数,对应于逐段功率谱或功率谱密度。的输出类似gydF4y2BapspectrumgydF4y2Ba,gydF4y2BapsgydF4y2Ba参数已被平方,并包含归一化因子gydF4y2Ba ∑gydF4y2Ba ngydF4y2Ba ggydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba .对于真实信号的单侧谱图,你仍然必须包括额外的因子2。将函数的缩放参数设置为gydF4y2Ba“权力”gydF4y2Ba.gydF4y2Ba

[~,~,~,ps] =谱图(x*√(2),g,L,F,fs,gydF4y2Ba“权力”gydF4y2Ba);马克斯(abs (S (:) ps (:)))gydF4y2Ba
Ans = 2.4419e-08gydF4y2Ba

在没有输出参数的情况下调用时,两者都是gydF4y2BapspectrumgydF4y2Ba而且gydF4y2Ba光谱图gydF4y2Ba以分贝为单位绘制信号的频谱图。单侧谱图包括因子2。将两个图的颜色映射设置为相同。设置gydF4y2BaxgydF4y2Ba的末尾的额外段可见gydF4y2BapspectrumgydF4y2Ba情节。在gydF4y2Ba光谱图gydF4y2Ba绘图,显示频率上gydF4y2BaygydF4y2Ba设在。gydF4y2Ba

次要情节(2,1,1)pspectrum (x, fs,gydF4y2Ba“声谱图”gydF4y2Ba,gydF4y2Ba...gydF4y2BaTimeResolution = M / fs, OverlapPercent = L / M * 100,gydF4y2Ba...gydF4y2Ba泄漏=路)标题(gydF4y2Ba“pspectrum”gydF4y2Ba) cc = clim;Xl = xlim;次要情节(2,1,2)谱图(x * sqrt (2), g, L, F, F,gydF4y2Ba“权力”gydF4y2Ba,gydF4y2Ba“桠溪”gydF4y2Ba)标题(gydF4y2Ba“声谱图”gydF4y2Ba) clim(cc) xlim(xl)gydF4y2Ba

图中包含2个轴对象。标题为pspectrum的坐标轴对象1包含一个image类型的对象。带有标题谱图的轴对象2包含一个图像类型的对象。gydF4y2Ba

函数gydF4y2Bawaterplot (s, t)gydF4y2Ba%瀑布图的频谱图gydF4y2Ba瀑布(f t abs (s)”。^ 2)组(gca, XDir =gydF4y2Ba“反向”gydF4y2Ba,View=[30 50]) xlabel(gydF4y2Ba“频率(赫兹)”gydF4y2Ba) ylabel (gydF4y2Ba“时间(s)”gydF4y2Ba)gydF4y2Ba结束gydF4y2Ba

计算居中和单侧谱图gydF4y2Ba

生成一个由2 kHz采样2秒的实值啁啾组成的信号。gydF4y2Ba

Fs = 2000;Tx = 0:1/fs:2;x = vco(线性调频(tx 0 tx(结束),2)。* exp (3 * (tx-1) ^ 2), [0.1 - 0.4] * fs, fs)。*损害(长度(tx));gydF4y2Ba

双面的光谱图gydF4y2Ba

计算并绘制信号的双面STFT。gydF4y2Ba

  • 把信号分成几段,每段gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba 73gydF4y2Ba 样品长。gydF4y2Ba

  • 指定gydF4y2Ba lgydF4y2Ba =gydF4y2Ba 24gydF4y2Ba 相邻段之间重叠的样本。gydF4y2Ba

  • 丢弃最后较短的片段。gydF4y2Ba

  • 用平顶窗口窗口每个段。gydF4y2Ba

  • 求每一段的离散傅里叶变换gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba =gydF4y2Ba 895gydF4y2Ba 点,注意它是一个奇数。gydF4y2Ba

M = 73;L = 24;g = flattopwin(M);Ndft = 895;neven = ~mod(Ndft,2);[stwo,f,t] =谱图(x,g,L,Ndft,fs,gydF4y2Ba“双侧”gydF4y2Ba);gydF4y2Ba

使用gydF4y2Ba光谱图gydF4y2Ba函数,不带输出参数来绘制双面谱图。gydF4y2Ba

光谱图(x, g, L, Ndft, fs,gydF4y2Ba“双侧”gydF4y2Ba,gydF4y2Ba“权力”gydF4y2Ba,gydF4y2Ba“桠溪”gydF4y2Ba);gydF4y2Ba

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

使用定义计算双面谱图。将信号分成gydF4y2Ba 米gydF4y2Ba -样本段gydF4y2Ba lgydF4y2Ba 相邻段之间重叠的样本。为每一段设置窗口并计算它的离散傅里叶变换gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba 点。gydF4y2Ba

[segs,~] = buffer(1:length(x),M,L,gydF4y2Ba“nodelay”gydF4y2Ba);Xtwo = fft(x(segs).*g,Ndft);gydF4y2Ba

计算时间和频率范围。gydF4y2Ba

  • 为了找到时间值,将时间向量分成重叠的部分。时间值是段的中点,每个段被视为一个在下端开放的区间。gydF4y2Ba

  • 要找到频率值,请指定一个在零频率处关闭,在上端打开的奈奎斯特区间。gydF4y2Ba

Tbuf = tx(segs);Ttwo = mean(tbuf(2:end,:));ftwo = 0:fs/Ndft:fs*(1-1/Ndft);gydF4y2Ba

比较gydF4y2Ba光谱图gydF4y2Ba到定义。使用gydF4y2BawaterplotgydF4y2Ba功能显示谱图。gydF4y2Ba

差别=[马克斯(max (abs (stwo-Xtwo))) max (abs (f-ftwo '))马克斯(abs (t-ttwo)))gydF4y2Ba
差别=gydF4y2Ba1×3gydF4y2Ba10gydF4y2Ba-12年gydF4y2Ba× 0 0.2274 0.0002gydF4y2Ba
subplot(2,1,1) waterplot(Xtwo,ftwo,ttwo)gydF4y2Ba“两面,定义”gydF4y2Ba) subplot(2,1,2) waterplot(stwo,f,t) title(gydF4y2Ba双面,谱图函数gydF4y2Ba)gydF4y2Ba

图中包含2个轴对象。标题为Two-Sided的axis对象1,定义包含一个类型为patch的对象。轴对象2标题为Two-Sided,谱图函数包含一个类型为patch的对象。gydF4y2Ba

集中光谱图gydF4y2Ba

计算信号的中心谱图。gydF4y2Ba

  • 使用与双面STFT相同的时间值。gydF4y2Ba

  • 使用gydF4y2BafftshiftgydF4y2Ba函数将STFT的零频率分量移到频谱的中心。gydF4y2Ba

  • 对奇值gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba 时,频率区间两端为开放。对于even-valuedgydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba ,频率区间下端为开放,上端为封闭。gydF4y2Ba

比较输出并显示频谱图。gydF4y2Ba

ten = ttwo;gydF4y2Ba如果gydF4y2Ba~neven xen = fftshift(Xtwo,1);fen = -fs/2*(1-1/Ndft):fs/Ndft:fs/2;gydF4y2Ba其他的gydF4y2Baxen = fftshift(circshift(Xtwo,-1),1);fen = (-fs/2*(1-1/Ndft):fs/Ndft:fs/2)+fs/Ndft/2;gydF4y2Ba结束gydF4y2Ba[scen,f,t] =谱图(x,g,L,Ndft,fs,gydF4y2Ba“中心”gydF4y2Ba);差别=[马克斯(max (abs (scen-Xcen))) max (abs (f-fcen '))马克斯(abs (t-tcen)))gydF4y2Ba
差别=gydF4y2Ba1×3gydF4y2Ba10gydF4y2Ba-12年gydF4y2Ba× 0 0.2274 0.0002gydF4y2Ba
clf subplot(2,1,1) waterplot(xen, fen, ten) title(gydF4y2Ba“集中,定义”gydF4y2Ba) subplot(2,1,2) waterplot(场景,f,t)gydF4y2Ba“居中,谱图功能”gydF4y2Ba)gydF4y2Ba

图中包含2个轴对象。axis对象1的标题居中,定义包含一个类型为patch的对象。轴对象2标题居中,光谱图函数包含一个类型为patch的对象。gydF4y2Ba

片面的光谱图gydF4y2Ba

计算信号的单侧谱图。gydF4y2Ba

  • 使用与双面STFT相同的时间值。gydF4y2Ba

  • 对奇值gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba 时,单侧STFT由第一个组成gydF4y2Ba (gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba 两边STFT的行数。对于even-valuedgydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba 时,单侧STFT由第一个组成gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba /gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba 两边STFT的行数。gydF4y2Ba

  • 对奇值gydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba 时,频率区间在零频率处闭合,在奈奎斯特频率处开放。对于even-valuedgydF4y2Ba NgydF4y2Ba DFTgydF4y2Ba 时,频率区间两端闭合。gydF4y2Ba

比较输出并显示频谱图。对于实值信号,使用gydF4y2Ba“单向的”gydF4y2Ba参数是可选的。gydF4y2Ba

Tone = ttwo;gydF4y2Ba如果gydF4y2Ba~neven Xone = x2 (1:(Ndft+1)/2,:);gydF4y2Ba其他的gydF4y2BaXone = Xtwo(1:Ndft/2+1,:);gydF4y2Ba结束gydF4y2Bafone = 0:fs/Ndft:fs/2;[sone,f,t] =谱图(x,g,L,Ndft,fs);差别=[马克斯(max (abs (sone-Xone))) max (abs (f-fone '))马克斯(abs (t-tone)))gydF4y2Ba
差别=gydF4y2Ba1×3gydF4y2Ba10gydF4y2Ba-12年gydF4y2Ba× 0 0.1137 0.0002gydF4y2Ba
clf subplot(2,1,1) waterplot(Xone,fone,tone) title(gydF4y2Ba“片面的,定义”gydF4y2Ba) subplot(2,1,2) waterplot(sone,f,t) title(gydF4y2Ba“片面,谱图功能”gydF4y2Ba)gydF4y2Ba

图中包含2个轴对象。axis对象1的标题为sided,定义包含一个类型为patch的对象。轴对象2标题为片面的,谱图函数包含一个类型为patch的对象。gydF4y2Ba

函数gydF4y2Bawaterplot (s, t)gydF4y2Ba%瀑布图的频谱图gydF4y2Ba瀑布(f t abs (s)”。^ 2)组(gca, XDir =gydF4y2Ba“反向”gydF4y2Ba,View=[30 50]) xlabel(gydF4y2Ba“频率(赫兹)”gydF4y2Ba) ylabel (gydF4y2Ba“时间(s)”gydF4y2Ba)gydF4y2Ba结束gydF4y2Ba

计算分段PSDs和功率谱gydF4y2Ba

的gydF4y2Ba光谱图gydF4y2Ba函数有一个矩阵,其中包含功率谱密度(PSD)或每段的功率谱作为第四个输出参数。功率谱等于PSD乘以窗口的等效噪声带宽(ENBW)。gydF4y2Ba

生成一个由1 kHz采样1秒的对数啁啾组成的信号。啁啾的初始频率为400hz,测量结束时下降到10hz。gydF4y2Ba

Fs = 1000;Tt = 0:1/fs:1-1/fs;Y = chirp(tt,400,tt(end),10,gydF4y2Ba“对数”gydF4y2Ba);gydF4y2Ba

分段psd和采样率功率谱gydF4y2Ba

将信号划分为102个采样段,并对每个采样段进行Hann窗。指定12个相邻段之间的重叠样本和1024个DFT点。gydF4y2Ba

M = 102;g = hann(M);L = 12;Ndft = 1024;gydF4y2Ba

用默认的PSD频谱类型计算信号的频谱图。输出STFT和线段功率谱密度数组。gydF4y2Ba

[s,f,t,p] =谱图(y,g,L,Ndft,fs);gydF4y2Ba

使用指定为的频谱类型重复计算gydF4y2Ba“权力”gydF4y2Ba.输出STFT和段功率谱阵列。gydF4y2Ba

[r,~,~,q] =谱图(y,g,L,Ndft,fs,gydF4y2Ba“权力”gydF4y2Ba);gydF4y2Ba

验证两种情况下的频谱图是相同的。用频率的对数刻度绘制频谱图。gydF4y2Ba

max (max (abs(年代)。^ 2-abs (r)。^ 2))gydF4y2Ba
Ans = 0gydF4y2Ba
瀑布(f t abs (s)”。^ 2)组(gca, XScale =gydF4y2Ba“日志”gydF4y2Ba,gydF4y2Ba...gydF4y2BaXDir =gydF4y2Ba“反向”gydF4y2Ba、查看= 50 [30])gydF4y2Ba

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

验证功率谱等于功率谱密度乘以窗口的ENBW。gydF4y2Ba

max (max (abs (qp * enbw (g, fs))))gydF4y2Ba
Ans = 1.1102e-16gydF4y2Ba

验证分段功率谱矩阵与谱图成正比。比例因子是窗口元素之和的平方。gydF4y2Ba

max (max (abs(年代)。^ 2 q *总和(g) ^ 2))gydF4y2Ba
Ans = 3.4694e-18gydF4y2Ba

分段psd和归一化频率功率谱gydF4y2Ba

重复计算,但现在工作在标准化的频率。当您指定抽样率为时,结果是相同的gydF4y2Ba 2gydF4y2Ba πgydF4y2Ba .gydF4y2Ba

[~,~,~,pn] =谱图(y,g,L,Ndft);[~,~,~,qn] =谱图(y,g,L,Ndft,gydF4y2Ba“权力”gydF4y2Ba);max (max (abs (qn-pn * enbw (g, 2 *π))))gydF4y2Ba
Ans = 1.1102e-16gydF4y2Ba

另请参阅gydF4y2Ba

应用程序gydF4y2Ba

功能gydF4y2Ba

相关的话题gydF4y2Ba

外部网站gydF4y2Ba