- 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:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user