📄 rel40.me
字号:
.npThe programs \fIframe\fP, \fIwindow\fP, \fIpwr\fP, and \fIzcross\fPhave all been changed to no longer copy all of the input fields to theoutput. Now, the output file contains a single field in each case(frame of data, windowed frame, power, zero crossing rate) \- theinformation computed by the particular program. If combinedinformation is needed, use \fImergerfea\fP. These programs have alsobeen fixed to handle correctly various cases of tagged and segmentlabelled files. .npA new option (\fB-a\fP) was added to \fIcopysd\fP to permit adding aconstant to the data before writing it. Together with \fB-s\fP(scale), this means that \fIcopysd\fP can both scale and shift whencopying. Note that \fIfea_func\fP can also be used (now that sampleddata files are FEA files.) Also, the \fB-d\fP option on \fIcopysd\fPhas been extended to support conversion to any data type. Genericheader items in the output file record the scale and additionconstants. .np\fIsetrange\fP has been changed to work on arbitrary FEA files.\fIsetrange\fP accepts a range specified in seconds, transforms thisto a range of records, and writes the results to ESPS Common (in termsof the parameters \fIstart\fP and \fInan\fP) for use by otherprograms. The revised version of \fIsetrange\fP uses the generic header items start_time and record_freq in performing thetransformation. \fIsetrange\fP will still work on old-style SD files..np\fIbtosps\fP has been generalized so that it will convert headerlesssampled data of any ESPS data type to ESPS FEA_SD format; thisincludes complex data. Also, \fIbtosps\fP will now convertmulti-channel data. New options include \fB-t\fP (input data type),\fB-n\fP (number of channels), \fB-T\fP (start time), \fB-c\fP (ASCIIcomment), \fB-C\fP (ASCII comment file), and \fB-x\fP (debug level).For real (non-complex) data that is not on a pipe, \fIbtosps\fP willalso determine the maximum absolute value and write the result in thegeneric header item \fImax_value\fP. The conversions provided by\fIbtosps\fP can also be achieved using \fIaddfeahd\fP(1\-\s-1ESPS\s+1), \fIaddgen\fP (1\-\s-1ESPS\s+1), and \fIsetmax\fP(1\-\s-1ESPS\s+1), but \fIbtosps\fP is more convenient in the case ofsampled data. Note that the \fB-s\fP option (number of leading bytesto skip) has been changed to \fB-S\fP, and that a comment must now besupplied for record keeping purposes. .np\fIaddfea\fP has a new option (\fB-T\fP) to permit the explicitsetting of a FEA subtype code in the output FEA file. This permitsconversion, for example, of ASCII data to multi-channel FEA_SD. Inprinciple, you could go from ASCII to FEA_ANA, etc. .np\fImake_sd\fP has a new option (\fB-S\fP) to set the sampling rate ofthe output FEA_SD file. Also, \fImake_sd\fP was modified to preservethe data type of the field specified in the input file. .np\fIfea_deriv\fP has a new option (\fB-T\fP) to set a FEA subtype codein the output file. Another new option (\fB-t\fP) causes tags to becopied from the input to the output. .np\fIxmcd\fP and \fImcd\fP were fixed to remove the temporary file whenkilled. .np The previous version of \fIfft_filter\fP ignored any rangespecification; this has been fixed..npThe parameter prompts for \fIauto\fP (when via \fIeparam\fP) havebeen improved. .np\fIespsenv\fP has been updated to add ESPS_EDR to the environment variables reported. .np\fIAddgen\fP now adds the user's name to the comment put in the outputheader. .npAn option (\fB-S\fP) was added to \fItofspec\fP to disable scaling. Input data can now be copied to the output FEA_SPEC file (e.g., fordisplay using \fIwaves\fP+) without scaling to an output range. .npThe order of the file parameters in \fIzero_pole\fP and \fIatofilt\fPhave been changed so that the order is input file followed by outputfile (the general convention for ESPS). This will break scripts thatuse the old versions..npThe possible functions to be applied by \fIfeafunc\fP was expanded toinclude squaring (sqr). Note that, because \fIfeafunc\fP allowsspecification of the output file type, it can be used to transform thedata type of any FEA field (the only restriction is that it will notcross the boundary between complex and non-complex; e.g., you can gofrom DOUBLE_CPLX to BYTE_CPLX but not from DOUBLE_CPLX to BYTE). .npThe X version of \fIimage\fP now parses the standard option for Xgeometry. .npUser-level programs implemented as shell scripts have been modifiedto use full paths when calling ESPS programs (examples include\fIsf_convert, plotsgram, plotsd, \fPetc.). This avoids problems thatoccur when there are name conflicts with local programs..npMan pages are now included for \fIemakecats\fP and \fImakewhatis\fP. .npDefault parameter files for Paddfea \fIdspsgram, fft, refcof, testsd,transpec, sgram,\fP and \fIbtosps\fP have been revised to includeparameter choices and limits..npA new option on \fItofspec\fP reverses the order of elements in thefield. This is useful when converting files for display in\fIwaves\fP+, since the effect is turn turn the display upside down..npThe \fB-r\fP for \fIlpcsynt\fP has been changed to the ESPS conventionof specifying the input record range..sh 1 "ESPS LIBRARY ADDITIONS AND CHANGES".sh 2 "Changes and Additions to Support Machine-Independent I/O (MIIO)".lpTwo items were added to the universal portion of the ESPS headerstructure: \fIedr\fP and \fImachine_code\fP. The former indicateswhether the file is stored in EDR or NATIVE format. The latterindicates the machine type that produced the file. See ESPS(5\-\s-1ESPS\s+1)..lpThe information contained in the \fIedr\fP and \fImachine_code\fPheader items actually is stored in a short preamble that comprises thefirst few bytes of an ESPS file. The \fIread_header\fP routine firstreads the preamble (which is always stored in EDR format), determineswhether the file is an ESPS file, determines the file format (EDR orNATIVE), and then either exits (if not an ESPS file) or reads the restof the information for the ESPS header structure. Users should keepin mind that the C structure shown in the man page ESPS(5\-\s-1ESPS\s+1) (and defined in header.h) does \fInot\fP correspondto the actual format stored in the file, which is why headers I/Omust be done with \fIread_header\fP and \fIwrite_header\fP. .lpWhen a new header structure is created (by \fInew_header\fP or\fIcopy_header\fP), the \fIedr\fP flag in the header is set to 1 (EDRformat) if the user has a UNIX environment variable ESPS_EDR set to"on"; otherwise, \fIedr\fP is set to 0 (NATIVE mode). This initialsetting can be changed by programs (e.g., in some cases one might wantto have a command-line option to force a particular format regardlessof the environment variable) before calling the I/O routines. Theformat used in writing the header is determined by the value of the\fIedr\fP flag when the header is passed to \fIwrite_header\fP.Similarly, the format of file records is determined by the value of the \fIedr\fP flag when the header is passed to (for example)\fIput_fea_rec\fP. (Yes, you can get into serious trouble if you foolaround with inconsistent header structures.) .lpAll of the library routines that support header and record I/O weremodified to support MIIO, including \fIread_header, write_header,get_fea_rec,\fP and \fIput_fea_rec.\fP. The \fIget\fP and \fIput\fProutines for the various non-FEA file types were also modified (i.e.,for SD, FILT, SCBK, and SPEC files). The I/O routines for the variousFEA subtypes (e.g., FEA_ANA, FEA_SPEC, etc.) did not have to bemodified since they work by calling \fIget_fea_rec\fP and\fIput_fea_rec\fP..sh 2 "Changes and Additions to Support Complex Data" .npAll of the FEA support functions have been generalized to support thenew complex data types BYTE_CPLX, SHORT_CPLX, LONG_CPLX, FLOAT_CPLX,and DOUBLE_CPLX. In particular, the following have been generalized: .sp .5.nf.ta 1.5i \fIadd_fea_fld\fP \- add definition of new field to ESPS FEA file \fIallo_fea_rec\fP\- allocate memory for an ESPS FEA file record \fIcopy_fea_rec\fP \- copy data from one ESPS FEA record to another \fIget_fea_rec\fP \- get the next data record from an ESPS FEA data file \fIprint_fea_rec\fP \- print an ESPS FEA data record \fIprint_fea_recf\fP \- print fields in an ESPS FEA data record \fIput_fea_rec\fP \- put an ESPS FEA data record onto the file \fIget_fea_siz\fP \- get the size information for a ESPS FEA file field.fiEach complex type has a real and an imaginary part of thecorresponding integer or floating type. For details see the FEA manpage FEA (5\-\s-1ESPS\s+1)..npThe following new functions support the processing of complex FEA files:.sp .5.nf.ta 1.5i \fIis_file_complex\fP \- does file contain any complex data types \fIis_field_complex\fP \- is data type of field complex \fIis_type_complex\fP \- does type code represent complex data.fi.npA real-part addition (\fIrealadd\fP) function was added to thefunctions that support complex arithmetic (see \fIcomplex\fP(3\-\s-1ESPS\s+1). .npVarious support functions that operate on arrays of different datatypes have also been generalized to support the complex types, including:.sp .5.nf.ta 1.5i \fIarr_alloc\fP \- allocate storage indexed as multidimensional array \fImarg_index\fP \- allow indexing of allocated storage as multidimensional array \fIarr_free\fP \- free storage allocated by arr_alloc or marg_index.fi.npThe following signal FFT functions have been added to support complexprocessing: .sp .5.nf.ta 1.5i \fIget_cfft\fP \- Compute fast Fourier transform of a FLOAT_CPLX data sequence. \fIget_cfftd\fP \- Compute fast Fourier transform of a DOUBLE_CPLX data sequence. \fIget_cfft_inv\fP \- Compute inverse fast Fourier transform of FLOAT_CPLX data \fIget_cfftd_inv\fP \- Compute inverse fast Fourier transform of DOUBLE_CPLX data.fi.sh 2 "Changes and Additions to Support FEA_SD" .npThe usual access functions have been provided for FEA_SD: .sp .5.nf.ta 1.5i \fIinit_feasd_hd\fP \- initialize a FEA file header for subtype FEA_SD \fIallo_feasd_recs\fP \- allocate memory for FEA_SD file records \fIget_feasd_recs\fP \- get data records from an ESPS FEA_SD data file \fIget_feasd_orecs\fP \- get overlapping data from an ESPS FEA_SD data file \fIput_feasd_recs\fP \- write data records to an ESPS FEA_SD file.fi.sp .5Note that FEA_SD supports independent specification of the data typestored in the file and the data type stored in memory. (This is afeature of the old-style SD file type that we have preserved.) Thus,one specifies the desired in-memory type for an array of FEA_SDrecords when allocating via \fIallo_feasd_recs\fP, and the\fIget_feasd_recs\fP or \fIget_feasd_orecs\fP take care of anynecessary conversions on input. .np\fIeopen\fP (ESPS file, read header, and check type) was modified sothat, if a FEA_SD header is requested when an old-style SD file isread, the SD header is converted to a FEA_SD header and returned.This change makes it trivial to convert many programs from SD toFEA_SD (provided that they were written using \fIeopen\fP). Bychanging a call like.nf.ft CW in_file = eopen("filter", argv[optind++], "r", FT_SD, NONE, &ih, &fpin);\fRto\fP.ft CW in_file = eopen("filter", argv[optind++], "r", FT_FEA, FEA_SD, &ih, &fpin);.fi.ft LRthe revised program will not only read the new FEA_SD files, but itwill continue to read the old-style SD files. For more informationabout conversions, see the new document "FEA_SD Files \- Feature Files for Sampled Data in ESPS"..npTo further support the conversion of old programs, the following I/Oroutines for SD files were modified so that they also work on FEA_SDfiles..sp .5.nf.ta 1.25i \fIget_sd_recd\fP \- get data from an ESPS sampled-data file in DOUBLE format \fIget_sd_recf\fP \- get data from an ESPS sampled-data file in FLOAT format \fIget_sd_recs\fP \- get data from an ESPS sampled-data file in SHORT format \fIget_sd_orecd\fP \- get overlapping data from an ESPS SD file in DOUBLE format \fIget_sd_orecf\fP \- get overlapping data from an ESPS SD file in FLOAT format \fIget_sd_orecs\fP \- get overlapping data from an ESPS SD file in SHORT format \fIput_sd_recd\fP \- put data onto an ESPS sampled-data file from DOUBLE data \fIput_sd_recf\fP \- put data onto an ESPS sampled-data file from FLOAT data \fIput_sd_recs\fP \- put data onto an ESPS sampled-data file from SHORT data \fIget_sd_type\fP \- get the type of data in an ESPS sampled-data (FEA_SD or SD) file.fi.sp .5That is, if these routines are called with a FEA_SD header, they willdo the right thing (assuming that the FEA_SD header properly describesthe data in the file). In particular, suppose an existing SD program opens files via \fIeopen\fP and does I/O via the foregoing functions.Then, if the calls to \fIeopen\fP are modified as described above,the I/O calls need not be modified \- they will work regardless ofwhether the input file is SD or FEA_SD. .sh 2 "Changes and Additions to Support Enhanced Parameter Processing" .lpThe syntax of ESPS parameter files has been extended to includeoptional limitations on a parameter's value. Two cases are supported:(1) a list of discrete choices for the parameter (all data types); (2)a minimum and maximum value for the parameter (numeric data types).The new information is added to the symbol table constructed by\fIread_params\fP (3\-\s-1ESPS\s+1) and is made accessible to userprograms by means of access functions. The limitations are notenforced by the lowest level ESPS parameter routines (e.g., theexisting \fIgetsym\fP() routines have not been modified). Higherlevel functions and programs can choose whether or not to exploit theinformation and how to do so. For example, the new \fIxprompt\fP(1\-\s-1ESPS\s+1) program enforces the parameter limitations if theyare given. .lpThe following functions have been added to support parameter fileprocessing:.sp .5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -