前言:
{
现在手头有个处理音频的练习,由于之前的在学校学的傅立叶变换只是为了解题,而且基本忘光。这次不会涉及太多公式,主要是通过实例简单了解下离散傅里叶变换的应用。
离散傅立叶变换(DFT)是傅立叶变换的离散形式,因为现实中的数据大多都是离散的,所以我也主要记录离散傅立叶变换。
}
正文:
{
先说应用。
先看下面的代码:
#代码1
import numpy as np
input = [0, np.sqrt(2)/2, 1, np.sqrt(2)/2, 0, np.sqrt(2)/-2, -1, np.sqrt(2)/-2]
output = np.fft.rfft(input)
frequency = np.abs(output)
print(frequency)
(上面这段代码中rfft()是实数输入的快速傅立叶变换(FFT)的函数,快速傅立叶变换是傅立叶变换的一种快速计算方法,公式我就不在这写了(其实我也不太懂),想看的话可以去看[1]或搜索一下。numpy中也有普通的ttf函数,当输入为实数时,ttf()的返回值貌似只是多了一个原始返回值的复共轭[2]。)
代码1中的input是一个近似的正弦函数采样序列。代码1的输出frequency是input的频谱,具体如下: