Spectrum frequency zoom: Restrict autoscale to visible spectrum area. Added missing images for documentation. Issue #773

pull/788/head
f4exb 2021-02-18 06:23:12 +01:00
rodzic 7ea71996f0
commit a8bba2e95a
5 zmienionych plików z 12 dodań i 2 usunięć

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.5 KiB

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -683,6 +683,15 @@ void SpectrumVis::feed(const SampleVector::const_iterator& cbegin, const SampleV
m_mutex.unlock();
}
void SpectrumVis::getZoomedPSDCopy(std::vector<Real>& copy) const
{
int fftMin = (m_frequencyZoomFactor == 1.0f) ?
0 : (m_frequencyZoomPos - (0.5f / m_frequencyZoomFactor)) * m_settings.m_fftSize;
int fftMax = (m_frequencyZoomFactor == 1.0f) ?
m_settings.m_fftSize : (m_frequencyZoomPos + (0.5f / m_frequencyZoomFactor)) * m_settings.m_fftSize;
copy.assign(m_psd.begin() + fftMin, m_psd.begin() + fftMax);
}
void SpectrumVis::start()
{
setRunning(true);

Wyświetl plik

@ -147,7 +147,8 @@ public:
const GLSpectrumSettings& getSettings() const { return m_settings; }
Real getSpecMax() const { return m_specMax / m_powFFTDiv; }
void getPowerSpectrumCopy(std::vector<Real>& copy) { copy.assign(m_powerSpectrum.begin(), m_powerSpectrum.end()); }
void getPSDCopy(std::vector<Real>& copy) { copy.assign(m_psd.begin(), m_psd.begin() + m_settings.m_fftSize); }
void getPSDCopy(std::vector<Real>& copy) const { copy.assign(m_psd.begin(), m_psd.begin() + m_settings.m_fftSize); }
void getZoomedPSDCopy(std::vector<Real>& copy) const;
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
virtual void feed(const Complex *begin, unsigned int length); //!< direct FFT feed

Wyświetl plik

@ -267,7 +267,7 @@ void GLSpectrumGUI::on_autoscale_clicked(bool checked)
}
std::vector<Real> psd;
m_spectrumVis->getPSDCopy(psd);
m_spectrumVis->getZoomedPSDCopy(psd);
int avgRange = m_settings.m_fftSize / 32;
if (psd.size() < (unsigned int) avgRange) {