Python FFT

from scipy.fftpack import fft,ifft
import numpy as np

data_array = np.array([
1156	,
1152	,
1136	,
1128	,
1120	,
1112	,
1102	,
1100	,
1088	,
1088	,
1066	,
1074	,
1056	,
1056	,
1042	,
1040	,
1032	,
1028	,
1024	,
1024	,
1008	,
1004	,
1000	,
1008	,
984	,
992	,
976	,
972	,
960	,
960	,
944	,
948	,
948	,
976	,
994	,
1056	,
1098	,
1160	,
1188	,
1224	,
1238	,
1260	,
1259	,
1268	,
1256	,
1264	,
1248	,
1248	,
1240	,
1240	,
1232	,
1232	,
1232	,
1232	,
1218	,
1216	,
1202	,
1192	,
1176	,
1172	,
1172	,
1172	,
1170	,
1176	,
1184	,
1184	,
1176	,
1176	,
1172	,
1164	,
1164	,
1152	,
1152	,
1130	,
1136	,
1120	,
1112	,
1104	,
1104	,
1088	,
1076	,
1064	,
1064	,
1056	,
1044	,
1036	,
1040	,
1024	,
1024	,
1008	,
1012	,
996	,
1000	,
984	,
992	,
976	,
984	,
968	,
972	,
960	,
960	,
936	,
936	,
932	,
948	,
962	,
1008	,
1058	,
1120	,
1168	,
1208	,
1240	,
1256	,
1264	,
1280	,
1280	,
1280	,
1266	,
1272	,
1264	,
1260	,
1256	,
1257	,
1252	,
1252	,
1248	,
1250	,
1240	,
1224	,
1220	,
1216	,
1204	,
1200	,
1200	,
1188	,
1200	,
1196	,
1200	,
1200	,
1196	,
1192	,
1194	,
1184	,
1184	,
1172	,
1161	,
1152	,
1152	,
1136	,
1128	,
1108	,
1112	,
1092	,
1096	,
1080	,
1080	,
1056	,
1072	,
1041	,
1056	,
1032	,
1036	,
1024	,
1024	,
1010	,
1024	,
1000	,
1000	,
984	,
992	,
976	,
976	,
964	,
960	,
960	,
948	,
944	,
944	,
940	,
966	,
1008	,
1068	,
1120	,
1176	,
1216	,
1248	,
1268	,
1282	,
1292	,
1286	,
1288	,
1284	,
1280	,
1280	,
1280	,
1268	,
1280	,
1264	,
1280	,
1260	,
1260	,
1256	,
1248	,
1232	,
1232	,
1216	,
1220	,
1204	,
1216	,
1210	,
1210	,
1206	,
1216	,
1204	,
1206	,
1192	,
1196	,
1188	,
1184	,
1168	,
1172	,
1152	,
1140	,
1128	,
1128	,
1112	,
1112	,
1092	,
1092	,
1080	,
1080	,
1060	,
1058	,
1044	,
1040	,
1028	,
1032	,
1024	,
1024	,
1024	,
1024	,
1000	,
992	,
984	,
984	,
976	,
968	,
960	,
960	,
952	,
960	,
982	,
1024	,
1072	,
1128	,
1178	,
1218	,
1252	,
1266	,
1292	,
1292	,
1296	,
1296	,
1288	,
1288	,
1286	,
1266	,
1280	,
1264	,
1264	,
1264	,
1264	,
1256	,
1252	,
1232	,
1236	,
1216	,
1216	,
1200	,
1208	,
1200	,
1208	,
1200	,
1216	,
1216	,
1216	,
1202	,
1200	,
1192	,
1188	,
1172	,
1168	,
1156	,
1158	,
1140	,
1144	,
1124	,
1120	,
1112	,
1104	,
1092	,
1088	,
1072	,
1072	,
1064	,
1064	,
1050	,
1048	,
1048	,
1040	,
1032	,
1024	,
1024	,
1004	,
1004	,
1000	,
992	,
992	,
984	,
976	,
976	,
976	,
1008	,
1040	,
1096	,
1152	,
1204	,
1234	,
1280	,
1280	,
1304	,
1296	,
1312	,
1296	,
1296	,
1280	,
1284	,
1264	,
1268	,
1258	,
1264	,
1252	,
1252	,
1232	,
1236	,
1209	,
1216	,
1200	,
1202	,
1194	,
1204	,
1200	,
1210	,
1200	,
1204	,
1192	,
1208	,
1186	,
1192	,
1184	,
1176	,
1168	,
1156	,
1152	,
1136	,
1124	,
1120	,
1104	,
1096	,
1092	,
1088	,
1075	,
1072	,
1062	,
1052	,
1042	,
1036	,
1032	,
1032	,
1024	,
1024	,
1024	,
1008	,
1012	,
996	,
996	,
984	,
980	,
972	,
968	,
954	,
978	,
996	,
1040	,
1092	,
1160	,
1200	,
1248	,
1272	,
1304	,
1312	,
1324	,
1320	,
1322	,
1316	,
1314	,
1304	,
1304	,
1292	,
1296	,
1288	,
1296	,
1290	,
1296	,
1280	,
1280	,
1258	,
1256	,
1236	,
1248	,
1232	,
1234	,
1232	,
1234	,
1232	,
1236	,
1233	,
1232	,
1224	,
1220	,
1216	,
1202	,
1194	,
1184	,
1168	,
1168	,
1160	,
1152	,
1138	,
1132	,
1124	,
1112	,
1109	,
1104	,
1092	,
1080	,
1088	,
1072	,
1072	,
1060	,
1062	,
1052	,
1056	,
1040	,
1040	,
1028	,
1032	,
1024	,
1024	,
1004	,
1008	,
1002	,
1028	,
1050	,
1108	,
1152	,
1216	,
1248	,
1294	,
1306	,
1344	,
1333	,
1352	,
1335	,
1348	,
1328	,
1332	,
1322	,
1328	,
1324	,
1328	,
1316	,
1316	,
1312	,
1304	,
1298	,
1288	,
1280	,
1258	,
1256	,
1256	,
1248	,
1249	,
1248	,
1248	,
1248	,
1250	,
1248	,
1248	,
1240	,
1232	,
1220	,
1216	,
1200	,
1192	,
1184	,
1174	,
1168	,
1152	,
1154	,
1136	,
1136	,
1120	,
1120	,
1112	,
1112	,
1090	,
1096	,
1088	,
1080	,
1064	,
1072	,
1064	,
1064	,
1046	,
1048	,
1038	,
1036	,
1024	,
1024	,
1002	,
1006	,
992	,
1024	,
1024	,
1072	,
1112	,
1178	,
1216	,
1264	,
1280	,
1316	,
1316	,
1332	,
1328	,
1336	,
1320	,
1320	,
1312	,
1312	,
1312	,
1304	,
1296	,
1300	,
1296	,
1296	,
1288	,
1281	,
1264	,
1252	,
1248	,
1240	,
1240	,
1240	,
1240	,
1236	,
1240	,
1240	,
1236	,
1236	,
1240	,
1220	,
1222	,
1208	,
1204	,
1187	,
1184	,
1176	,
1176	,
1158	,
1160	,
1144	,
1140	,
1124	,
1124	,
1113	,
1114	,
1104	,
1104	,
1090	,
1088	,
1074	,
1080	,
1056	,
1072	,
1051	,
1050	,
1040	,
1040	,
1024	,
1028	,
1024	,
1036	,
1048	,
1096	,
1140	,
1196	,
1232	,
1272	,
1296	,
1316	,
1323	,
1332	,
1329	,
1328	,
1313	,
1312	,
1304	,
1298	,
1298	,
1298	,
1290	,
1284	,
1280	,
1268	,
1264	,
1248	,
1240	,
1236	,
1228	,
1228	,
1228	,
1224	,
1234	,
1226	,
1232	,
1224	,
1224	,
1216	,
1216	,
1200	,
1204	,
1188	,
1184	,
1168	,
1168	,
1152	,
1152	,
1136	,
1136	,
1112	,
1112	,
1104	,
1104	,
1091	,
1088	,
1072	,
1072	,
1056	,
1064	,
1044	,
1050	,
1032	,
1040	,
1032	,
1028	,
1024	,
1024	,
1008	,
1000	,
988	,
996	,
1008	,
1040	,
1088	,
1140	,
1192	,
1248	,
1280	,
1304	,
1320	,
1332	,
1336	,
1336	,
1334	,
1328	,
1328	,
1328	,
1320	,
1320	,
1320	,
1316	,
1313	,
1312	,
1312	,
1296	,
1296	,
1280	,
1280	,
1264	,
1268	,
1256	,
1256	,
1250	,
1256	,
1252	,
1256	,
1250	,
1250	,
1238	,
1240	,
1224	,
1232	,
1204	,
1200	,
1184	,
1188	,
1166	,
1168	,
1156	,
1154	,
1128	,
1136	,
1112	,
1120	,
1100	,
1104	,
1088	,
1088	,
1072	,
1080	,
1072	,
1072	,
1056	,
1060	,
1042	,
1040	,
1032	,
1026	,
1024	,
1024	,
1008	,
1024	,
1024	,
1060	,
1100	,
1156	,
1201	,
1250	,
1294	,
1318	,
1337	,
1348	,
1356	,
1356	,
1352	,
1346	,
1348	,
1330	,
1344	,
1330	,
1344	,
1332	,
1333	,
1328	,
1328	,
1312	,
1306	,
1290	,
1288	,
1280	,
1280	,
1258	,
1268	,
1264	,
1268	,
1264	,
1264	,
1252	,
1260	,
1240	,
1248	,
1232	,
1224	,
1216	,
1216	,
1188	,
1192	,
1172	,
1170	,
1152	,
1152	,
1136	,
1128	,
1120	,
1120	,
1108	,
1104	,
1092	,
1092	,
1088	,
1073	,
1064	,
1064	,
1056	,
1056	,
1048	,
1040	,
1036	,
1028	,
1026	,
1008	,
1004	,
1000	,
996	,
1004	,
1032	,
1072	,
1128	,
1184	,
1244	,
1280	,
1312	,
1320	,
1332	,
1344	,
1344	,
1330	,
1332	,
1322	,
1328	,
1320	,
1320	,
1306	,
1320	,
1304	,
1308	,
1296	,
1292	,
1280	,
1280	,
1252	,
1256	,
1248	,
1256	,
1240	,
1250	,
1248	,
1252	,
1241	,
1244	,
1236	,
1244	,
1228	,
1224	,
1200	,
1204	,
1184	,
1184	,
1168	,
1168	,
1154	,
1144	,
1136	,
1128	,
1120	,
1112	,
1104	,
1096	,
1088	,
1076	,
1072	,
1072	,
1062	,
1060	,
1052	,
1050	,
1040	,
1032	,
1032	,
1024	,
1012	,
1008	,
1008	,
1000	,
1008	,
1028	,
1068	,
1112	,
1178	,
1216	,
1264	,
1292	,
1316	,
1324	,
1344	,
1328	,
1336	,
1320	,
1320	,
1312	,
1312	,
1304	,
1312	,
1296	,
1306	,
1288	,
1292	,
1280	,
1264	,
1253	,
1249	,
1240	,
1240	,
1232	,
1236	,
1232	,
1240	,
1232	,
1232	,
1228	,
1224	,
1220	,
1208	,
1200	,
1192	,
1184	,
1176	,
1162	,
1156	,
1152	,
1128	,
1124	,
1116	,
1108	,
1100	,
1096	,
1092	,
1080	,
1072	,
1068	,
1064	,
1056	,
1044	,
1056	,
1040	,
1036	,
1032	,
1024	,
1024	,
1024	,
1004	,
1008	,
990	,
992	,
976	,
982	,
978	,
1008	,
1040	,
1104	,
1152	,
1208	,
1236	,
1280	,
1287	,
1316	,
1305	,
1316	,
1304	,
1314	,
1298	,
1304	,
1296	,
1296	,
1292	,
1300	,
1288	,
1294	,
1280	,
1280	,
1264	,
1256	,
1248	,
1237	,
1232	,
1224	,
1224	,
1226	,
1224	,
1224	,
1219	,
1226	,
1217	,
1216	,
1202	,
1200	,
1196	,
1184	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,
1172	,

])
print(len(data_array))

x = np.linspace(0, 1, 3000)

# 設置需要採樣的信號,頻率分量有200,400和600
y = 1000+7 * np.sin(2 * np.pi * 200 * x) + 5 * np.sin(2 * np.pi * 400 * x)+ 10 * np.sin(2 * np.pi * 1.5 * x)
print(type(y))
fft_val=fft(data_array)
fft_val1=fft(y)

abs_y=np.abs(fft_val)/len(fft_val)
abs_y1=np.abs(fft_val1)/len(fft_val1)
print(type(abs_y))
print(abs_y)

f = open('c:2.txt', mode='w')
for i in range(0,len(abs_y)):
    f.write(str(abs_y[i])+'\n')
#f.write(str(abs_y))
f.close()

 

 

MCU和Python計算FFT,結果都一樣。

numpy 很有用的庫。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章