diff options
Diffstat (limited to 'gr-vocoder/lib/codec2/dump.c')
-rw-r--r-- | gr-vocoder/lib/codec2/dump.c | 629 |
1 files changed, 0 insertions, 629 deletions
diff --git a/gr-vocoder/lib/codec2/dump.c b/gr-vocoder/lib/codec2/dump.c deleted file mode 100644 index af966e5005..0000000000 --- a/gr-vocoder/lib/codec2/dump.c +++ /dev/null @@ -1,629 +0,0 @@ -/*---------------------------------------------------------------------------*\ - - FILE........: dump.c - AUTHOR......: David Rowe - DATE CREATED: 25/8/09 - - Routines to dump data to text files for Octave analysis. - -\*---------------------------------------------------------------------------*/ - -/* - All rights reserved. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License version 2.1, as - published by the Free Software Foundation. This program is - distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. -*/ - -#include "defines.h" -#include "comp.h" -#include "dump.h" -#include <assert.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <math.h> - -#ifdef __EMBEDDED__ -#include "gdb_stdio.h" -#define fprintf gdb_stdio_fprintf -#define fopen gdb_stdio_fopen -#define fclose gdb_stdio_fclose -#endif - -#ifdef DUMP -static int dumpon = 0; - -static FILE *fsn = NULL; -static FILE *fsw = NULL; -static FILE *few = NULL; -static FILE *fsw_ = NULL; -static FILE *fmodel = NULL; -static FILE *fqmodel = NULL; -static FILE *fpwb = NULL; -static FILE *fpw = NULL; -static FILE *frw = NULL; -static FILE *flsp = NULL; -static FILE *fweights = NULL; -static FILE *flsp_ = NULL; -static FILE *fmel = NULL; -static FILE *fphase = NULL; -static FILE *fphase_ = NULL; -static FILE *ffw = NULL; -static FILE *fe = NULL; -static FILE *fsq = NULL; -static FILE *fdec = NULL; -static FILE *fsnr = NULL; -static FILE *flpcsnr = NULL; -static FILE *fak = NULL; -static FILE *fak_ = NULL; -static FILE *fbg = NULL; -static FILE *fE = NULL; -static FILE *frk = NULL; -static FILE *fhephase = NULL; - -static char prefix[MAX_STR]; - -void dump_on(char p[]) { - dumpon = 1; - strcpy(prefix, p); -} - -void dump_off(){ - if (fsn != NULL) - fclose(fsn); - if (fsw != NULL) - fclose(fsw); - if (fsw_ != NULL) - fclose(fsw_); - if (few != NULL) - fclose(few); - if (fmodel != NULL) - fclose(fmodel); - if (fqmodel != NULL) - fclose(fqmodel); - if (fpwb != NULL) - fclose(fpwb); - if (fpw != NULL) - fclose(fpw); - if (frw != NULL) - fclose(frw); - if (flsp != NULL) - fclose(flsp); - if (fweights != NULL) - fclose(fweights); - if (flsp_ != NULL) - fclose(flsp_); - if (fmel != NULL) - fclose(fmel); - if (fphase != NULL) - fclose(fphase); - if (fphase_ != NULL) - fclose(fphase_); - if (ffw != NULL) - fclose(ffw); - if (fe != NULL) - fclose(fe); - if (fsq != NULL) - fclose(fsq); - if (fdec != NULL) - fclose(fdec); - if (fsnr != NULL) - fclose(fsnr); - if (flpcsnr != NULL) - fclose(flpcsnr); - if (fak != NULL) - fclose(fak); - if (fak_ != NULL) - fclose(fak_); - if (fbg != NULL) - fclose(fbg); - if (fE != NULL) - fclose(fE); - if (frk != NULL) - fclose(frk); - if (fhephase != NULL) - fclose(fhephase); -} - -void dump_Sn(float Sn[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fsn == NULL) { - sprintf(s,"%s_sn.txt", prefix); - fsn = fopen(s, "wt"); - assert(fsn != NULL); - } - - /* split across two lines to avoid max line length problems */ - /* reconstruct in Octave */ - - for(i=0; i<M/2; i++) - fprintf(fsn,"%f\t",Sn[i]); - fprintf(fsn,"\n"); - for(i=M/2; i<M; i++) - fprintf(fsn,"%f\t",Sn[i]); - fprintf(fsn,"\n"); -} - -void dump_Sw(COMP Sw[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fsw == NULL) { - sprintf(s,"%s_sw.txt", prefix); - fsw = fopen(s, "wt"); - assert(fsw != NULL); - } - - for(i=0; i<FFT_ENC/2; i++) - fprintf(fsw,"%f\t", - 10.0*log10(Sw[i].real*Sw[i].real + Sw[i].imag*Sw[i].imag)); - fprintf(fsw,"\n"); -} - -void dump_Sw_(COMP Sw_[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fsw_ == NULL) { - sprintf(s,"%s_sw_.txt", prefix); - fsw_ = fopen(s, "wt"); - assert(fsw_ != NULL); - } - - for(i=0; i<FFT_ENC/2; i++) - fprintf(fsw_,"%f\t", - 10.0*log10(Sw_[i].real*Sw_[i].real + Sw_[i].imag*Sw_[i].imag)); - fprintf(fsw_,"\n"); -} - -void dump_Ew(COMP Ew[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (few == NULL) { - sprintf(s,"%s_ew.txt", prefix); - few = fopen(s, "wt"); - assert(few != NULL); - } - - for(i=0; i<FFT_ENC/2; i++) - fprintf(few,"%f\t", - 10.0*log10(Ew[i].real*Ew[i].real + Ew[i].imag*Ew[i].imag)); - fprintf(few,"\n"); -} - -void dump_model(MODEL *model) { - int l; - char s[MAX_STR]; - char line[2048]; - - if (!dumpon) return; - - if (fmodel == NULL) { - sprintf(s,"%s_model.txt", prefix); - fmodel = fopen(s, "wt"); - assert(fmodel != NULL); - } - - sprintf(line,"%12f %12d ", model->Wo, model->L); - for(l=1; l<=model->L; l++) { - sprintf(s,"%12f ",model->A[l]); - strcat(line, s); - } - for(l=model->L+1; l<=MAX_AMP; l++) { - sprintf(s,"%12f ", 0.0); - strcat(line,s); - } - - sprintf(s,"%d\n",model->voiced); - strcat(line,s); - fprintf(fmodel,"%s",line); -} - -void dump_quantised_model(MODEL *model) { - int l; - char s[MAX_STR]; - char line[2048]; - - if (!dumpon) return; - - if (fqmodel == NULL) { - sprintf(s,"%s_qmodel.txt", prefix); - fqmodel = fopen(s, "wt"); - assert(fqmodel != NULL); - } - - sprintf(line,"%12f %12d ", model->Wo, model->L); - for(l=1; l<=model->L; l++) { - sprintf(s,"%12f ",model->A[l]); - strcat(line, s); - } - for(l=model->L+1; l<=MAX_AMP; l++) { - sprintf(s,"%12f ", 0.0); - strcat(line, s); - } - - sprintf(s,"%d\n",model->voiced); - strcat(line, s); - fprintf(fqmodel, "%s", line); -} - -void dump_phase(float phase[], int L) { - int l; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fphase == NULL) { - sprintf(s,"%s_phase.txt", prefix); - fphase = fopen(s, "wt"); - assert(fphase != NULL); - } - - for(l=1; l<=L; l++) - fprintf(fphase,"%f\t",phase[l]); - for(l=L+1; l<=MAX_AMP; l++) - fprintf(fphase,"%f\t",0.0); - fprintf(fphase,"\n"); -} - -void dump_phase_(float phase_[], int L) { - int l; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fphase_ == NULL) { - sprintf(s,"%s_phase_.txt", prefix); - fphase_ = fopen(s, "wt"); - assert(fphase_ != NULL); - } - - for(l=1; l<=L; l++) - fprintf(fphase_,"%f\t",phase_[l]); - for(l=L+1; l<MAX_AMP; l++) - fprintf(fphase_,"%f\t",0.0); - fprintf(fphase_,"\n"); -} - - -void dump_hephase(int ind[], int dim) { - int m; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fhephase == NULL) { - sprintf(s,"%s_hephase.txt", prefix); - fhephase = fopen(s, "wt"); - assert(fhephase != NULL); - } - - for(m=0; m<dim; m++) - fprintf(fhephase,"%d\t",ind[m]); - fprintf(fhephase,"\n"); -} - - -void dump_snr(float snr) { - char s[MAX_STR]; - - if (!dumpon) return; - - if (fsnr == NULL) { - sprintf(s,"%s_snr.txt", prefix); - fsnr = fopen(s, "wt"); - assert(fsnr != NULL); - } - - fprintf(fsnr,"%f\n",snr); -} - -void dump_lpc_snr(float snr) { - char s[MAX_STR]; - - if (!dumpon) return; - - if (flpcsnr == NULL) { - sprintf(s,"%s_lpc_snr.txt", prefix); - flpcsnr = fopen(s, "wt"); - assert(flpcsnr != NULL); - } - - fprintf(flpcsnr,"%f\n",snr); -} - -/* Pw "before" post filter so we can plot before and after */ - -void dump_Pwb(COMP Pwb[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fpwb == NULL) { - sprintf(s,"%s_pwb.txt", prefix); - fpwb = fopen(s, "wt"); - assert(fpwb != NULL); - } - - for(i=0; i<FFT_ENC/2; i++) - fprintf(fpwb,"%f\t",Pwb[i].real); - fprintf(fpwb,"\n"); -} - -void dump_Pw(COMP Pw[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fpw == NULL) { - sprintf(s,"%s_pw.txt", prefix); - fpw = fopen(s, "wt"); - assert(fpw != NULL); - } - - for(i=0; i<FFT_ENC/2; i++) - fprintf(fpw,"%f\t",Pw[i].real); - fprintf(fpw,"\n"); -} - -void dump_Rw(float Rw[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (frw == NULL) { - sprintf(s,"%s_rw.txt", prefix); - frw = fopen(s, "wt"); - assert(frw != NULL); - } - - for(i=0; i<FFT_ENC/2; i++) - fprintf(frw,"%f\t",Rw[i]); - fprintf(frw,"\n"); -} - -void dump_weights(float w[], int order) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fweights == NULL) { - sprintf(s,"%s_weights.txt", prefix); - fweights = fopen(s, "wt"); - assert(fweights != NULL); - } - - for(i=0; i<order; i++) - fprintf(fweights,"%f\t", w[i]); - fprintf(fweights,"\n"); -} - -void dump_lsp(float lsp[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (flsp == NULL) { - sprintf(s,"%s_lsp.txt", prefix); - flsp = fopen(s, "wt"); - assert(flsp != NULL); - } - - for(i=0; i<10; i++) - fprintf(flsp,"%f\t",lsp[i]); - fprintf(flsp,"\n"); -} - -void dump_lsp_(float lsp_[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (flsp_ == NULL) { - sprintf(s,"%s_lsp_.txt", prefix); - flsp_ = fopen(s, "wt"); - assert(flsp_ != NULL); - } - - for(i=0; i<10; i++) - fprintf(flsp_,"%f\t",lsp_[i]); - fprintf(flsp_,"\n"); -} - -void dump_mel(int mel[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fmel == NULL) { - sprintf(s,"%s_mel.txt", prefix); - fmel = fopen(s, "wt"); - assert(fmel != NULL); - } - - for(i=0; i<10; i++) - fprintf(fmel,"%d\t",mel[i]); - fprintf(fmel,"\n"); -} - -void dump_ak(float ak[], int order) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fak == NULL) { - sprintf(s,"%s_ak.txt", prefix); - fak = fopen(s, "wt"); - assert(fak != NULL); - } - - for(i=0; i<=order; i++) - fprintf(fak,"%f\t",ak[i]); - fprintf(fak,"\n"); -} - -void dump_ak_(float ak_[], int order) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fak_ == NULL) { - sprintf(s,"%s_ak_.txt", prefix); - fak_ = fopen(s, "wt"); - assert(fak_ != NULL); - } - - for(i=0; i<=order; i++) - fprintf(fak_,"%f\t",ak_[i]); - fprintf(fak_,"\n"); -} - -void dump_Fw(COMP Fw[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (ffw == NULL) { - sprintf(s,"%s_fw.txt", prefix); - ffw = fopen(s, "wt"); - assert(ffw != NULL); - } - - for(i=0; i<256; i++) - fprintf(ffw,"%f\t",Fw[i].real); - fprintf(ffw,"\n"); -} - -void dump_e(float e_hz[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fe == NULL) { - sprintf(s,"%s_e.txt", prefix); - fe = fopen(s, "wt"); - assert(fe != NULL); - } - - for(i=0; i<500/2; i++) - fprintf(fe,"%f\t",e_hz[i]); - fprintf(fe,"\n"); - for(i=500/2; i<500; i++) - fprintf(fe,"%f\t",e_hz[i]); - fprintf(fe,"\n"); -} - -void dump_sq(float sq[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fsq == NULL) { - sprintf(s,"%s_sq.txt", prefix); - fsq = fopen(s, "wt"); - assert(fsq != NULL); - } - - for(i=0; i<M/2; i++) - fprintf(fsq,"%f\t",sq[i]); - fprintf(fsq,"\n"); - for(i=M/2; i<M; i++) - fprintf(fsq,"%f\t",sq[i]); - fprintf(fsq,"\n"); -} - -void dump_dec(COMP Fw[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (fdec == NULL) { - sprintf(s,"%s_dec.txt", prefix); - fdec = fopen(s, "wt"); - assert(fdec != NULL); - } - - for(i=0; i<320/5; i++) - fprintf(fdec,"%f\t",Fw[i].real); - fprintf(fdec,"\n"); -} - -void dump_bg(float e, float bg_est, float percent_uv) { - char s[MAX_STR]; - - if (!dumpon) return; - - if (fbg == NULL) { - sprintf(s,"%s_bg.txt", prefix); - fbg = fopen(s, "wt"); - assert(fbg != NULL); - } - - fprintf(fbg,"%f\t%f\t%f\n", e, bg_est, percent_uv); -} - -void dump_E(float E) { - char s[MAX_STR]; - - if (!dumpon) return; - - if (fE == NULL) { - sprintf(s,"%s_E.txt", prefix); - fE = fopen(s, "wt"); - assert(fE != NULL); - } - - fprintf(fE,"%f\n", 10.0*log10(E)); -} - -void dump_Rk(float Rk[]) { - int i; - char s[MAX_STR]; - - if (!dumpon) return; - - if (frk == NULL) { - sprintf(s,"%s_rk.txt", prefix); - frk = fopen(s, "wt"); - assert(frk != NULL); - } - - for(i=0; i<P_MAX; i++) - fprintf(frk,"%f\t",Rk[i]); - fprintf(frk,"\n"); -} - -#endif |