1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-07 08:24:43 -04:00

Spectrum: set limits for averaging

This commit is contained in:
f4exb
2021-04-20 23:08:56 +02:00
parent aad48501a1
commit e9f11e1d37
5 changed files with 38 additions and 75 deletions
+15 -2
View File
@@ -148,9 +148,9 @@ bool SpectrumSettings::deserialize(const QByteArray& data)
int SpectrumSettings::getAveragingMaxScale(AveragingMode averagingMode)
{
if (averagingMode == AvgModeMoving) {
return 2;
return 3; // max 10k
} else {
return 5;
return 5; // max 1M
}
}
@@ -206,3 +206,16 @@ int SpectrumSettings::getAveragingIndex(int averagingValue, AveragingMode averag
return 3*getAveragingMaxScale(averagingMode) + 3;
}
uint64_t SpectrumSettings::getMaxAveragingValue(int fftSize, AveragingMode averagingMode)
{
if (averagingMode == AvgModeMoving)
{
uint64_t limit = (1UL<<28) / (sizeof(double)*fftSize); // 256 MB max
return limit > (1<<14) ? (1<<14) : limit; // limit to 16 kS anyway
}
else
{
return (1<<20); // fixed 1 MS
}
}