快速傅里叶变换--用于变调
快速傅里叶变换–用于变调
曹逸君 张思雨
PS:用于交线性代数报告,线代的应用。
对傅里叶变换的理解
看了视频课、各种博文。对傅里叶变换(FFT)理解如下:
傅里叶变换有各种变体,
1. 非周期性连续信号 傅立叶变换(Fourier Transform)
2. 周期性连续信号 傅立叶级数(Fourier Series)
3. 非周期性离散信号 离散时域傅立叶变换(Discrete Time Fourier Transform)
4. 周期性离散信号 离散傅立叶变换(Discrete Fourier Transform)
实际信号处理中,都是用的离散傅立叶变换(DFT),因为计算机能处理得只能是离散得值。
而快速傅里叶变换(FFT)则是将傅里叶变换的时间复杂度降至
傅里叶变换总的来说是将函数从基于时域和频域得相互转换得变换。
或者说成将任意(连续周期,数学上得要求,实际操作上可以对任意数据进行。)函数分解为多个正余弦函数。
傅里叶矩阵与傅里叶变换
复矩阵
复向量的模 复向量
z∈Cn 其模|z|=zHz=z¯Tz
zH表示对向量z的转置并共轭,H代表埃尔米特Hermite复向量的内积:
xHy 埃尔米特矩阵:
AH=A 当A 是实矩阵时,即为对称矩阵。对称矩阵和埃尔米特矩阵的特征值是实数,特征向量相互垂直。
复矩阵正交称为酉矩阵(unitary),有
QHQ=I 即Q−1=QH
傅里叶矩阵
将原始数据向量左乘傅里叶矩阵就完成了傅里叶变换。
左乘傅里叶矩阵的逆矩阵
快速傅里叶变换(FFT)
由于傅里叶矩阵各列正交。又呈实矩阵那样得对称性。故可以将其分解。
如上分解可以迭代下去到一阶傅里叶矩阵。而计算量也由
快速傅里叶变换用于变调
过程如下:将音频采样(振幅对于时间得函数上得点)通过快速傅里叶变换转为不同频率声音的振幅分布。
然后就可以方便的对不同频率进行操作了。比如这里我们将整个频率调高/调低(变得像女声/男声)。
然后再通过逆傅里叶变换转换回振幅对于时间的分布数据。
图中蓝色为原始音频通过傅里叶变换得到的频谱。[横轴为频率,纵轴为振幅。]
绿色的是整体提升频率后得频谱。
绿色整体被拉长,表明频率整体升高。同时振幅整体缩小。[衰减2Db以降噪。]
上图蓝色为原始音频的波形图,[横轴为时间,纵轴为振幅。]
可以看到时间长度未变。频率却升高了。[波峰更加密集]
以上两图是1.25秒长度得小块数据,挑了两个比较清楚得。
源码和文件将和文档一起打包。
在Github上
全部文档和源码遵守CC协议。
快速傅里叶变换–用于变调 由 曹逸君,张思雨 创作,采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
引用:
Numpy fft 手册
快速傅里叶变换将歌曲变调
介绍FFT的博文
MIT线性代数公开课,复数矩阵和快速傅里叶变换
线性代数导论27——复数矩阵和快速傅里叶变换,笔记
Written with StackEdit.