diff options
Diffstat (limited to 'filt')
-rw-r--r-- | filt/Kconfig | 0 | ||||
-rw-r--r-- | filt/filt.h | 16 | ||||
-rw-r--r-- | filt/filt_5th.c | 32 | ||||
-rw-r--r-- | filt/filt_delay.c | 51 | ||||
-rw-r--r-- | filt/make.mk | 11 |
5 files changed, 0 insertions, 110 deletions
diff --git a/filt/Kconfig b/filt/Kconfig deleted file mode 100644 index e69de29..0000000 --- a/filt/Kconfig +++ /dev/null diff --git a/filt/filt.h b/filt/filt.h deleted file mode 100644 index 9ce2caa..0000000 --- a/filt/filt.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __RADIOLA_FILT_H -#define __RADIOLA_FILT_H - -#include <stdlib.h> -#include <stdio.h> -#include <stdint.h> -#include <string.h> -#include <unistd.h> - -//fifth order filter from rtlsdr -void filt_5th(int16_t *data, int length, int16_t *hist); - -//delay filtering from https://github.com/dpiponi/mini_fm.git -void filt_delay( uint8_t *buf, int buf_len ); - -#endif
\ No newline at end of file diff --git a/filt/filt_5th.c b/filt/filt_5th.c deleted file mode 100644 index 23d5aab..0000000 --- a/filt/filt_5th.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "filt.h" - -void f_5th(int16_t *data, int length, int16_t *hist) -/* for half of interleaved data */ -{ - int i; - int16_t a, b, c, d, e, f; - a = hist[1]; - b = hist[2]; - c = hist[3]; - d = hist[4]; - e = hist[5]; - f = data[0]; - /* a downsample should improve resolution, so don't fully shift */ - data[0] = (a + (b+e)*5 + (c+d)*10 + f) >> 4; - for (i=4; i<length; i+=4) { - a = c; - b = d; - c = e; - d = f; - e = data[i-2]; - f = data[i]; - data[i/2] = (a + (b+e)*5 + (c+d)*10 + f) >> 4; - } - /* archive */ - hist[0] = a; - hist[1] = b; - hist[2] = c; - hist[3] = d; - hist[4] = e; - hist[5] = f; -} diff --git a/filt/filt_delay.c b/filt/filt_delay.c deleted file mode 100644 index 53da0b0..0000000 --- a/filt/filt_delay.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "filt.h" - -//delay filtering -void filt_delay( uint8_t *buf, int buf_len ) -{ - //delay length - const int n=10; - - int i=0; - uint32_t cycle=0; - uint32_t avg_i=0, avg_q=0; - uint32_t cyc_buffer_i[n],delay_i=0; - uint32_t cyc_buffer_q[n],delay_q=0; - uint8_t in1=0,in2=0,out1=0,out2=0; - - memset( cyc_buffer_i, 0, n*sizeof(uint32_t) ); - memset( cyc_buffer_q, 0, n*sizeof(uint32_t) ); - - //for (i=0; i<(buf_len-(n*2));i+=2) - for (i=0 ; i<(buf_len-1) ; i+=2 ) - //for (i=0; i<1000; i+=2) - { - in1 = buf[i]; - in2 = buf[i+1]; - - //average - avg_i += (uint32_t)in1; - avg_q += (uint32_t)in2; - - delay_i = cyc_buffer_i[cycle]; - delay_q = cyc_buffer_q[cycle]; - - cyc_buffer_i[cycle] = avg_i; - cyc_buffer_q[cycle] = avg_q; - cycle = cycle + 1; - if ( cycle >= n ) - { - cycle = 0; - } - - out1 = (avg_i - delay_i)/n; - out2 = (avg_q - delay_q)/n; - - buf[i] = out1; - buf[i+1] = out2; - - //printf("%d,avg=[%d,%d],delay=[%d,%d],in=[%d,%d],out=[%d,%d]\n", - // cycle, avg_i,avg_q,delay_i,delay_q,in1,in2,out1,out2); - - } -}
\ No newline at end of file diff --git a/filt/make.mk b/filt/make.mk deleted file mode 100644 index be7468f..0000000 --- a/filt/make.mk +++ /dev/null @@ -1,11 +0,0 @@ -DIR_FILT = filt/ -SOURCES_FILT += filt/filt_5th.c filt/filt_delay.c -OBJECTS_FILT += $(SOURCES_FILT:.c=.o) -LDFLAGS += -LDFLAGS_BSD += - - -OBJECTS_DIR_FILT += $(subst $(DIR_FILT),$(BUILD_DIR)$(DIR_FILT),$(OBJECTS_FILT)) - -OBJECTS += $(OBJECTS_FILT) -OBJECTS_FINAL += $(OBJECTS_DIR_FILT)
\ No newline at end of file |