解释1-五氯苯酚
首先,我们获取输入声音信号并将其转换为离散傅立叶变换(DFT)的声谱图,然后我们将该声谱图转换为音高类别轮廓(PCP)。然后根据准备好的和弦模板,用PCP进行模式匹配,最终得到根音和最终和弦类型。
该算法首先将输入声音信号流转换成DFT图,假设f s为采样频率,x(n)为n个采样点中的第n个输入声音信号段。那么DFT谱的公式如下,其中k = 0,1,2...N-1,而我们的X(0),X(1)...X(N/2-1)表示我们的整个谱。
X(k)表示f s * (k/N)频率波的正弦系数。我们的问题是,它所能表达的频率与采样点数有关。这在理论上是合理的。采样点越丰富(越详细),我们能描述的频率就越详细。
当我们看到傅里叶变换的原理时,我们会想到的方法可能是构造正弦和余弦函数的线性和,设计很多参数,最后通过某种手段求出参数。
其实这个思路本质上没什么问题,我们的目标就是把函数分解成正余弦函数的组合。有科学家发现,所有的周期函数都可以由正弦和余弦函数的加减构成。
那么接下来的问题就是,如果我们的原函数的周期是t,如何保证组合函数的周期也是t?
如果sin(x)的周期是2π,那么sin(2x)的周期也是2π(虽然最小周期是π)。更一般地说,如果f(x)的周期为t,那么下式的周期也为t,因此,这些函数的加减可以保证组成的函数有一定的周期t。
接下来对三角函数的幅度做一些调整,然后加减三角函数。
最后,我们构造的近似和是这样的。这个公式表达了无限频率的正弦和余弦波的线性组合。
假设我们的函数可以分解如下
如果去复平面,应该是欧拉公式构造的公式的虚部。
很明显,根据我刚才说的,e it+e i2t表示两个向量的和。
更一般的,我们可以写出函数向量的表达式。
函数向量的点积是这样定义的。
根据函数点积的定义,我们可以自己计算下面的公式。
那么如何得到对应函数向量的坐标呢?
假设w = a u+b v (w,u,v都是向量,其中u和v是正交的)。
那么可以通过下面的公式获得底u的坐标a:
向量函数sin(x)的坐标应该是
现在,让我们回顾一下之前的假设。
我们可以这样改写(所有不同频率的正余弦向量函数在同一周期内必须正交)。
我们可以得到f(x)的另一种形式
在…之中
我们可以得到离散形式的f(x ),它表示P种不同频率的波叠加的函数,其中ω是所有频率波的单位频率,决定了波叠加的效果,ω = 2π/n。
当n=1,2,3时...p,让
因为单位频率是2π/N,所以有这样一个特殊条件:
其中C n表示n=0时的DC分量,所有系数都可以在n=1的范围内表示...p(即1...(N-1)/2),N上的系数= p+1...n只是对称的。
所以,一般来说,我们需要找到前半部分的系数。
现在我们来回顾一下我们的公式,相信很容易理解。
这与论文中的描述一致,我们只需要求X(k)的值(k = 0...N/2-1)。这里X(k)和C n的等价性。
其实C n就是对应频率的波在复平面上的点坐标,我们可以用这个来计算对应频率的波的振幅。
DFT后对应谱的某一点C n或X(k)可以用复数a+bi来表示。那么这个复数的模为Ak=√(a * a+b * b),那么振幅a为
对于n=0的信号,其幅度为0,通常作为一个整体偏移存在,称为DC分量,其幅度为A1/n
最后,我们注意到,由于DFT结果的对称性,我们通常只使用结果的前半部分,即小于一半采样频率的结果。(根据奈奎斯特理论,可恢复信号量的频率必须小于采样频率的一半。)
对于X(k),我们可以继续推导出PCP,它的12维向量代表了钢琴八度音程内的12个半调级。
设p = 0,1,2...11,那么我们定义公式(1) PCP(p)如下:
本文选取了27组和弦,利用上述过程通过手动调整得到模板PCP。
本文给出了两种评价匹配性能的方法:
1,pcp平滑
2.和弦过渡的感知
3.五氯酚预处理
4.消除M(l)中的无关区域
5.使用DFT窗口
6.静音检测
7.噪声检测
引用
/问题/23234701/答案/26017000
/questions/13722/pitch class-profiling
/questions/36752485/python-code-for-pitch class-profiling
/70549/