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 很有用的库。