mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 17:38:59 +00:00
git status -u, learn something new every day.
This commit is contained in:
54
libs/libcodec2/unittest/polar2rect.c
Normal file
54
libs/libcodec2/unittest/polar2rect.c
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
polar2rect.c
|
||||
David Rowe 28 July 2013
|
||||
|
||||
Convert a file of sparse phases in polar (angle) format to a file in rect
|
||||
format.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
typedef struct {
|
||||
float real;
|
||||
float imag;
|
||||
} COMP;
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
FILE *fpolar;
|
||||
FILE *frect;
|
||||
float polar;
|
||||
COMP rect;
|
||||
|
||||
if (argc != 3) {
|
||||
printf("usage: %s polarFile rectFile\n", argv[0]);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
fpolar = fopen(argv[1], "rb");
|
||||
assert(fpolar != NULL);
|
||||
frect = fopen(argv[2], "wb");
|
||||
assert(frect != NULL);
|
||||
|
||||
while (fread(&polar, sizeof(float), 1, fpolar) != 0) {
|
||||
if (polar == 0.0) {
|
||||
/* this values indicates the VQ training should ignore
|
||||
this vector element. It's not a valid phase as it
|
||||
doesn't have mangitude of 1.0 */
|
||||
rect.real = 0.0;
|
||||
rect.imag = 0.0;
|
||||
}
|
||||
else {
|
||||
rect.real = cos(polar);
|
||||
rect.imag = sin(polar);
|
||||
}
|
||||
fwrite(&rect, sizeof(COMP), 1, frect);
|
||||
}
|
||||
|
||||
fclose(fpolar);
|
||||
fclose(frect);
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user