python编程实现分帧数据的fft变换
程序员文章站
2022-06-04 10:09:47
...
主要功能
续我上一个博客python编程实现语音数据分帧及分帧还原得到的语音分帧数据文件,继续对数据进行fft变换。
说明:本程序对输入数据为1列时能使用自己编写的fft程序进行fft,但运行效率较低,输入较大数据量不容易运行出来,同时也能调fft包实现,且效率较高。
对输入数据数据列数不为1列时只能调fft包进行fft(即自己编写的fft程序对输入数据为多列时不适用)
一 分帧数据的fft变换
程序
主要对分帧后的语音数据进行fft变换,采用调用fft包。
#语音数据进行fft(调包,只能处理大于1列数据的数据文件)
import numpy as np
import getopt
import sys
import wave
'''
说明:本程序对输入数据为1列时能使用自己编写的fft程序进行fft,但运行效率较低,输入较大数据量不容易运行出来,同时也能调fft包实现,且效率较高
对输入数据数据列数不为1列时只能调fft包进行fft(即自己编写的fft程序对输入数据为多列时不适用)
调包和不调包主要修改程序中的这两个语句:
#fft_data = np.fft.fft(wave_data)
fft_data = fft1(wave_data) #自己编写的dft函数,但只能处理一列的数据文件,且运行效率很低
上面一个语句为调fft包,下面一个语句为自己编写的fft程序
'''
def fft1(wave_data1):
fft_data=[]
k1 = np.arange(0, len(wave_data1), 1) #采样点数
x=len(wave_data1)
print('数据个数=',x)
N=len(k1)
#print('数据个数',N)
for j in k1:
fft_data1=0
for i in range(0, len(wave_data1)):
fft_data1=fft_data1+wave_data1[i]*complex(np.cos(2*np.pi*i*j/N),-np.sin(2*np.pi*i*j/N)) #f=j*fs/N ; t=i/fs
fft_data.append(fft_data1)
fft_data = np.array(fft_data)
return fft_data
def main(argv):
try:
opts, args = getopt.getopt(argv[1:], "-i:-o:h", ["input=", "output=","help"])
except getopt.GetoptError:
print('输入格式错误,输入为语音数据文件,输出为进行fft变换之后的数据文件')
print('命令行运行方式:python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt')
sys.exit()
# 处理 返回值options是以元组为元素的列表。
for opt, arg in opts:
if opt in ("-h", "--help"):
print("对音频数据进行FFT变换")
print('命令行运行方式:')
print('Englishframe1.txt为分帧后的语音数据')
print('对分帧数据运行:python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt')
print('test.txt为截取的English.txt的前256行数据')
print('调包实现:python wavtxtfft.py -i test.txt -o fft_test1.txt')
print('自己编写的fft程序实现:python wavtxtfft.py -i test.txt -o fft_test2.txt')
sys.exit()
elif opt in ("-i", "--input"):
input = arg
elif opt in ("-o", "--output"):
output = arg
wave_data = np.loadtxt(input, dtype=np.short) #读取文件数据
print(wave_data)
#fft_data = np.fft.fft(wave_data)
fft_data = fft1(wave_data) #自己编写的dft函数,但只能处理一列的数据文件,且运行效率很低
print(fft_data)
length = len(fft_data.T)#得到数据文件列数,(前提是数据不止一列,如果数据只有一列,则得到的是数据的个数)
#print('文件列数=',length)
fft_len = len(fft_data)#数据文件行数
print('文件行数=',fft_len)
file = open(output, 'w+')
m = (fft_data.T).ndim # 判断数据是一维还是多维(对数据取转置,再判断维度,即判断输入数据列数为1列还是多列,1列和多列处理方法不一样)
if m == 1: # 如果数据为1列
print('文件列数=1')
for i in range(fft_len):
s = str(fft_data[i]).replace('[', ").replace('[',")
s = s.replace('(', '').replace(')', '') + ' ' # 去除小括号,每个数据加空格
s = s.replace("'", ").replace(',',") # 去除单引号,逗号
file.write(s) # 数据存文件
file.write('\n') # 每行读取完以后换行
file.close()
else:
print('文件列数=', length)
for i in range(fft_len):
for j in range(length):
#for j in range(4):
s = str(fft_data[i,j]).replace('[', '').replace(']','')
#s = str(fft_data[i, j]).replace('[', ").replace(']',")
s = s.replace('(', '').replace(')', '') + ' ' # 去除小括号,每个数据加空格
s = s.replace("'", '').replace(',','')
file.write(s) #数据存文件
file.write('\n') # 每行读取完以后换行
file.close()
if __name__ == "__main__":
main(sys.argv) #调用函数
#English.txt为1列的原始语音数据
#python wavtxtfft.py -i English.txt -o fft_English.txt
#Englishframe1.txt为分帧后的语音数据
#python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt
#test.txt为截取的English.txt的前256行数据
#python wavtxtfft.py -i test.txt -o fft_test1.txt
#python wavtxtfft.py -i test.txt -o fft_test2.txt
查看帮助文档
python wavtxtfft.py -h
结果:
对音频数据进行FFT变换
命令行运行方式:
Englishframe1.txt为分帧后的语音数据
对分帧数据运行:python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt
test.txt为截取的English.txt的前256行数据
调包实现:python wavtxtfft.py -i test.txt -o fft_test1.txt
自己编写的fft程序实现:python wavtxtfft.py -i test.txt -o fft_test2.txt
运行
python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt
#结果
[[ 0 -24 -6 -18]
[ -6 -18 -14 0]
[-14 0 -24 -4]
...
[ -8 -8 6 10]
[ 6 10 32 28]
[ 32 28 34 0]]
[[-48. +0.j 6. +6.j 36. +0.j 6. -6.j]
[-38. +0.j 8.+18.j -2. +0.j 8.-18.j]
[-42. +0.j 10. -4.j -34. +0.j 10. +4.j]
...
[ 0. +0.j -14.+18.j -4. +0.j -14.-18.j]
[ 76. +0.j -26.+18.j 0. +0.j -26.-18.j]
[ 94. +0.j -2.-28.j 38. +0.j -2.+28.j]]
文件列数= 4
文件行数= 265651
保存文件结果:
分帧数据fft变换后保持原数据格式。
二 截短语音数据的fft变换(调包和不调包)
程序
输入数据为一行一个数据,分别进行调包的fft和自己编写的fft程序
#语音数据进行fft(调包,只能处理大于1列数据的数据文件)
import numpy as np
import getopt
import sys
import wave
'''
说明:本程序对输入数据为1列时能使用自己编写的fft程序进行fft,但运行效率较低,输入较大数据量不容易运行出来,同时也能调fft包实现,且效率较高
对输入数据数据列数不为1列时只能调fft包进行fft(即自己编写的fft程序对输入数据为多列时不适用)
调包和不调包主要修改程序中的这两个语句:
#fft_data = np.fft.fft(wave_data)
fft_data = fft1(wave_data) #自己编写的dft函数,但只能处理一列的数据文件,且运行效率很低
上面一个语句为调fft包,下面一个语句为自己编写的fft程序
'''
def fft1(wave_data1):
fft_data=[]
k1 = np.arange(0, len(wave_data1), 1) #采样点数
x=len(wave_data1)
print('数据个数=',x)
N=len(k1)
#print('数据个数',N)
for j in k1:
fft_data1=0
for i in range(0, len(wave_data1)):
fft_data1=fft_data1+wave_data1[i]*complex(np.cos(2*np.pi*i*j/N),-np.sin(2*np.pi*i*j/N)) #f=j*fs/N ; t=i/fs
fft_data.append(fft_data1)
fft_data = np.array(fft_data)
return fft_data
def main(argv):
try:
opts, args = getopt.getopt(argv[1:], "-i:-o:h", ["input=", "output=","help"])
except getopt.GetoptError:
print('输入格式错误,输入为语音数据文件,输出为进行fft变换之后的数据文件')
print('命令行运行方式:python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt')
sys.exit()
# 处理 返回值options是以元组为元素的列表。
for opt, arg in opts:
if opt in ("-h", "--help"):
print("对音频数据进行FFT变换")
print('命令行运行方式:')
print('Englishframe1.txt为分帧后的语音数据')
print('对分帧数据运行:python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt')
print('test.txt为截取的English.txt的前256行数据')
print('调包实现:python wavtxtfft.py -i test.txt -o fft_test1.txt')
print('自己编写的fft程序实现:python wavtxtfft.py -i test.txt -o fft_test2.txt')
sys.exit()
elif opt in ("-i", "--input"):
input = arg
elif opt in ("-o", "--output"):
output = arg
wave_data = np.loadtxt(input, dtype=np.short) #读取文件数据
#wave_data = np.loadtxt(input, dtype=np.float32)
print(wave_data)
# data = wave_data / np.max(wave_data) # 归一化
# fft_signal = np.fft.fft(data)
#fft_data = np.fft.fft(wave_data)
fft_data = fft1(wave_data) #自己编写的dft函数,但只能处理一列的数据文件,且运行效率很低
print(fft_data)
length = len(fft_data.T)#得到数据文件列数,(前提是数据不止一列,如果数据只有一列,则得到的是数据的个数)
#print('文件列数=',length)
fft_len = len(fft_data)#数据文件行数
print('文件行数=',fft_len)
file = open(output, 'w+')
m = (fft_data.T).ndim # 判断数据是一维还是多维(对数据取转置,再判断维度,即判断输入数据列数为1列还是多列,1列和多列处理方法不一样)
if m == 1: # 如果数据为1列
print('文件列数=1')
for i in range(fft_len):
s = str(fft_data[i]).replace('[', ").replace('[',")
s = s.replace('(', '').replace(')', '') + ' ' # 去除小括号,每个数据加空格
s = s.replace("'", ").replace(',',") # 去除单引号,逗号
file.write(s) # 数据存文件
file.write('\n') # 每行读取完以后换行
file.close()
else:
print('文件列数=', length)
for i in range(fft_len):
for j in range(length):
#for j in range(4):
s = str(fft_data[i,j]).replace('[', '').replace(']','')
#s = str(fft_data[i, j]).replace('[', ").replace(']',")
s = s.replace('(', '').replace(')', '') + ' ' # 去除小括号,每个数据加空格
s = s.replace("'", '').replace(',','')
file.write(s) #数据存文件
file.write('\n') # 每行读取完以后换行
file.close()
if __name__ == "__main__":
# sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
main(sys.argv) #调用函数
#English.txt为1列的原始语音数据
#python wavtxtfft.py -i English.txt -o fft_English.txt
#Englishframe1.txt为分帧后的语音数据
#python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt
#test.txt为截取的English.txt的前256行数据
#python wavtxtfft.py -i test.txt -o fft_test1.txt
#python wavtxtfft.py -i test.txt -o fft_test2.txt
查看帮助文档
python wavtxtfft1.py -h
结果:
对音频数据进行FFT变换
命令行运行方式:
Englishframe1.txt为分帧后的语音数据
对分帧数据运行:python wavtxtfft.py -i Englishframe1.txt -o fft_Englishframe1.txt
test.txt为截取的English.txt的前256行数据
调包实现:python wavtxtfft.py -i test.txt -o fft_test1.txt
自己编写的fft程序实现:python wavtxtfft.py -i test.txt -o fft_test2.txt
运行
1 调fft包:
python wavtxtfft1.py -i test.txt -o fft_test1.txt
结果:
[ 0 -24 -6 -18 -14 0 -24 -4 -26 -24 -40 -24 -16 -26 -18 -20 -16 -24
-24 -14 6 -10 -16 -8 0 -4 2 -16 -8 -20 -20 -16 -34 -16 -28 -16
-18 -34 -20 -20 -22 -16 -10 -12 -12 22 -6 4 -20 -8 6 -8 -8 -18
-16 -8 -4 -6 0 -6 -4 6 10 -10 4 -16 -8 -10 -16 4 -8 -16
-34 -38 -20 -38 -16 -24 -26 -10 -12 -12 0 10 -10 0 -2 0 0 -2
-10 2 -16 -16 -12 -16 -38 -24 -24 -24 -12 -10 4 -26 -22 -16 0 -6
12 -12 8 -14 -18 -16 -8 -8 -30 -18 -26 -2 -12 0 -12 2 6 14
8 -2 10 -8 -16 -22 -16 0 -8 8 -8 -10 -10 -2 6 -2 -6 14
8 0 0 -8 16 8 20 6 6 0 -6 -20 -12 -8 -14 14 4 -6
-24 -18 -6 0 12 -4 0 0 14 6 2 10 8 -2 4 -8 8 -2
0 14 0 8 -2 0 20 16 8 14 18 14 4 -2 0 -6 -2 -8
6 20 8 4 -8 -8 20 -8 -6 14 22 22 14 4 6 36 12 18
16 14 30 -16 -4 8 22 18 -6 12 16 24 6 4 -10 -24 -8 28
-8 -14 10 -8 0 -2 -14 -4 4 14 4 8 6 4 14 -16 18 4
4 0 22 -8]
[-1.12000000e+03 +0.j 3.26317201e+01+1289.67006131j
-3.14114972e+02 +324.15884006j -2.88559096e+02 +385.34662575j
1.37776670e+02 +111.08207045j 1.09852148e+02 +104.66658682j
1.38321927e+02 -160.74669664j 3.35866136e+01 +237.52599887j
-1.03422079e+02 +678.02562007j 2.23567847e+02 +197.52937735j
-2.50363799e+01 +107.3779786j -5.73485295e+00 +141.88381605j
6.49426995e+02 +121.47975419j -3.58887903e+02 -339.31342273j
-1.64240578e+02 +35.25256554j -9.40938372e+00 -101.31205246j
-2.11377617e+01 +126.94885254j 5.61393579e+01 -158.06722847j
5.06534027e+01 +93.14639225j 6.44618573e+01 -4.65729124j
-2.05496325e+02 +194.56543631j -4.88329246e+01 -77.6522581j
6.08292462e+01 +23.95887762j 1.01689748e+02 -220.02928139j
-3.71665454e+01 +43.8355504j -7.29434341e+01 +106.71790794j
7.25648891e+01 -67.77968779j 1.63928914e+01 +192.91602427j
-1.39834630e+02 +327.00849715j -9.53096319e+01 +9.50717928j
-1.52804041e+02 +103.08754253j -2.69092104e+00 -288.60230013j
-6.92720779e+01 +267.20310217j -9.05944568e+01 +45.90490713j
6.85787619e+01 -14.53603417j -1.38471579e+02 +122.29678766j
1.15731179e+02 -41.14382907j 1.09243119e+02 +91.06248245j
8.02673356e+01 +133.46652612j -1.28071882e+02 -26.54391661j
1.47268299e+02 +222.57012231j 8.67452834e+00 -188.65662632j
-9.98755716e+01 -132.29695462j -7.99752416e-02 -30.95954007j
5.37962767e+01 -21.07907678j 1.98852061e+02 +46.86023676j
-8.92550497e+00 +95.6694227j -1.27283964e+02 +16.8150631j
-2.57714079e+01 +92.16488999j -2.04348754e+02 +229.0303401j
-2.59659178e+01 -44.9122868j 3.41526867e+01 +25.39941225j
-4.80143489e+01 -338.66925463j 1.05804968e+02 -129.48944245j
1.00849701e+02 -42.22585849j 8.33511926e+01 +229.67144457j
-6.61357215e+01 +35.88739446j -2.38819980e+02 +33.13099703j
3.83745070e+00 -91.6122539j 1.10790869e+02 +23.90575241j
1.72514635e+01 +290.70604859j -1.30808298e+02 +107.63936458j
5.83727293e+01 +137.02644056j -4.97487809e+01 -62.03846125j
-9.80000000e+01 -10.j 4.93488614e+01 +16.46531581j
1.30012602e+02 -103.10191317j 4.23136511e+01 +68.72684186j
8.42721381e+01 -104.69640657j -1.12023272e+02 +44.23815107j
-1.01577939e+02 +86.57065125j -1.66842805e+02 -3.39553883j
-1.43328715e+02 -68.96242543j -8.01590342e+01 -13.42520001j
4.51450310e+01 -178.66156381j -4.18788064e+01 +1.4930413j
-4.75042589e+01 -88.04195587j 4.11984786e+01 -61.04705864j
5.46231949e+01 +79.62887113j -3.01856256e+00 -11.99678606j
-1.54230061e+00 +87.42982525j -7.01860973e+01 -38.91542255j
-1.93295002e+02 -71.16097358j -1.22250090e+02 +59.39664243j
2.20480913e+00 -83.22075219j -5.26233496e+01 -41.90820396j
-5.65392700e+01 +8.75424358j 9.46934465e+01 -103.1632863j
1.54401832e+02 -194.31748217j 6.74052284e+01 +63.61325522j
1.15176861e+02 +148.48734762j -5.80638016e+01 +72.24585626j
6.84024955e+01 +31.36929288j 1.53540652e+02 -78.33190479j
-8.44635440e+01 -89.93794006j 7.87888516e+00 +52.95896683j
-9.47279221e+01 +171.20310217j -6.29872030e+01 -14.60111885j
3.99972538e+01 -86.50392352j 5.72507965e+01 +9.05829178j
2.01647142e+02 +164.04471876j 1.38087139e+01 -42.31864912j
1.65203714e+02 +95.83996265j 1.64227268e+01 +181.92064646j
-3.86314367e+01 +62.09513219j -1.25511682e+02 -66.1112022j
-8.41008059e+01 +86.21346721j 7.38986391e+01 +190.42542855j
2.99869078e+02 -36.61017952j 3.84199597e+01 +53.7384078j
-9.77614425e+01 -74.66531874j -4.98889595e+01 -91.09087479j
1.64514702e+01 -173.78621219j 2.51033425e+01 -64.81756136j
2.63685217e+02 -5.6394346j 1.28308700e+01 -73.65342137j
2.24050818e+02 -95.10351096j -1.70965039e+02 -35.9969963j
1.34022441e+02 -96.67427208j 7.37914246e+01 -171.14397181j
7.01436631e+00 -31.67701356j 1.15695912e+02 -244.79920298j
-1.32422541e+02 -69.4123163j 1.28572348e+02 +53.88308126j
5.84204981e+01 -17.97390857j 1.28868412e+02 +2.13368659j
2.29817507e+01 +6.76166581j 3.67605640e+01 -30.82624092j
7.60000000e+01 +0.j 3.67605640e+01 +30.82624092j
2.29817507e+01 -6.76166581j 1.28868412e+02 -2.13368659j
5.84204981e+01 +17.97390857j 1.28572348e+02 -53.88308126j
-1.32422541e+02 +69.4123163j 1.15695912e+02 +244.79920298j
7.01436631e+00 +31.67701356j 7.37914246e+01 +171.14397181j
1.34022441e+02 +96.67427208j -1.70965039e+02 +35.9969963j
2.24050818e+02 +95.10351096j 1.28308700e+01 +73.65342137j
2.63685217e+02 +5.6394346j 2.51033425e+01 +64.81756136j
1.64514702e+01 +173.78621219j -4.98889595e+01 +91.09087479j
-9.77614425e+01 +74.66531874j 3.84199597e+01 -53.7384078j
2.99869078e+02 +36.61017952j 7.38986391e+01 -190.42542855j
-8.41008059e+01 -86.21346721j -1.25511682e+02 +66.1112022j
-3.86314367e+01 -62.09513219j 1.64227268e+01 -181.92064646j
1.65203714e+02 -95.83996265j 1.38087139e+01 +42.31864912j
2.01647142e+02 -164.04471876j 5.72507965e+01 -9.05829178j
3.99972538e+01 +86.50392352j -6.29872030e+01 +14.60111885j
-9.47279221e+01 -171.20310217j 7.87888516e+00 -52.95896683j
-8.44635440e+01 +89.93794006j 1.53540652e+02 +78.33190479j
6.84024955e+01 -31.36929288j -5.80638016e+01 -72.24585626j
1.15176861e+02 -148.48734762j 6.74052284e+01 -63.61325522j
1.54401832e+02 +194.31748217j 9.46934465e+01 +103.1632863j
-5.65392700e+01 -8.75424358j -5.26233496e+01 +41.90820396j
2.20480913e+00 +83.22075219j -1.22250090e+02 -59.39664243j
-1.93295002e+02 +71.16097358j -7.01860973e+01 +38.91542255j
-1.54230061e+00 -87.42982525j -3.01856256e+00 +11.99678606j
5.46231949e+01 -79.62887113j 4.11984786e+01 +61.04705864j
-4.75042589e+01 +88.04195587j -4.18788064e+01 -1.4930413j
4.51450310e+01 +178.66156381j -8.01590342e+01 +13.42520001j
-1.43328715e+02 +68.96242543j -1.66842805e+02 +3.39553883j
-1.01577939e+02 -86.57065125j -1.12023272e+02 -44.23815107j
8.42721381e+01 +104.69640657j 4.23136511e+01 -68.72684186j
1.30012602e+02 +103.10191317j 4.93488614e+01 -16.46531581j
-9.80000000e+01 +10.j -4.97487809e+01 +62.03846125j
5.83727293e+01 -137.02644056j -1.30808298e+02 -107.63936458j
1.72514635e+01 -290.70604859j 1.10790869e+02 -23.90575241j
3.83745070e+00 +91.6122539j -2.38819980e+02 -33.13099703j
-6.61357215e+01 -35.88739446j 8.33511926e+01 -229.67144457j
1.00849701e+02 +42.22585849j 1.05804968e+02 +129.48944245j
-4.80143489e+01 +338.66925463j 3.41526867e+01 -25.39941225j
-2.59659178e+01 +44.9122868j -2.04348754e+02 -229.0303401j
-2.57714079e+01 -92.16488999j -1.27283964e+02 -16.8150631j
-8.92550497e+00 -95.6694227j 1.98852061e+02 -46.86023676j
5.37962767e+01 +21.07907678j -7.99752416e-02 +30.95954007j
-9.98755716e+01 +132.29695462j 8.67452834e+00 +188.65662632j
1.47268299e+02 -222.57012231j -1.28071882e+02 +26.54391661j
8.02673356e+01 -133.46652612j 1.09243119e+02 -91.06248245j
1.15731179e+02 +41.14382907j -1.38471579e+02 -122.29678766j
6.85787619e+01 +14.53603417j -9.05944568e+01 -45.90490713j
-6.92720779e+01 -267.20310217j -2.69092104e+00 +288.60230013j
-1.52804041e+02 -103.08754253j -9.53096319e+01 -9.50717928j
-1.39834630e+02 -327.00849715j 1.63928914e+01 -192.91602427j
7.25648891e+01 +67.77968779j -7.29434341e+01 -106.71790794j
-3.71665454e+01 -43.8355504j 1.01689748e+02 +220.02928139j
6.08292462e+01 -23.95887762j -4.88329246e+01 +77.6522581j
-2.05496325e+02 -194.56543631j 6.44618573e+01 +4.65729124j
5.06534027e+01 -93.14639225j 5.61393579e+01 +158.06722847j
-2.11377617e+01 -126.94885254j -9.40938372e+00 +101.31205246j
-1.64240578e+02 -35.25256554j -3.58887903e+02 +339.31342273j
6.49426995e+02 -121.47975419j -5.73485295e+00 -141.88381605j
-2.50363799e+01 -107.3779786j 2.23567847e+02 -197.52937735j
-1.03422079e+02 -678.02562007j 3.35866136e+01 -237.52599887j
1.38321927e+02 +160.74669664j 1.09852148e+02 -104.66658682j
1.37776670e+02 -111.08207045j -2.88559096e+02 -385.34662575j
-3.14114972e+02 -324.15884006j 3.26317201e+01-1289.67006131j]
文件行数= 256
文件列数=1
保存文件结果:
2 自己编写的fft程序:
python wavtxtfft1.py -i test.txt -o fft_test2.txt
结果:
[ 0 -24 -6 -18 -14 0 -24 -4 -26 -24 -40 -24 -16 -26 -18 -20 -16 -24
-24 -14 6 -10 -16 -8 0 -4 2 -16 -8 -20 -20 -16 -34 -16 -28 -16
-18 -34 -20 -20 -22 -16 -10 -12 -12 22 -6 4 -20 -8 6 -8 -8 -18
-16 -8 -4 -6 0 -6 -4 6 10 -10 4 -16 -8 -10 -16 4 -8 -16
-34 -38 -20 -38 -16 -24 -26 -10 -12 -12 0 10 -10 0 -2 0 0 -2
-10 2 -16 -16 -12 -16 -38 -24 -24 -24 -12 -10 4 -26 -22 -16 0 -6
12 -12 8 -14 -18 -16 -8 -8 -30 -18 -26 -2 -12 0 -12 2 6 14
8 -2 10 -8 -16 -22 -16 0 -8 8 -8 -10 -10 -2 6 -2 -6 14
8 0 0 -8 16 8 20 6 6 0 -6 -20 -12 -8 -14 14 4 -6
-24 -18 -6 0 12 -4 0 0 14 6 2 10 8 -2 4 -8 8 -2
0 14 0 8 -2 0 20 16 8 14 18 14 4 -2 0 -6 -2 -8
6 20 8 4 -8 -8 20 -8 -6 14 22 22 14 4 6 36 12 18
16 14 30 -16 -4 8 22 18 -6 12 16 24 6 4 -10 -24 -8 28
-8 -14 10 -8 0 -2 -14 -4 4 14 4 8 6 4 14 -16 18 4
4 0 22 -8]
数据个数= 256
[-1.12000000e+03+0.00000000e+00j 3.26317201e+01+1.28967006e+03j
-3.14114972e+02+3.24158840e+02j -2.88559096e+02+3.85346626e+02j
1.37776670e+02+1.11082070e+02j 1.09852148e+02+1.04666587e+02j
1.38321927e+02-1.60746697e+02j 3.35866136e+01+2.37525999e+02j
-1.03422079e+02+6.78025620e+02j 2.23567847e+02+1.97529377e+02j
-2.50363799e+01+1.07377979e+02j -5.73485295e+00+1.41883816e+02j
6.49426995e+02+1.21479754e+02j -3.58887903e+02-3.39313423e+02j
-1.64240578e+02+3.52525655e+01j -9.40938372e+00-1.01312052e+02j
-2.11377617e+01+1.26948853e+02j 5.61393579e+01-1.58067228e+02j
5.06534027e+01+9.31463923e+01j 6.44618573e+01-4.65729124e+00j
-2.05496325e+02+1.94565436e+02j -4.88329246e+01-7.76522581e+01j
6.08292462e+01+2.39588776e+01j 1.01689748e+02-2.20029281e+02j
-3.71665454e+01+4.38355504e+01j -7.29434341e+01+1.06717908e+02j
7.25648891e+01-6.77796878e+01j 1.63928914e+01+1.92916024e+02j
-1.39834630e+02+3.27008497e+02j -9.53096319e+01+9.50717928e+00j
-1.52804041e+02+1.03087543e+02j -2.69092104e+00-2.88602300e+02j
-6.92720779e+01+2.67203102e+02j -9.05944568e+01+4.59049071e+01j
6.85787619e+01-1.45360342e+01j -1.38471579e+02+1.22296788e+02j
1.15731179e+02-4.11438291e+01j 1.09243119e+02+9.10624825e+01j
8.02673356e+01+1.33466526e+02j -1.28071882e+02-2.65439166e+01j
1.47268299e+02+2.22570122e+02j 8.67452834e+00-1.88656626e+02j
-9.98755716e+01-1.32296955e+02j -7.99752416e-02-3.09595401e+01j
5.37962767e+01-2.10790768e+01j 1.98852061e+02+4.68602368e+01j
-8.92550497e+00+9.56694227e+01j -1.27283964e+02+1.68150631e+01j
-2.57714079e+01+9.21648900e+01j -2.04348754e+02+2.29030340e+02j
-2.59659178e+01-4.49122868e+01j 3.41526867e+01+2.53994122e+01j
-4.80143489e+01-3.38669255e+02j 1.05804968e+02-1.29489442e+02j
1.00849701e+02-4.22258585e+01j 8.33511926e+01+2.29671445e+02j
-6.61357215e+01+3.58873945e+01j -2.38819980e+02+3.31309970e+01j
3.83745070e+00-9.16122539e+01j 1.10790869e+02+2.39057524e+01j
1.72514635e+01+2.90706049e+02j -1.30808298e+02+1.07639365e+02j
5.83727293e+01+1.37026441e+02j -4.97487809e+01-6.20384612e+01j
-9.80000000e+01-1.00000000e+01j 4.93488614e+01+1.64653158e+01j
1.30012602e+02-1.03101913e+02j 4.23136511e+01+6.87268419e+01j
8.42721381e+01-1.04696407e+02j -1.12023272e+02+4.42381511e+01j
-1.01577939e+02+8.65706512e+01j -1.66842805e+02-3.39553883e+00j
-1.43328715e+02-6.89624254e+01j -8.01590342e+01-1.34252000e+01j
4.51450310e+01-1.78661564e+02j -4.18788064e+01+1.49304130e+00j
-4.75042589e+01-8.80419559e+01j 4.11984786e+01-6.10470586e+01j
5.46231949e+01+7.96288711e+01j -3.01856256e+00-1.19967861e+01j
-1.54230061e+00+8.74298253e+01j -7.01860973e+01-3.89154226e+01j
-1.93295002e+02-7.11609736e+01j -1.22250090e+02+5.93966424e+01j
2.20480913e+00-8.32207522e+01j -5.26233496e+01-4.19082040e+01j
-5.65392700e+01+8.75424358e+00j 9.46934465e+01-1.03163286e+02j
1.54401832e+02-1.94317482e+02j 6.74052284e+01+6.36132552e+01j
1.15176861e+02+1.48487348e+02j -5.80638016e+01+7.22458563e+01j
6.84024955e+01+3.13692929e+01j 1.53540652e+02-7.83319048e+01j
-8.44635440e+01-8.99379401e+01j 7.87888516e+00+5.29589668e+01j
-9.47279221e+01+1.71203102e+02j -6.29872030e+01-1.46011188e+01j
3.99972538e+01-8.65039235e+01j 5.72507965e+01+9.05829178e+00j
2.01647142e+02+1.64044719e+02j 1.38087139e+01-4.23186491e+01j
1.65203714e+02+9.58399626e+01j 1.64227268e+01+1.81920646e+02j
-3.86314367e+01+6.20951322e+01j -1.25511682e+02-6.61112022e+01j
-8.41008059e+01+8.62134672e+01j 7.38986391e+01+1.90425429e+02j
2.99869078e+02-3.66101795e+01j 3.84199597e+01+5.37384078e+01j
-9.77614425e+01-7.46653187e+01j -4.98889595e+01-9.10908748e+01j
1.64514702e+01-1.73786212e+02j 2.51033425e+01-6.48175614e+01j
2.63685217e+02-5.63943460e+00j 1.28308700e+01-7.36534214e+01j
2.24050818e+02-9.51035110e+01j -1.70965039e+02-3.59969963e+01j
1.34022441e+02-9.66742721e+01j 7.37914246e+01-1.71143972e+02j
7.01436631e+00-3.16770136e+01j 1.15695912e+02-2.44799203e+02j
-1.32422541e+02-6.94123163e+01j 1.28572348e+02+5.38830813e+01j
5.84204981e+01-1.79739086e+01j 1.28868412e+02+2.13368659e+00j
2.29817507e+01+6.76166581e+00j 3.67605640e+01-3.08262409e+01j
7.60000000e+01+4.67041511e-12j 3.67605640e+01+3.08262409e+01j
2.29817507e+01-6.76166581e+00j 1.28868412e+02-2.13368659e+00j
5.84204981e+01+1.79739086e+01j 1.28572348e+02-5.38830813e+01j
-1.32422541e+02+6.94123163e+01j 1.15695912e+02+2.44799203e+02j
7.01436631e+00+3.16770136e+01j 7.37914246e+01+1.71143972e+02j
1.34022441e+02+9.66742721e+01j -1.70965039e+02+3.59969963e+01j
2.24050818e+02+9.51035110e+01j 1.28308700e+01+7.36534214e+01j
2.63685217e+02+5.63943460e+00j 2.51033425e+01+6.48175614e+01j
1.64514702e+01+1.73786212e+02j -4.98889595e+01+9.10908748e+01j
-9.77614425e+01+7.46653187e+01j 3.84199597e+01-5.37384078e+01j
2.99869078e+02+3.66101795e+01j 7.38986391e+01-1.90425429e+02j
-8.41008059e+01-8.62134672e+01j -1.25511682e+02+6.61112022e+01j
-3.86314367e+01-6.20951322e+01j 1.64227268e+01-1.81920646e+02j
1.65203714e+02-9.58399626e+01j 1.38087139e+01+4.23186491e+01j
2.01647142e+02-1.64044719e+02j 5.72507965e+01-9.05829178e+00j
3.99972538e+01+8.65039235e+01j -6.29872030e+01+1.46011188e+01j
-9.47279221e+01-1.71203102e+02j 7.87888516e+00-5.29589668e+01j
-8.44635440e+01+8.99379401e+01j 1.53540652e+02+7.83319048e+01j
6.84024955e+01-3.13692929e+01j -5.80638016e+01-7.22458563e+01j
1.15176861e+02-1.48487348e+02j 6.74052284e+01-6.36132552e+01j
1.54401832e+02+1.94317482e+02j 9.46934465e+01+1.03163286e+02j
-5.65392700e+01-8.75424358e+00j -5.26233496e+01+4.19082040e+01j
2.20480913e+00+8.32207522e+01j -1.22250090e+02-5.93966424e+01j
-1.93295002e+02+7.11609736e+01j -7.01860973e+01+3.89154226e+01j
-1.54230061e+00-8.74298253e+01j -3.01856256e+00+1.19967861e+01j
5.46231949e+01-7.96288711e+01j 4.11984786e+01+6.10470586e+01j
-4.75042589e+01+8.80419559e+01j -4.18788064e+01-1.49304130e+00j
4.51450310e+01+1.78661564e+02j -8.01590342e+01+1.34252000e+01j
-1.43328715e+02+6.89624254e+01j -1.66842805e+02+3.39553883e+00j
-1.01577939e+02-8.65706512e+01j -1.12023272e+02-4.42381511e+01j
8.42721381e+01+1.04696407e+02j 4.23136511e+01-6.87268419e+01j
1.30012602e+02+1.03101913e+02j 4.93488614e+01-1.64653158e+01j
-9.80000000e+01+1.00000000e+01j -4.97487809e+01+6.20384612e+01j
5.83727293e+01-1.37026441e+02j -1.30808298e+02-1.07639365e+02j
1.72514635e+01-2.90706049e+02j 1.10790869e+02-2.39057524e+01j
3.83745070e+00+9.16122539e+01j -2.38819980e+02-3.31309970e+01j
-6.61357215e+01-3.58873945e+01j 8.33511926e+01-2.29671445e+02j
1.00849701e+02+4.22258585e+01j 1.05804968e+02+1.29489442e+02j
-4.80143489e+01+3.38669255e+02j 3.41526867e+01-2.53994122e+01j
-2.59659178e+01+4.49122868e+01j -2.04348754e+02-2.29030340e+02j
-2.57714079e+01-9.21648900e+01j -1.27283964e+02-1.68150631e+01j
-8.92550497e+00-9.56694227e+01j 1.98852061e+02-4.68602368e+01j
5.37962767e+01+2.10790768e+01j -7.99752416e-02+3.09595401e+01j
-9.98755716e+01+1.32296955e+02j 8.67452834e+00+1.88656626e+02j
1.47268299e+02-2.22570122e+02j -1.28071882e+02+2.65439166e+01j
8.02673356e+01-1.33466526e+02j 1.09243119e+02-9.10624825e+01j
1.15731179e+02+4.11438291e+01j -1.38471579e+02-1.22296788e+02j
6.85787619e+01+1.45360342e+01j -9.05944568e+01-4.59049071e+01j
-6.92720779e+01-2.67203102e+02j -2.69092104e+00+2.88602300e+02j
-1.52804041e+02-1.03087543e+02j -9.53096319e+01-9.50717928e+00j
-1.39834630e+02-3.27008497e+02j 1.63928914e+01-1.92916024e+02j
7.25648891e+01+6.77796878e+01j -7.29434341e+01-1.06717908e+02j
-3.71665454e+01-4.38355504e+01j 1.01689748e+02+2.20029281e+02j
6.08292462e+01-2.39588776e+01j -4.88329246e+01+7.76522581e+01j
-2.05496325e+02-1.94565436e+02j 6.44618573e+01+4.65729124e+00j
5.06534027e+01-9.31463923e+01j 5.61393579e+01+1.58067228e+02j
-2.11377617e+01-1.26948853e+02j -9.40938372e+00+1.01312052e+02j
-1.64240578e+02-3.52525655e+01j -3.58887903e+02+3.39313423e+02j
6.49426995e+02-1.21479754e+02j -5.73485295e+00-1.41883816e+02j
-2.50363799e+01-1.07377979e+02j 2.23567847e+02-1.97529377e+02j
-1.03422079e+02-6.78025620e+02j 3.35866136e+01-2.37525999e+02j
1.38321927e+02+1.60746697e+02j 1.09852148e+02-1.04666587e+02j
1.37776670e+02-1.11082070e+02j -2.88559096e+02-3.85346626e+02j
-3.14114972e+02-3.24158840e+02j 3.26317201e+01-1.28967006e+03j]
文件行数= 256
文件列数=1
fft数据保存文件结果:
对比调用fft包和不调fft包的结果,发现在小数后的数会有细微差别,应该是计算精度的原因。
附件
程序文件中有两个程序,其中’’‘wavtxtfft.py’’‘为对数据进行fft变换的程序,包括分帧数据和原始语音数据,数据保存在文件中。’’‘Englishframe1.txt’’‘为分帧数据文件,经fft变换后的数据保存在’’‘fft_Englishframe1.txt’’‘文件中。对1列的数据进行fft变换,调包和不调包结果均实现,但输入数据文件不能太大。’’‘test.txt’’‘为截取的English.txt的前256行数据,调包的fft变换后的数据保存在’’‘fft_test1.txt’’‘文件中,不调包的fft变换后的数据保存在’’‘fft_test2.txt’’'文件中。
完整程序提取:
链接:https://pan.baidu.com/s/1VksJXhmpipJ9ex7gVVsuOA
提取码:xetn
上一篇: ASP教程:2、ASP简介