- add function to calculate average of n samples around median

- increase wifi rx buffer size
- change wifi tx buffer to dynamic and increase allowed size

Signed-off-by: Karl Osterseher <karli_o@gmx.at>
This commit is contained in:
Karl Osterseher
2022-12-22 18:01:30 +01:00
Unverified
parent 430cd080f3
commit f827723853
7 changed files with 78 additions and 97 deletions

View File

@@ -108,6 +108,41 @@ int64_t MEDIANFILTER_Insert(sMedianFilter_t *medianFilter, int64_t sample) {
return medianFilter->medianHead->value;
}
/**
*
*/
int64_t MEDIANFILTER_get_median(sMedianFilter_t *medianFilter, uint32_t n) {
int64_t avgMedian = 0;
sMedianNode_t *it;
int32_t i;
if ((n % 2) == 0) {
it = medianFilter->medianHead
->prevValue; // set iterator as value head previous
// first add previous values
for (i = 0; i < n / 2; i++) {
avgMedian += it->value;
it = medianFilter->medianHead->prevValue;
}
it =
medianFilter->medianHead->nextValue; // set iterator as value head next
// second add next values
for (i = 0; i < n / 2; i++) {
avgMedian += it->value;
it = medianFilter->medianHead->nextValue;
}
}
avgMedian += medianFilter->medianHead->value;
if (n > 0) {
avgMedian /= (n + 1);
}
return avgMedian;
}
/**
*
*/

View File

@@ -36,6 +36,7 @@ typedef struct {
int MEDIANFILTER_Init(sMedianFilter_t *medianFilter);
int64_t MEDIANFILTER_Insert(sMedianFilter_t *medianFilter, int64_t sample);
int64_t MEDIANFILTER_get_median(sMedianFilter_t *medianFilter, uint32_t n);
uint32_t MEDIANFILTER_isFull(sMedianFilter_t *medianFilter);
#ifdef __cplusplus