📄 intro.doc
字号:
INTRODUCTION TO ESPS page 13 The psps (1-ESPS) listing for a file processed as above will show the item symbolically, i.e.: . . . filt_type: BAND_PASS . . . Also, programs that read a file with such a generic item defined in the header can refer to the contents symbolically, as in the follow- ing: struct header *hd; short filter_class; . . . filter_class = *(short *) get_genhd("filt_type", hd); . . . switch (fitler_class) { case LOW_PASS: . . . break; case HIGH_PASS: . . . break; case BAND_PASS: . . . break; case MISC: . . . break; default: ERROR_EXIT("invalid filter type encountered"); } Note that one can also add generic header items to existing files by means of the user-level program addgen (1-ESPS). 7 .2 . ESPS Record Structures The ESPS header is followed by a set of fixed-length data records. When any record is read into memory (through use of an ESPS library routine), it is stored as a C structure that is documented in the relevant Section 5 manual page of the ESPS Manual. As is the case for file headers, programmers need not be concerned with the actual format of ESPS data records. For example, suppose that the variable scbkrec is pointer to a SCBK file record (each record contains a scalar quant- ization codebook plus related design information). Then the final distortion value for that codebook and the population of the ith code- word are referred to as scbkrec->final_dist Version 3.6 ERL 1/22/93 INTRODUCTION TO ESPS page 14 and scbkrec->final_pop[i] respectively (see SCBK (5-ESPS)). This symbolic form of reference for ESPS data records also applies to FEA files. For example, if anarec is a pointer to a FEA_ANA file record, the ith filter pole in that record is referred to as anarec->filt_poles[i] (see FEA_ANA (5-ESPS). As mentioned earlier, users can define their own FEA file sub-types and extend existing subtypes. New fields in FEA file records are defined through use of add_fea_fld (3-ESPS), which creates a new field with a given name size, numerical type, etc. The new fields are accessed by means of of get_fea_ptr (3-ESPS), which returns a pointer to a field with a given name from a given record. 7 .3 . The ESPS Library To support the writing of new user-level ESPS programs, the ESPS library contains various routines for processing ESPS headers, for processing ESPS data records, and for performing various signal pro- cessing functions. At present, there are over 110 routines in the library. A full ESPS lint library is included so that ESPS programs can be fully checked with the standard UNIX lint(1) utility for C program checking. As a further aid to programmers, echeck (3-ESPS) looks up entries in the ESPS lint library and prints the proper calling sequence. For emacs users, a mock-lisp file provides for echeck use from within emacs. The scripts emake (1-ESPS), ecc (1-ESPS), and elint (1-ESPS) facilitate compiling and checking programs under ESPS (for details, see.[5]) Here are a few examples of functions in the ESPS library: 7 .3 .1 . Signal Processing Support Library Functions analyze compute prediction error filter and reflection coefficients block-filterfilter a data array convolv convolution of polynomials or auto-correlations covar compute reflection coefficients with covariance method fdbk_laticfeedback filtering with lattice form feedbk_filfeedback filtering with transversal form gauss compute Gaussian random numbers get_auto compute auto-correlation coefficients get_burg compute reflection coefficients with Burg or modified Burg method get_fft compute fast Fourier transform hamm_dec decode (8,4) Hamming code hamm_enc encode with (8,4) Hamming code Version 3.6 ERL 1/22/93 INTRODUCTION TO ESPS page 15 interp_filtperform interpolation filtering is_dist_tdcompute Itakura-Saito distortion pc_to_lsfconvert prediction coefficients to line spectrum frequencies rand_intnrsample without replacement from uniformly distributed integers refl_to_filtconvert reflection coefficients to filter coefficients remove_dcremove DC, using exponential weighting vqdesign design a full-search vector quantization codebook 7 .3 .2 . File Support Library Functions add_comment adds a string to the comment field of an ESPS header add_fea_fld add a new field to data record in a FEA file add_genhd adds a generic header item to a ESPS header add_source_fileadd the header of a source file to an ESPS header copy_header copies an ESPS header to a new header genhd_list returns a list of defined generic header items get_cmd_line returns pointer to string containing program's command line get_fea_fld returns pointer to named field in a FEA record get_genhd returns pointer to named generic header item get_spec_rec get next spectral record from ESPS SPEC file get_sym get a parameter value after read_params called new_header create new ESPS file header print_fea_recprints a FEA file record put_fea_rec writes a FEA file record put_sym put value in ESPS common file range_switch parse the argument to a command-line range switch read_header read an ESPS file header read_params read the parameters in ESPS parameter or common file skiprec skip records in ESPS file write_header write an ESPS file header 8 . EXAMPLE USER-LEVEL ESPS PROGRAMS This section lists some user-level ESPS programs of general interest. Note that the entire ESPS Manual is stored on-line. The manual pages can be viewed with the eman (1-ESPS) command, which is an ESPS version of the UNIX man command. Eman includes the -k option to search the manual for programs whose one-line descriptions include a given key- word. 8 .1 . Conversion and Related Support Programs addfea adds a FEA file field from ASCII data addfeahd adds a FEA file header to binary data addgen adds generic header item to ESPS file header atofilt convert ASCII file to FILT file atosps converts ASCII output to ESPS file (see spstoa) bhd behead an ESPS file eitem prints item from ESPS file header ils_sps converts ILS sampled data file to ESPS SD file Version 3.6 ERL 1/22/93 INTRODUCTION TO ESPS page 16 pplain print values from ESPS files in "plain" ASCII format spstoa convert ESPS file to machine-independent ASCII format testsd make SD file with sine wave, pulses, Gaussian noise, or from ASCII data 8 .2 . Signal I/O and Processing addsd adds SD files with scaling ana perform speech analysis from SD file me_spec compute spectra (FEA_SPEC file) from FEA_ANA file distort compute distortion measures between ESPS files classify classify records in FEA files fea_statscompute statistics from FEA files fft produces FEA_SPEC file by doing fft on SD file filter performs digital filtering on SD file lloydcbk design a scalar quantizer using Lloyd's algorithm notch_filtdesign a notch filter play play portions of SD files playtest step through an "A-B" listening test with control options randplay create play scripts for randomized "A-B" listening comparisons record digitize data using Masscomp EF-12M refcof compute reflection coefficients from sampled data (FEA_ANA output) rem_dc remove DC component from SD file sdcomp listening program for detailed comparison of two sampled data files spectranstransform FEA_ANA from one spectral representation to another stats computes statistics from ESPS files synt synthesize speech from ANA file testsd make SD file with sine wave, pulses, Gaussian noise, or from ASCII data vqdes design a vector quantization codebook from a FEA file vq encode FEA file with a vector quantization codebook wmse_filtdesign FIR filter using weighted mean square error criterion iir_filt design recursive filter 8 .3 . File Manipulation and Plotting aplot plot an array of ASCII data comment displays or adds comments in the header of an ESPS file copysd copy selected portions of SD files to a new file fea_edit edit a FEA file in ASCII form genplot plot elements from any ESPS file in precise, multiline format histogramsort data into bins for plotting histograms (screen, Imagen, or Tektronix) mlplot plot SD file in precise, multiline format (screen, Imagen, or Tektronix) plotsd plot sampled data (screen, Imagen, or Tektronix) plotspec plot spectra from FEA_SPEC file (screen, Imagen, or Tektronix) psps print ESPS file headers and records range select a range from a graphics plot select select FEA records that satisfy queries scatplot make a scatter plot Version 3.6 ERL 1/22/93 INTRODUCTION TO ESPS page 17 9 . FUTURE CHANGES Everything discussed in the foregoing is available in ESPS Version 3.3. In this section, we mention some of the things that will added in later versions. Current ESPS FEA files are restricted to fixed length records, one record type per file, with record fields containing only the machine primitive data types (integer, float, double, character). All of these restrictions should be relaxed. We will provide support for engineering units, so that plotting and printing programs can display data in terms of externally relevant units (volts, pressure, etc.). We will provide some additional facilities to support ESPS program- ming. For example, there will be a program for the semi-automatic generation of new FEA file sub-types, and there will be a program for the automatic generation of C skeletons for user-level programs. The ESPS parameter file format might be simplified so that users didn't have to specify types (they don't on command lines). Also, ESPS user-level programs will be modified to take all parameters from the parameter file (with possible command-line overrides) so that every program can be run interactively using eparam (1-ESPS) (some programs in Version 3.3 require command line arguments for some or all parameters). Another significant enhancement will be provided by an interface between ESPS and a UNIX relational data base system. This interface will create data base records from ESPS file headers so that the data base system can be used to manage sets of ESPS files. 10 . REFERENCES 1. Entropic Signal Processing System Version 3.0 User's Manual. 2. "Data Files in the Entropic Processing System," , ETM-S-86-13. 3. "Parameter and Common Files in ESPS," , ETM-S-86-12:jtb 1.2 11/12/86. 4. "Guidelines for Implementing ESPS Feature File Subtypes," , ETM- S-86-25. 5. "Entropic Signal Processing System Programming Guidelines," , ETM-S-86-14 . 6. "ESPS APPLICATIONS NOTE: Filtering Sampled Data," . 7. "ESPS APPLICATIONS NOTE: File Headers and Record Keeping in ESPS," . Version 3.6 ERL 1/22/93 INTRODUCTION TO ESPS page 18 Version 3.6 ERL 1/22/93
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -