示例:谱分析
使用
coherence、cspectrum、pspectrum 和
snr 函数可计算信号或信号对的相干、交叉谱、功率谱和信噪比。
对此取平均值过程的描述可在 Prentice-hall,Inc. 出版 Samuel Stearns 和 Ruth david 合著的 Signal Processing Algorithms (《信号处理算法》) 一书中找到。
功率谱 - 使用 DFT
对于仅少数数据点具有信号对应值的长时间序列,我们希望功率谱显示信号的频率,而不是噪声或零值。
1. 定义窗口宽度。
2. 定义两个可能的窗口:w1 和 w2,其中信号不为零。
3. 将窗口宽度设置为两个可选宽度中的一个。
4. 定义信号和采样频率。
6. 绘制信号图像。
7. 使用函数
dft 计算
x 的离散傅立叶变换。
8. 在频域中绘制所生成函数的图像。
◦ 对于纯正弦波信号,DFT 系数的模提供对其功率谱的良好估计。但在此情况下,信号的 DFT 为结构化数据与矩形窗口 (
sinc 函数) 变换间卷积的频谱。
◦ 设置 W= w2 (步骤 3) 可加宽窗口,使正弦波信号由 230–300 变为 0–499 (因子为 7.143x),并增大两个波峰的幅度,将其从 35 变为 250 (因子同样为 7.143x)。
◦ 出现波峰时的频率保持不变。
功率谱 - 使用 pspectrum
函数 pspectrum 将原始时间序列分成多个重叠的时段。对每个时段进行 DFT 变换,然后对变换后的模的系数取平均值。如果时段的长度与要在信号中分析的现象的标度相同,则 pspectrum 函数可返回一个较好的近似值,该近似值为原始时间序列所需部分分量的模。
通常,信号的长度至少应为 n + 1。
1. 定义信号的长度、重叠部分和窗口类型 (尖顶矩形)。
2. 使用函数 pspectrum 计算 x 的功率谱,计算方法为:将 x 分成 n1 个重叠段 (重叠部分为 r) 并使用尖顶矩形窗设置各段的窗口。
4. 使用正则化频率轴绘制谱图 (采样频率为 1)。
5. 计算平均谱功率。
该值约等于信号 x 的均方值。
带白噪声的 pspectrum
计算包含白噪声的信号的功率谱。生成两个此类信号,因为交叉谱计算需要第二个信号。使用汉明窗渐缩数据块。
1. 定义信号宽度。
2. 使用函数
sin 和
rnd 定义两个同频为
fc 的信号。函数
rnd 返回 0 到指定数字之间均匀分布的随机数字作为矢量,从而确保信号互不相同。
3. 绘制这两个信号的前 100 个样本。
4. 使用函数 pspectrum 获得 y1 的功率谱,计算方法为:将其分成 40 个重叠段 (重叠部分为 0.5) 并使用汉明窗设置各段的窗口。
6. 绘制谱图,以分贝为单位。使用标记来标记同频和最大分贝值。
绘图表明所有信号功率均出现在同频 fc 和 1-fc 处。
7. 计算噪声功率。
8. 计算以 dB 为单位的噪声功率增益。
9. 将上述两个频率样本除以谱长度,可以得出正弦分量的平均功率 0.5,通过这种方法来计算高度。
10. 比较理论与实际高度,以分贝为单位。
cspectrum 函数
通常,交叉谱图用于检验两个信号的相似之处,例如,将已知的语音波形 (比如元音 "a") 与未知的语音波形 (比如单词 "apple") 进行比较可查看未知波形中是否包含已知波形。就像时间序列的功率谱与其自相关类似一样,两个时间序列的交叉谱图也与其互相关类似。对于平稳随机序列,谱函数返回的值与相关函数返回的值相同。
1. 将函数 cspectrum 应用于信号 y1 和 y2 (使用 40 个重叠部分为 0.5 的重叠段并使用尖顶矩形窗设置各段的窗口)。
2. 绘制谱图,以分贝为单位。
3. 绘制交叉谱图,请记住,因为它为复值形式,因此应对模应用 log 函数。
交叉谱图 y1 和 y2 在同频 fc 和 1- fc 处显示波峰。
coherence 和 snr 函数
函数 coherence 用于测量一个信号与另一个信号的线性关系,等于两个信号的交叉谱图除以两者的功率谱所得模的平方,其取值范围介于零和一之间。如果 coherence 函数的值为 1,则表示两信号在该频带中均具有强无噪分量,如果其值为 0,则表示该频带中大部分是噪声。
信噪比函数 snr 等于 coherence 函数除以一与 coherence 函数的差,当两个信号的任意分量波段中具有强分量时可获得最大值,与信号强度和传感器或背景噪声强度的比值成比例。
1. 将函数 coherence 应用于信号 y1 和 y2 (使用 40 个重叠部分为 0.5 的重叠段并使用汉明窗设置各段的窗口)。
2. 绘制 coherence 函数的图像。使用标记来标记同频和最大值。
3. 将函数 snr 应用于信号 y1 和 y2 (使用 40 个重叠部分为 0.5 的重叠段并使用汉明窗设置各段的窗口)。
4. 绘制信噪比函数的图象。使用标记来标记同频和最大值。
这两个函数 (coherence 和 snr) 的最大值均出现在被添加了噪声 (由每侧的两个短柱表示) 的两个信号的单频分量处。