Added plain_interpolate_cc
This commit is contained in:
parent
bfc6f5dea0
commit
84d23227f3
3 changed files with 33 additions and 0 deletions
22
csdr.c
22
csdr.c
|
@ -143,7 +143,11 @@ char usage[]=
|
|||
" gaussian_noise_c\n"
|
||||
" awgn_cc <snr_db> [--snrshow]\n"
|
||||
" pack_bits_8to1_u8_u8\n"
|
||||
" firdes_matched_filter_f (RRC <samples_per_symbol> <num_taps> <beta> | COSINE <samples_per_symbol>)\n"
|
||||
" matched_filter_cc (RRC <samples_per_symbol> <num_taps> <beta> | COSINE <samples_per_symbol>)\n"
|
||||
" add_n_zero_samples_at_beginning_f <n_zero_samples>\n"
|
||||
" generic_slicer_f_u8 <n_symbols>\n"
|
||||
" plain_interpolate_cc <n_symbols>\n"
|
||||
" ?<search_the_function_list>\n"
|
||||
" =<evaluate_python_expression>\n"
|
||||
" \n"
|
||||
|
@ -3106,6 +3110,24 @@ int main(int argc, char *argv[])
|
|||
return 0;
|
||||
}
|
||||
|
||||
if(!strcmp(argv[1], "plain_interpolate_cc")) //<interpolation>
|
||||
{
|
||||
int interpolation = 0;
|
||||
if(argc<=2) return badsyntax("required parameter <interpolation> is missing.");
|
||||
sscanf(argv[2],"%d",&interpolation);
|
||||
if(!sendbufsize(interpolation*initialize_buffers())) return -2;
|
||||
complexf* plainint_output_buffer = (complexf*)malloc(sizeof(complexf)*the_bufsize*interpolation);
|
||||
for(;;)
|
||||
{
|
||||
FEOF_CHECK;
|
||||
FREAD_C;
|
||||
plain_interpolate_cc((complexf*)input_buffer, plainint_output_buffer, the_bufsize, interpolation);
|
||||
fwrite(plainint_output_buffer, sizeof(float)*2, the_bufsize*interpolation, stdout);
|
||||
TRY_YIELD;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!strcmp(argv[1],"none"))
|
||||
{
|
||||
return 0;
|
||||
|
|
10
libcsdr.c
10
libcsdr.c
|
@ -2383,6 +2383,15 @@ int firdes_rrc_f(float* taps, int taps_length, int samples_per_symbol, float bet
|
|||
}
|
||||
}
|
||||
|
||||
void plain_interpolate_cc(complexf* input, complexf* output, int input_size, int interpolation)
|
||||
{
|
||||
for(int i=0;i<input_size;i++)
|
||||
{
|
||||
output[i*interpolation]=input[i];
|
||||
bzero(output+(interpolation*i)+1, (interpolation-1)*sizeof(complexf));
|
||||
}
|
||||
}
|
||||
|
||||
#define MMATCHEDFILT_GAS(NAME) \
|
||||
if(!strcmp( #NAME , input )) return MATCHED_FILTER_ ## NAME;
|
||||
|
||||
|
@ -2408,3 +2417,4 @@ int trivial_vectorize()
|
|||
}
|
||||
return c[0];
|
||||
}
|
||||
void plain_interpolate_cc(complexf* input, complexf* output, int input_size, int interpolation);
|
||||
|
|
|
@ -384,3 +384,4 @@ int firdes_rrc_f(float* taps, int taps_length, int samples_per_symbol, float bet
|
|||
matched_filter_type_t matched_filter_get_type_from_string(char* input);
|
||||
int apply_real_fir_cc(complexf* input, complexf* output, int input_size, float* taps, int taps_length);
|
||||
void generic_slicer_f_u8(float* input, unsigned char* output, int input_size, int n_symbols);
|
||||
void plain_interpolate_cc(complexf* input, complexf* output, int input_size, int interpolation);;
|
||||
|
|
Loading…
Reference in a new issue