我为低成本示波器创建了一个开源绘图包 - 请参阅此处的链接:GitHub Plotting Software
但是在我的测试过程中,我得到了一个可能是错误的结果:嘈杂的 7 kHz 方波在 6.25 kHz 处显示了 FFT 峰值。这可能是正确的,还是我错过了什么?
这是我的 FFT 的 python 代码提取
# stack FFT plot in this figure vertically
plt.subplot(grid_stack[grid_row, :])
y_heading = self.y_heading
# Reduce signal_data array size by a factor of n (used to reduce the frequency range)
n = self.n
updated_df_data = self.reduce_sample_array(self.df_data, n)
# update sample rate and array size
sample_rate = float(self.info_dict['rate'][1])/n
array_size = updated_df_data[y_heading].size
# Calculate y-axis magnitude scaled to same units as y-axis in heading2Use data (ie volts)
yf = 2/array_size * fft(updated_df_data[y_heading].values)
# Calculate x axis as frequency in Hz
x = fftfreq(array_size, 1 / float(sample_rate))
x_half = x[:x.size//2]
freq_units, freq_multiplier = rescale_frequency(x_half)
x_half = rescale_data(x_half, 10 ** freq_multiplier)
y_half = abs(yf)[:array_size//2]
engr_power_v = calculate_scale(y_half)
y_half = rescale_data(y_half, 10**engr_power_v)
plt.plot(x_half, y_half, color=self.iplot_colors[-1])
带有干净方波的示例图,似乎没问题
带有似乎具有错误峰值的嘈杂方波的示例图(6.25 而不是 7 kHz)
欢迎任何意见或建议,因为这是我的第一个 python 信号分析软件项目。