mirror of
https://github.com/OpenRTX/OpenRTX
synced 2026-08-08 12:29:06 -04:00
Make quantization work also on DC offset signal Add samples plot code Fix bug in buffer wrap around Fix oob memory access in M17 modulator Update tests with DC offset signal Switch to 48KHz sample rate for Module17 and MD380 Add DC biasing script TG-81
56 lines
1.8 KiB
C++
56 lines
1.8 KiB
C++
/*******************************************************************************
|
|
* *
|
|
* Convert a baseband from m17-cpp-mod to Module17/MD3x0 ADC input equivalent *
|
|
* *
|
|
******************************************************************************/
|
|
|
|
#include <stdio.h>
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
|
|
int main(int argc, char *argv[]) {
|
|
FILE *baseband_in = fopen(argv[1], "rb");
|
|
if (!baseband_in)
|
|
{
|
|
perror("Error in reading test baseband");
|
|
return -1;
|
|
}
|
|
|
|
// Get file size
|
|
fseek(baseband_in, 0L, SEEK_END);
|
|
long baseband_size = ftell(baseband_in);
|
|
unsigned baseband_samples = baseband_size / 2;
|
|
fseek(baseband_in, 0L, SEEK_SET);
|
|
printf("Baseband is %ld bytes!\n", baseband_size);
|
|
|
|
// Read data from input file
|
|
int16_t *baseband_buffer = (int16_t *) malloc(baseband_size);
|
|
if (!baseband_buffer)
|
|
{
|
|
perror("Error in memory allocation");
|
|
return -1;
|
|
}
|
|
size_t read_items = fread(baseband_buffer, 2, baseband_samples, baseband_in);
|
|
if (read_items != baseband_samples)
|
|
{
|
|
perror("Error in reading input file");
|
|
return -1;
|
|
}
|
|
fclose(baseband_in);
|
|
|
|
// Add DC bias
|
|
int16_t *filtered_buffer = (int16_t *) malloc(baseband_size);
|
|
for(size_t i = 0; i < baseband_samples; i++)
|
|
{
|
|
float elem = static_cast< float >(baseband_buffer[i]);
|
|
filtered_buffer[i] = static_cast< int16_t >((elem + 32768) / 16);
|
|
printf("%d\n", filtered_buffer[i]);
|
|
}
|
|
|
|
// Write back
|
|
FILE *baseband_out = fopen(argv[2], "wb");
|
|
fwrite(filtered_buffer, baseband_samples, 2, baseband_out);
|
|
fclose(baseband_out);
|
|
|
|
|
|
}
|