Я использую Python. Входные данные. CSV-файл с отметкой времени, текущий (AC). Я могу построить БПФ сигнала и вижу гармоники. Я хотел бы найти и вывести (или отобразить на графике координаты x и y) величину гармоник (например, каждую величину до 50-й гармоники). Что будет лучшим способом для этого? Спасибо.
Обновление
Вот мой график: Графики гармоник
Мой сигнал 60 Гц, поэтому я знаю свои гармоникибудет в 120, 180, ...
То, что я пытаюсь сделать, это найти или вывести величину всех гармоник (от 2-й до 50-й). Поэтому я хотел бы спросить, что есть хороший способ приблизиться к этому.
В конечном счете, я пытаюсь добиться того, чтобы иметь возможность рассчитать амплитуду гармоники для основной (в процентах).
Обновление
В итоге я использовал zip для отображения частоты и амплитуды, а затем распечатал их. Вот мой код:
import pandas as pd
import numpy as np
import plotly
import matplotlib.pyplot as plt
from scipy.fftpack import fft, ifft
from scipy import arange
import csv
import math
df=pd.read_csv (r'C:\Users\20amps.csv')
N=df.shape[0] #Number of samples
T=125000 #Frequency of Signal
k=arange(N)
Ts=N/T
freq=k/Ts
freq=freq[range(N//40)]
amp=df["AC1 A"]
rms= [i * math.sqrt(2) for i in amp]
yf=fft(rms)/N
yf=yf[range(N//40)]
zipped = zip (freq, abs(yf))
print (zipped)
w = list(zipped)
print(w)
#Writing to csv file
#with open('data.csv', 'w') as csvFile:
# writer =csv.writer(csvFile, delimiter=',')
# writer.writerow(w)
plt.plot(freq, abs(yf),'r') #plot results
plt.grid()
plt.xlabel('Frequency')
plt.ylabel(r'Amplitude')
plt.show()
Тогда я просто посмотрю нужные мне частоты и амплитуды.
Буду открыт для предложений о лучших способах сделать это.