pyQTGraph设置轴值(FFT)

2024-05-23 22:02:14 发布

您现在位置:Python中文网/ 问答频道 /正文

类FFT_Plot():

def __init__(self,
             win,
             nSamples,
             aData,
             sRate,
             wFunction,
             zStart = 0):
    self.nSamples = nSamples    # Number of Sample must be a 2^n power
    self.aData = aData          # Amplitude data array
    self.sRate = sRate          # Sample Rate
    self.wFunction = wFunction  # Windowing Function
    self.zStart = zStart        # Start of Zoom Window if Used
    self.zStop = nSamples/2     # End of Zoom Window if Used
    # Instantiate a plot window within an existing pyQtGraph window.
    self.plot = win.addPlot(title="FFT")
    self.update(aData)
    self.grid_state()

    self.plot.setLabel('left', 'Amplitude', 'Volts')
    self.plot.setLabel('bottom', 'Frequency', 'Hz')

def update(self, aData):
    x = np.fft.fft(aData,)
    amplitude = np.absolute(x)
    fScale = np.linspace(0 , 50000, self.nSamples)
    self.plot.plot(amplitude)
    # Calculate and set-up X axis
    self.plot.setXRange(SampleSize/2, 0)

def grid_state(self, x = True, y = True):
    self.plot.showGrid(x, y)

我的问题很简单。如何更改沿x和y轴显示的值?在

当使用2048个样本并显示一半样本(0到samples/2)时,我会显示0到1。如果我不能显示它们,计算频率或振幅对我没有好处。在

如果我改变范围,我有效地放大了光谱。。。我看到了一些例子,但我很快就失去了对所发生的一切的任何解释。在

任何帮助都将不胜感激。。。在

正如卢克所说。。。我没注意到我可以使用“X”数组。:)纠正后的初学者课程如下:

类FFT_Plot():

^{pr2}$

任何DSP类型请随时添加非数学注释。在

此外,为了使Y轴正确读取,振幅阵列必须相应地进行预缩放。在


Tags: ofsampleselffftplotdefnpwin
1条回答
网友
1楼 · 发布于 2024-05-23 22:02:14

在pyqtgraph中,轴值是根据显示数据的坐标系自动确定的。当只使用指定的y值调用plot()时,它假定您需要像range(len(yValues))这样的整数x值。{50k>你需要提供这些值的范围。您应该会发现轴值会相应地作出反应。在

相关问题 更多 >