WO2010119963A1 - Src device and method based on the extraction and synthesis of an impulse response - Google Patents

Src device and method based on the extraction and synthesis of an impulse response Download PDF

Info

Publication number
WO2010119963A1
WO2010119963A1 PCT/JP2010/056876 JP2010056876W WO2010119963A1 WO 2010119963 A1 WO2010119963 A1 WO 2010119963A1 JP 2010056876 W JP2010056876 W JP 2010056876W WO 2010119963 A1 WO2010119963 A1 WO 2010119963A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
sampling frequency
original data
new data
discrete
Prior art date
Application number
PCT/JP2010/056876
Other languages
French (fr)
Japanese (ja)
Inventor
栄樹 大嶋
Original Assignee
株式会社ユナイテッドワークス
株式会社エイル
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ユナイテッドワークス, 株式会社エイル filed Critical 株式会社ユナイテッドワークス
Priority to JP2011509371A priority Critical patent/JP5774475B2/en
Publication of WO2010119963A1 publication Critical patent/WO2010119963A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures

Definitions

  • the present invention relates to an apparatus and method for sampling rate conversion (SRC) for obtaining new data having different specifications such as sampling frequency by conversion from discrete data.
  • SRC sampling rate conversion
  • sampling frequency rate conversion method in a broad sense applicable to conversion of sampling frequency rate of audio (audio), resolution conversion of image or frame rate conversion, FIR composed of finite number of taps in digital signal processing of sound or image A filter (Finite Impulse Response Filter) is known (for example, see Patent Document 1).
  • an output is generated by a plurality of FIR filters corresponding to a plurality of converted frequencies (see Patent Document 2).
  • the impulse response that constitutes the FIR filter is fixedly determined, and linear interpolation is performed between two samples obtained by raising the sampling frequency rate to, for example, an integral multiple.
  • the frequency conversion rate which is a ratio of conversion from one frequency to a new frequency, conversion may take time and it may be difficult to speed up, or the quality of converted data may be degraded.
  • SRC sampling frequency rate conversion
  • sampling frequency rate conversion means one in a broad sense unless otherwise described, and includes various data conversion processes such as resolution conversion or frame rate conversion for images etc. in addition to sampling frequency rate conversion in a narrow sense. It shall be
  • the apparatus for sampling frequency rate conversion is (a) responsive to the time interpolation position to provide a conversion value at a time interpolation position corresponding to new data to be obtained by conversion from discrete original data.
  • coefficient preparation means for preparing filter coefficients based on discrete impulse response functions
  • filter coefficients prepared in coefficient preparation means And calculating means are included in preparation of the filter coefficient as described above by the coefficient preparation means.
  • the coefficient preparation unit prepares filter coefficients based on the discrete impulse response function for giving a conversion value at a time interpolation position corresponding to new data, and the data calculation unit Since the conversion value at the time interpolation position is directly calculated by the convolution operation of the original data using the coefficient, the original data is converted in a very high speed and high quality state and the specification is different regarding the sampling frequency rate It becomes possible to obtain new data.
  • coefficient preparation means prepares a coefficient table as a filter coefficient based on a discrete impulse response function
  • data calculation means comprises each data of the coefficient table and the original.
  • a converted value is calculated by convolution with data.
  • the conversion value at a series of time interpolation positions set corresponding to the difference between the sampling period for the original data and the sampling period for the new data is provided by the coefficient preparation means.
  • Determine the discrete impulse response function to give sampling frequency from original data set to a specific sampling frequency to new data set to another sampling frequency by a coefficient filter provided based on a group of discrete impulse response functions determined for each time interpolation position Rate conversion is possible.
  • an arbitrary wave number band is selected by setting filter coefficients based on a discrete impulse response function.
  • the filter coefficient is set so that high frequency bands above a predetermined value can be cut off. In this case, generation of noise accompanying data conversion can be suppressed.
  • the coefficient preparation means uses, as a reference for the cutoff of the high frequency band having a predetermined value or more, a low frequency among the sampling frequency of the original data and the sampling frequency of the new data. In this case, generation of noise due to aliasing and aliasing noise can be suppressed in frequency conversion.
  • the coefficient preparation means prepares a filter coefficient based on a discrete impulse response function according to a change of a predetermined parameter corresponding to the difference between the discrete point of the original data and the time interpolation position.
  • the filter coefficient based on the discrete impulse response function functions as a non-fixed filter that vibrates or fluctuates due to a change of a predetermined parameter.
  • the coefficient preparation means corrects the filter coefficient based on the discrete impulse response function and the window function.
  • the window function can be applied to a discrete impulse response function.
  • the coefficient preparation means further comprises a normalization means for normalizing the filter coefficients based on the discrete impulse response function.
  • the information to be processed can be made more reproducible by performing the normalization process.
  • new data is generated based on a function restored from the original data.
  • an arbitrary value in theory, not only rational numbers but also irrational numbers
  • substitution of a time interpolation position corresponding to new data It is possible to obtain new data close to the exact theoretical value.
  • the function restored from the original data is the function Y (t) at time t, T is the sampling period of the original data, and Y (nT) is the original
  • f s be the sampling frequency of the original data
  • f c be the smaller of the sampling frequency of the original data and the sampling frequency of the new data.
  • f s be the sampling frequency of the original data
  • f c be the smaller of the sampling frequency of the original data and the sampling frequency of the new data.
  • new data sets T b as a sampling period of new data
  • Pr a predetermined parameter corresponding to the difference between the discrete points of the original data and the time interpolation position.
  • Pr n 0 T-m 0 T b by n 0 and m 0 is an integer
  • it can be expressed using an approximate expression using a window function with n being a finite value.
  • new data is generated by a non-fixed filter that vibrates or fluctuates due to the change or change of the predetermined parameter.
  • the method of sampling frequency rate conversion (a) provides a conversion value at a time interpolation position corresponding to new data to be obtained by conversion from discrete original data In order to prepare the filter coefficients based on the discrete impulse response function set discretely, (b) using the filter coefficients prepared in the coefficient preparation step, the time interpolation position is obtained by convolution of the original data And a data calculating step of calculating a conversion value in
  • the coefficient preparation step filter coefficients based on a discrete impulse response function for providing a converted value at a time interpolation position corresponding to new data are prepared, and in the data calculation step Since the conversion value at the time interpolation position is calculated by the convolution operation of the original data using the coefficient, the original data can be converted at high speed to obtain new data in a spectrally high quality state It becomes possible.
  • new data a T, a sampling period of the original data, a T b, the sampling period of the new data, Y a (nT), then the original data, f
  • s be the sampling frequency of the original data
  • f c be the smaller of the sampling frequency of the original data and the sampling frequency of the new data
  • Pr be the discrete points of the original data and the time interpolation position
  • n n 0 T-m 0 T b
  • it can be expressed using an approximate expression using a window function with n being a finite value. In this case, generation of noise due to aliasing is suppressed in conversion, and new data is generated by a non-fixed filter that vibrates or fluctuates due to a change in the predetermined parameter.
  • FIG. 1 It is a block diagram which shows typically the structure of the apparatus of sampling frequency rate conversion which concerns on 1st Embodiment.
  • (A) to (C) are diagrams for explaining generation of new data from original data by a device for sampling frequency rate conversion. It is a figure which shows notionally the preparation process of the signal by the apparatus of sampling frequency rate conversion. It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function.
  • the signal processing apparatus 10 shown in FIG. 1 is an apparatus for sampling frequency rate conversion which converts an original data string and outputs a new data string having different specifications with respect to a sampling rate, and performs main control CPU 20
  • a ROM 30 for storing various programs such as processing programs and other information
  • a RAM 40 for temporarily storing and storing information such as sample data to be processed, and data received from the outside
  • An input interface unit 51 and an output interface unit 52 for transmitting data to the outside are provided.
  • n and m are integers.
  • FIGS. 2A to 2C schematically show how the signal processing apparatus 10 generates a new data string Y (mT b ) from the original data string Y (nT). That is, from the original discrete data string Y (nT) schematically shown in FIG. 2 (A), the frequency conversion shown in FIG. 2 (C) is carried out through the data processing step of FIG. 2 (B) described later. New discrete data sequence Y (mT b ) is created.
  • FIG. 2 (A) ⁇ 2 (C ) both the data sequence Y (nT), Y period T of (mT b), T b (i.e. the frequency f s, f b) are different from each other ing.
  • Interpolation for sampling rate conversion is possible by the method of analog wave reproduction by this function.
  • the original period T and the new period T b are different, for example, as shown in FIGS. 2 (A) to 2 (C)
  • a differential interpolation position Pr see FIG. 2B
  • the interpolation based on the application of this reproduction type has problems of aliasing generation and aliasing noise generation, and expression correction for suppression of the reproduction frequency band is necessary. This is explained below in equation (8).
  • the value of the differential interpolation position Pr illustrated in FIG. 2B is a negative value for the portion shown in the figure.
  • the converted value Y (m 0 T b ) can be easily obtained by the product-sum operation of the original data string Y (nT) and the impulse response function ⁇ (t, n) as described above.
  • the portion of the impulse response function ⁇ (t, n) in this case is obtained by adding the difference interpolation position Pr.
  • Y (Pr) is obtained from the data string Y (nT) corresponding to the discrete point n 0 T and the discrete points nT before and after it, and the converted value Y (m) at the time interpolation position m 0 T b It becomes the expression of 0 T b ).
  • n-n 0 [delta]
  • each data string Y (mT b ) is determined from among the original data string Y (nT) as data serving as a reference corresponding to the conversion value (as described above).
  • the nearest n 0 -th data value Y (n 0 T) corresponds to this, and this should be determined as a reference.
  • the differential interpolation position Pr is determined along with this, and the discrete impulse response function ⁇ (Pr, n) is given from the impulse response function ⁇ (t, n), and the original data string is further obtained.
  • the portion corresponding to the impulse response function ⁇ (t, n) or the discrete impulse response function ⁇ (Pr, n) obtained by making it discrete is not fixed as in the prior art, but the differential interpolation position Although it is vibrated or fluctuated corresponding to Pr, it is possible to perform digital data processing in the same manner as the conventional FIR filter.
  • a variation FIR filter such a method will be referred to as a "variation FIR filter”.
  • the deviation amount of the time position indicated by the difference interpolation position Pr is the time interpolation position mT b of the new data to be processed and the discrete point nT of the original data to be a reference for forming this.
  • variable FIR filter is completely different from the existing adaptive filter that adapts to the external situation.
  • the discrete impulse response function ⁇ (Pr, n) when the discrete impulse response function ⁇ (Pr, n) is extracted from the impulse response function ⁇ (t, n), the above-described difference interpolation position Pr or period T, T b, By combining the data using the discrete impulse response function ⁇ (Pr, n) while taking into consideration the frequencies f s and f b , sampling frequency rate conversion with very high speed and high accuracy is made possible.
  • an ideal analog low-pass filter that has a cutoff frequency f c / 2 is It is. It is considered that this equation (8) can be applied to the above equation (5) and the like regarding sampling frequency rate conversion.
  • the equation (5) is modified based on the equation (8), and the frequency f c is set to a smaller one of f s and f b and the following equation
  • the arithmetic processing of sampling frequency rate conversion is to be performed.
  • the discrete impulse response function ⁇ (Pr, n) for the variable FIR filter is a correction equation or value that enables the prevention of aliasing and aliasing.
  • the original data string Y (nT) and the modified impulse response function ⁇ (Pr, n) are obtained by substituting an arbitrary sampling timing corresponding to new data, that is, a time interpolation position as the value of t.
  • the converted value Y (m 0 T b ) can be theoretically determined strictly by product-sum operation with and, in turn, a new data string Y (mT b ) of period T b can be theoretically determined exactly .
  • the transfer function H (Z, Pr) of the fluctuation FIR filter is as follows.
  • Z exp (j ⁇ T), ⁇ : angular frequency.
  • the differential interpolation position Pr is, for example, It is defined as
  • the differential interpolation position Pr has 441 circulating patterns.
  • discrete impulse response function ⁇ Pr including a finite number (for example, around 30) of elements
  • N the number of coefficient sequences of the discrete impulse response function ⁇ (Pr, n) is prepared for 441 sequences corresponding to the number of patterns of the differential interpolation position Pr It will be.
  • the coefficient table 60 of FIG. 3 schematically shows a table in which filter coefficients configured based on the discrete impulse response function ⁇ (Pr, n) are arranged.
  • Y (mT b ) the number required to obtain all the values of the new data series Y (mT b ) (for example, conversion from 32 kHz to 44.1 kHz above) In the case of 441 columns) are arranged.
  • the coefficient table 60 is a table in which the required number of filter coefficient sequences 60a are arranged in accordance with the ratio of frequencies before and after conversion.
  • the coefficient table 60 specifically handles the filter coefficient sequence 60a in which each filter coefficient value is arranged as an element as a group unit in calculation. It functions as a digitized discrete impulse response function ⁇ (Pr, n).
  • the element shown in the equation (7) or the like is obtained by a variation FIR filter using a filter coefficient sequence 60a consisting of a finite number of filter coefficient values obtained based on the discrete impulse response function ((Pr, n).
  • a filter coefficient sequence 60a consisting of a finite number of filter coefficient values obtained based on the discrete impulse response function ((Pr, n).
  • the discontinuity of the calculated value in the arithmetic processing may be further alleviated by using the window function corresponding to the above-mentioned impulse response function ⁇ (t, n), and By performing the conversion processing, even if the number is a finite number of discrete impulse response functions ⁇ (Pr, n), it is possible to make the information to be processed more reproducible.
  • the window function used for the impulse response function ⁇ (t, n) for example, the use of a Hanning window, a Blackman window, a Kaiser window or the like is appropriate.
  • the Hanning window, the Blackman window, the Kaiser window, etc. are effective at preventing noise in that they become 0 so that they touch the coordinate axes at both ends of the window.
  • the correction method by the window function is the same as the relation between the impulse response function ⁇ (n, t) and the discrete impulse response function ⁇ (Pr, n), and the correction using the discrete window function corresponding to the difference interpolation position Pr It is preferable to
  • FIG. 3 is a block diagram conceptually showing the operation in the case where conversion is performed by digital signal processing in the signal processing apparatus 10 which is an apparatus for converting the sampling frequency.
  • the discrete impulse response function ⁇ (Pr, n) created from the impulse response function ⁇ (t, n) according to the idea of the variation FIR filter (eg, the modified discrete impulse response shown in equation (10)
  • the function ⁇ (Pr, n)) is constructed.
  • a finite number (for example, 30) of filter coefficient values are arranged as filter coefficients determined from the discrete impulse response function ⁇ (Pr, n)).
  • One filter coefficient sequence 60a is configured, and such a filter coefficient sequence 60a is prepared as needed in the calculation process of convolution described later.
  • the signal processing apparatus 10 secures an area for filter coefficients in the RAM 40 of FIG. 1 in order to create the coefficient table 60. Also, the signal processing apparatus 10 selects and appropriately reads out each required filter coefficient sequence 60a from the created coefficient table 60, while extracting the corresponding range of the data sequence Y (nT) which is input data, and this data Each data value (conversion value) of the data string Y (mT b ) is calculated by performing a convolution operation on the corresponding range of the string Y (nT) and the filter coefficient string 60a.
  • one filter coefficient sequence 60a is read from the coefficient table 60 to the extraction unit 61, and the corresponding input data 70a whose address position is specified from the input data buffer 70 is collated. And the data 80 a of the calculation result is output as one of the data stored in the output data buffer 80.
  • the signal processing apparatus 10 sequentially outputs the conversion value data 80a which is each data value (conversion value) of the new data string Y (mT b ) in the order of data to be output by the above operation, that is, in the order of time series of new data. Do.
  • the CPU 20 of the signal processing apparatus 10 shown in FIG. 1 determines the value (for example, about 30) of the number of taps TAmax that determines the number of product-sum operations (step S1). That is, this corresponds to determining the number of filter coefficient values constituting one filter coefficient sequence 60a.
  • the tap number TAmax is temporarily stored in an appropriate area of the RAM 40.
  • the reference period is a digital value corresponding to the original sampling period T defines the input period value A (step S2), and as an output the reference period is a digital value corresponding to a new sampling period T b after conversion
  • An output cycle value B is determined (step S3).
  • These period values A and B are temporarily stored in an appropriate area of the RAM 40.
  • the minimum unit of time for digitization with respect to time is taken as a system time unit. That is, the system time unit is the unit of the shortest time required for processing digital signals, and is determined, for example, by the reciprocal of the least common multiple of the sampling frequencies f s and f b before and after conversion.
  • the period value A, B are both expressed as the number of system time units, the number is, each period T, corresponding to the length of T b.
  • the CPU 20 determines the value of the cutoff frequency f c / 2, that is, determines the value of the reference frequency f c (step S5).
  • the reference frequency f c is temporarily stored in an appropriate area of the RAM 40.
  • the cutoff frequency f c / 2 is 1/2 of the original sampling frequency f s .
  • the cut-off frequency f c / 2 is 1/2 of the sampling frequency f b after conversion.
  • the CPU 20 checks whether the filter coefficient normalization processing in step S17 described later has been performed a prescribed number of times using a counter provided in the RAM 40 (step S6), and if not reached (step S6) No:
  • the normalized total value is initialized (step S7), and processing for setting the initial value of the number of taps (the number of taps TA is set to 0) is performed (step S8).
  • the normalized total value and the initial value of the number of taps are temporarily stored in an appropriate area of the RAM 40.
  • the CPU 20 confirms the number of taps TA stored in the RAM 40 (step S16), and if it does not reach the maximum number of taps TAmax (step S16: No), the time of the impulse response function ⁇ (t, n)
  • the interpolation position m 0 T b and the difference interpolation position Pr are determined (step S9).
  • one differential interpolation position Pr (in the case of conversion from 32 kHz to 44.1 kHz, one of 441 patterns) is determined.
  • the variable m 0 giving the difference interpolation position Pr gradually increases from 0 with A-1 as the maximum.
  • the differential interpolation position Pr is temporarily stored in an appropriate area of the RAM 40.
  • the CPU 20 centers the time interpolation position m 0 T b with respect to n of the discrete impulse response function ⁇ (Pr, n) determined based on the impulse response function ⁇ (t, n) with the determination of the difference interpolation position Pr.
  • a finite number for example, 30
  • basic coefficients for creating filter coefficients are calculated (step S10).
  • the basic coefficient is determined by performing a numerical operation on the sin part and the part other than sin of the corresponding discrete impulse response function ⁇ (Pr, n). , And temporarily stored in an appropriate area of the RAM 40.
  • the CPU 20 calculates a window function that acts on the basic coefficient obtained from the discrete impulse response function ⁇ (Pr, n) (step S11), reads the basic coefficient calculated in step S10 from the RAM 40, and executes step S11.
  • the temporary function of the variation FIR filter is calculated by multiplying the window function calculated in the above and the basic coefficient (step S12).
  • the CPU 20 embeds the calculated temporary coefficient in the temporary coefficient table temporarily provided in the RAM 40 (step S13), and adds the calculated temporary coefficient to the normalized total value stored in the RAM 40 (step S14). Thereafter, the CPU 20 increments the number of taps TA stored in the RAM 40 by one (step S15).
  • step S16 When it is determined in step S16 that the number of taps TA has reached the maximum number of taps TAmax (step S16: Yes), the CPU 20 calculates the temporary coefficient table temporarily calculated in step S15 and stored in the RAM 40.
  • a single filter coefficient sequence 60a normalized from one temporary coefficient sequence is created by dividing the entire one temporary coefficient sequence that is to be constructed by the normalized total value, which is the sum (steps S116 and S17).
  • the CPU 20 checks whether or not the number of taps TA reaches the maximum number of taps TAmax (step S116), and if it is determined that the number is not achieved (step S116: No), the calculated 1
  • Each temporary coefficient that constitutes one temporary coefficient sequence is divided and updated by the normalized total value (step S17), and it is determined that this update operation has all temporary coefficients divided by the normalized total value. repeat.
  • the CPU 20 stores the finally obtained result, that is, one temporary coefficient sequence as one filter coefficient sequence 60a in the corresponding portion of the table coefficient 60 prepared as the storage area in the RAM 40. .
  • step S116: Yes When the CPU 20 counts the number of taps in step S116 and determines that all temporary coefficients have been processed for one temporary coefficient table (step S116: Yes), the filter coefficient sequence 60a is referred to with reference to the memory of the RAM 40. It is confirmed whether the necessary amount is formed (step S6). That is, the CPU 20 confirms whether the process of creating the filter coefficient sequence 60a constituting the temporary coefficient table in steps S116 and S17 has been performed A times. Here, if the filter coefficient sequence 60a is not formed for the minimum necessary unit (A pieces) (step S6: No), the CPU 20 calculates a filter coefficient or filter based on the new discrete impulse response function ⁇ (Pr, n) The process (steps S7 to S17) for creating the coefficient sequence 60a is repeated.
  • step S6 determines that the filter coefficient sequence 60a has been created A times, that is, if the filter coefficients sequence 60a for A times has been aligned with the table coefficients 60 (step S6: Yes), it is determined that the minimum necessary data is available.
  • a process for creating a time interpolation position table attached to the coefficient table 60 is performed (steps S18 to S20). Specifically, first, the CPU 20 confirms whether or not the information of the time interpolation position table has been collected as necessary (step S18).
  • the time interpolation position table has a function as an index attached to the table coefficient 60, and is stored in the storage area of the RAM 40.
  • step S19 preparation processing for position determination of input data, that is, creation processing of an address position table. That is, the position of the original data to be a reference is determined for creating each newly generated data. For this purpose, the CPU 20 determines the address position of the specific input data 70a in the input data buffer 70 of FIG. 3, and associates the input position of the group of original data with one new data after conversion as an address position table. As temporary storage in a suitable area of RAM 40. Next, the CPU 20 performs preparation processing of a differential interpolation position table corresponding to the differential interpolation position Pr which determines the amount of positional deviation between one new data and the original data (step S20).
  • step S18 the operation of the coefficient preparation process is ended.
  • Step S20 operates on the data value Y which is included by the number of taps TAmax before and after the reference data value Y (n 0 T) at the time of product-sum operation or convolution in the data calculation process described later.
  • a data calculation step and the like performed based on the coefficient table 60 obtained in the coefficient preparation step will be described. That is, in the following, a new data string Y is generated from the original data string Y (nT) by convolution using the coefficient table 60 as a filter coefficient based on the discrete impulse response function ⁇ (Pr, n) prepared in the coefficient preparation step. The operation of the process of calculating (mT b ) will be described.
  • the CPU 20 of FIG. 1 adjusts the number of input buffers k ⁇ B (step S51). That is, the signal transmission is adjusted to the input buffer number k ⁇ B, and at the beginning and the end of the conversion, for example, the data (information ⁇ ) for the shortage is adjusted. For example, the last part of the data acquired at the time of processing just before the conversion processing is taken out and used at the beginning of conversion to compensate for the missing data. Also, if there is no previous data at the beginning of conversion or if there is a shortage of data at the end of conversion, the amount of information ⁇ is adjusted with a zero signal or a dummy signal or the like.
  • the CPU 20 checks whether or not the processing has been performed the number of times (output buffer number k ⁇ A times) for which output of information is possible (step S52). If not, processing of reference position address calculation for reading out the reference position of the lower data is performed (step S53). That is, the CPU 20 reads the address position of the original data string Y (nT) determined in step S19 from the RAM 40, and selects the part of the original data string Y (nT) required for the corresponding operation. Do the process. Next, the CPU 20 performs processing of differential interpolation position address preparation (step S54).
  • the CPU 20 reads the address position of the differential interpolation position Pr determined in step S20 from the RAM 40.
  • Each variation coefficient such as each filter system numerical value is loaded (step S56), and the convolution operation processing by the original data string portion and the filter coefficient including the information of differential interpolation position Pr is performed according to the program stored in ROM 30.
  • step S52 Thereafter, the above-described operation is repeated by the number k ⁇ A of output buffers (step S52).
  • a new data string Y (mT b ) is output from output data buffer 80 of FIG. Is output (step S59). That is, a new data string Y (mT b ) is output to the outside of the signal processing apparatus 10 through the output interface unit 52 of FIG.
  • step S59 it is determined whether there is new input data through input interface unit 51 (step S60). If there is input data (step S60: Yes), the data is output again
  • the operation (step S51 to step S60) for creating the data is repeated, and if there is no input data (step S60: No), the operation of the data calculation process is ended.
  • the signal processing apparatus according to the second embodiment of the present invention will be described below with reference to FIG.
  • the signal processing device of the present embodiment is configured to have a circuit structure, it is a modification of the first embodiment, and the elements having the same names as the elements of the signal processing device 10 shown in FIG. The same function is assumed unless otherwise described.
  • a signal processing device 110 shown in FIG. 11 includes a data generation unit 120, a controller 130, a coefficient table 140, a time interpolation position table 150, an extraction unit 160, an input data transmission unit 170, and a convolution operation unit 180.
  • An output data unit 190 and an output buffer unit 191 are provided.
  • the time interpolation position table 150 includes an address position table 150a and a difference interpolation position table 150b.
  • the data creation unit 120 performs a coefficient preparation step of preparing for creation of a filter coefficient corresponding to the discrete impulse response function ⁇ (Pr, n).
  • the data creation unit 120 when preparing for creation of a filter coefficient corresponding to the discrete impulse response function ⁇ (Pr, n), the data creation unit 120 outputs information such as the created filter coefficient sequence 60 a to the coefficient table 140. Further, information on the position of the original data used to create a newly generated data string is output to the address position table 150a of the time interpolation position table 150 (corresponding to the process of step S19 in FIG. 8). Information on the position Pr is output to the differential interpolation position table 150b of the time interpolation position table 150 (corresponding to the process of step S20 in FIG. 8). Thus, the coefficient preparation process is completed.
  • the controller 130 performs the operation of the data calculation process. Specifically, first, the controller 130 reads one filter coefficient sequence 60a corresponding to the filter coefficient based on the discrete impulse response function ⁇ (Pr, n) from the coefficient table 140 and the time interpolation position table 150 to the extraction unit 160 . On the other hand, the part of the original data string corresponding to the filter coefficient string 60 a is extracted from the original digital data string Y (nT) and arranged in the input data sending unit 170. Further, the controller 130 performs a convolution operation process on the input data 70 a extracted by the input data sending unit 170 and the filter coefficient sequence 60 a read by the extraction unit 160 in the convolution operation unit 180.
  • the calculation result of the convolution unit 180 is output to the output data unit 190, and the output data 80a of the output data unit 190 is output to the outside by the output buffer unit 191.
  • the control of the controller 130 performs the operation of the data calculation step of calculating the conversion value for new data.
  • the controller 130 and the coefficient table 140 controlled thereby, the time interpolation position table 150, the extraction unit 160, the input data transmission unit 170, the convolution operation unit 180, the output data unit 190 and the output buffer
  • the part 191 functions as the fluctuation FIR filter 200.
  • the present invention is not limited to the above.
  • the function Y (t) of the equation (1) can extract an arbitrary point at time t, and gives periodicity to output data. It is also possible to configure by sampling from an arbitrary point on the function Y (t) without.
  • the input data is periodical, not all the data may be periodical.
  • the present invention can be applied to a mode in which only the header portion of the data is read. .
  • the original data string Y (nT) is used as voice and other time-series digital data, and sampling frequency rate conversion in a narrow sense is described, but the present invention is not limited to this.
  • the present invention is also applicable as sampling frequency rate conversion in a broad sense such as various data conversion processing such as frame rate conversion in three-dimensional graphics display and reproduction of moving images, resolution conversion such as enlargement and reduction of images.
  • the window function is multiplied by the basic coefficient.
  • the window function may be used other than this.
  • various types of window functions can be adopted as described above.
  • normalization processing is performed on temporary coefficients calculated by multiplying the window function by the basic coefficient.
  • the normalization processing of the coefficients is not limited to this, and the processing of the program may be performed. It is also possible to carry out in various states according to the design and the like.
  • variable FIR filter also functions as a low pass filter for preventing aliasing by taking into consideration the cutoff frequency f c / 2, but in addition to that, other functions are added.
  • a low pass filter that limits components below a desired frequency
  • a high pass filter that limits components above a desired frequency
  • a band pass filter that limits components in a desired frequency range
  • a band removal filter that removes a specific frequency band, etc. It can be set as the role which also serves as.
  • Equation (14) As a configuration having a low-pass filter function that can be arbitrarily set, for example, the following equation can be applied instead of the discrete impulse response function ⁇ (Pr, n) of equation (10).
  • f ' c / 2 is a forced cutoff frequency.
  • f ' c ⁇ f c the interpolation calculation equation, that is, the conversion value is It is expressed as In reality, an approximate expression including a window function is used, and n is a limited number of product-sum operation taps.
  • Equation (15) f c / 2 is a cutoff frequency for anti-aliasing, and f d / 2 is a high pass frequency. Note that f d ⁇ f c .
  • equation (15) the interpolation calculation equation, that is, the conversion value is It is expressed as
  • equation (16) f ′ c / 2 is a forced cutoff frequency and f d / 2 is a high pass frequency. Note that f d ⁇ f ′ c ⁇ f c .
  • equation (16) the interpolation calculation equation, that is, the conversion value is It is expressed as
  • the CPU 20 performs various processes in the signal processing apparatus 10, but instead of the CPU 20, signals are provided so that product-sum operations can be processed at high speed. It is also possible to use a DSP (Digital Signal Processor) specialized for processing, an MPU (Micro Processor Unit) in which a CPU and the like are integrated in one semiconductor chip, and the like. Also, the DSP or MPU may perform various processing such as convolution operation, including a function corresponding to a storage portion such as the ROM 30 or the RAM 40 of the signal processing device 10, for example.
  • DSP Digital Signal Processor
  • MPU Micro Processor Unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Analogue/Digital Conversion (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Provided are a device and a method for sampling frequency rate conversion (SRC), which is capable of high-speed, high-precision data conversion. When a discrete impulse response function η(Pr,n) is extracted from an impulse response function η(t,n), extremely high-speed, high-precision sampling frequency rate conversion is possible by considering the differential interpolation position (Pr) which is the specified parameter corresponding to the difference between the time corresponding to the n0-th value of an original data sequence Y(nT), namely, the discrete point (n0T), and the temporal interpolation position (m0Tb) which is set to correspond to the m0-th value of a new data sequence Y(mTb) which is closest to the discrete point (n0T); and considering the periods (T, Tb), namely, the frequencies (fs, fb); and synthesizing the data using this kind of discrete impulse response function η(Pr,n).

Description

インパルス応答の抽出合成によるSRCの装置及び方法Apparatus and method of SRC by extraction and synthesis of impulse response
 本発明は、離散的なデータからの変換によってサンプリング周波数等の仕様が異なる新たなデータを得るための、SRC(Sampling Rate Conversion;サンプリング周波数レート変換)の装置及び方法に関する。 The present invention relates to an apparatus and method for sampling rate conversion (SRC) for obtaining new data having different specifications such as sampling frequency by conversion from discrete data.
 音声(オーディオ)のサンプリング周波数レートの変換や、画像の解像度変換又はフレームレート変換に適用可能な広義のサンプリング周波数レート変換法として、音声や画像のデジタル信号処理に際して有限のタップ数で構成されるFIRフィルター(Finite Impulse Response Filter)を用いるものが知られている(例えば、特許文献1参照)。 As a sampling frequency rate conversion method in a broad sense applicable to conversion of sampling frequency rate of audio (audio), resolution conversion of image or frame rate conversion, FIR composed of finite number of taps in digital signal processing of sound or image A filter (Finite Impulse Response Filter) is known (for example, see Patent Document 1).
 なお、サンプリング周波数レート変換後に、変換後の複数の周波数に対応する複数のFIRフィルターによって出力を生成するものもある(特許文献2参照)。 In some cases, after sampling frequency rate conversion, an output is generated by a plurality of FIR filters corresponding to a plurality of converted frequencies (see Patent Document 2).
特開2005-217837号公報JP 2005-217837 A 特開2008-109279号公報JP 2008-109279 A
 しかしながら、上記特許文献1においては、FIRフィルターを構成するインパルス応答が固定的に定められており、例えば整数倍にサンプリング周波数レートを上げて得た2つのサンプル間を線形補間しているため、元の周波数から新たな周波数への変換の比率である周波数変換レートによっては、変換に時間を要し高速化が困難であったり、変換後のデータの質が下がったりする可能性がある。 However, in Patent Document 1 described above, the impulse response that constitutes the FIR filter is fixedly determined, and linear interpolation is performed between two samples obtained by raising the sampling frequency rate to, for example, an integral multiple. Depending on the frequency conversion rate, which is a ratio of conversion from one frequency to a new frequency, conversion may take time and it may be difficult to speed up, or the quality of converted data may be degraded.
 そこで、本発明は、高速かつ高精度のデータの変換を可能とするサンプリング周波数レート変換(SRC)の装置及び方法を提供することを目的とする。 SUMMARY OF THE INVENTION It is an object of the present invention to provide an apparatus and method for sampling frequency rate conversion (SRC) that enables high-speed and high-precision data conversion.
 上記課題を解決するため、本発明に係るインパルス応答の抽出合成によるサンプリング周波数レート変換(SRC)の装置及び方法が開発された。なお、以下に記載のサンプリング周波数レート変換とは、特に説明しない限り広義のものを意味し、狭義のサンプリング周波数レート変換のほか、画像等に関する解像度変換又はフレームレート変換等の各種データ変換処理を含むものとする。 In order to solve the above problems, an apparatus and method of sampling frequency rate conversion (SRC) by extraction and combination of impulse responses according to the present invention have been developed. The sampling frequency rate conversion described below means one in a broad sense unless otherwise described, and includes various data conversion processes such as resolution conversion or frame rate conversion for images etc. in addition to sampling frequency rate conversion in a narrow sense. It shall be
 本発明に係るサンプリング周波数レート変換の装置は、(a)離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため時間補間位置に応じた離散インパルス応答関数に基づいてフィルター係数を準備する係数準備手段と、(b)係数準備手段において準備されたフィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値を算出するデータ算出手段とを備える。なお、係数準備手段による上記のようなフィルター係数の準備には、当該フィルター係数を出力又は作用可能な回路、プログラム等を組み込むことのみならず、別途準備されたフィルター係数をメモリに単に保持することも含まれるものとする。 The apparatus for sampling frequency rate conversion according to the present invention is (a) responsive to the time interpolation position to provide a conversion value at a time interpolation position corresponding to new data to be obtained by conversion from discrete original data. Data for calculating converted values at time interpolation positions by convolution of original data using coefficient preparation means for preparing filter coefficients based on discrete impulse response functions, and (b) filter coefficients prepared in coefficient preparation means And calculating means. Incidentally, in preparation of the filter coefficient as described above by the coefficient preparation means, not only incorporating the circuit or program capable of outputting or acting on the filter coefficient, but simply holding the separately prepared filter coefficient in the memory Shall also be included.
 上記サンプリング周波数レート変換の装置では、係数準備手段により、新たなデータに対応する時間補間位置での変換値を与えるための離散インパルス応答関数に基づくフィルター係数を準備し、データ算出手段により、当該フィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値が直接的に算出されるので、元のデータを非常に高速かつ高品質な状態で変換してサンプリング周波数レートに関して仕様の異なる新たなデータを得ることが可能となる。 In the above sampling frequency rate conversion apparatus, the coefficient preparation unit prepares filter coefficients based on the discrete impulse response function for giving a conversion value at a time interpolation position corresponding to new data, and the data calculation unit Since the conversion value at the time interpolation position is directly calculated by the convolution operation of the original data using the coefficient, the original data is converted in a very high speed and high quality state and the specification is different regarding the sampling frequency rate It becomes possible to obtain new data.
 また、本発明の具体的な態様では、(a)係数準備手段が、離散インパルス応答関数に基づくフィルター係数として係数テーブルを準備し、(b)データ算出手段が、係数テーブルの各データと元のデータとの畳み込み演算により変換値を算出する。この場合、係数テーブルを利用したデジタルデータ処理により極限的に高速でかつ高品質なデータの変換が可能となる。 Further, in a specific aspect of the present invention, (a) coefficient preparation means prepares a coefficient table as a filter coefficient based on a discrete impulse response function, and (b) data calculation means comprises each data of the coefficient table and the original. A converted value is calculated by convolution with data. In this case, digital data processing using the coefficient table enables extremely fast and high-quality data conversion.
 また、本発明の別の態様では、係数準備手段が、元のデータについてのサンプリング周期と、新たなデータについてのサンプリング周期との差に対応して設定される一連の時間補間位置での変換値を与えるように離散インパルス応答関数を決定する。この場合、時間補間位置ごとに定まる一群の離散インパルス応答関数に基づいて与えられる係数フィルターによって特定のサンプリング周波数に設定された元のデータから別のサンプリング周波数に設定された新たなデータへとサンプリング周波数レート変換が可能となる。 Further, in another aspect of the present invention, the conversion value at a series of time interpolation positions set corresponding to the difference between the sampling period for the original data and the sampling period for the new data is provided by the coefficient preparation means. Determine the discrete impulse response function to give In this case, sampling frequency from original data set to a specific sampling frequency to new data set to another sampling frequency by a coefficient filter provided based on a group of discrete impulse response functions determined for each time interpolation position Rate conversion is possible.
 また、本発明の別の態様では、離散インパルス応答関数に基づいてフィルター係数を設定することによって、任意の波数帯域を選択する。例えば、所定値以上の高周波数帯域を遮断することができるように、フィルター係数が設定される。この場合、データ変換に付随するノイズの発生を抑制することができる。 In another aspect of the present invention, an arbitrary wave number band is selected by setting filter coefficients based on a discrete impulse response function. For example, the filter coefficient is set so that high frequency bands above a predetermined value can be cut off. In this case, generation of noise accompanying data conversion can be suppressed.
 また、本発明の別の態様では、係数準備手段が、元のデータのサンプリング周波数と新たなデータのサンプリング周波数とのうち、低い周波数を所定値以上の高周波数帯域の遮断の基準とする。この場合、周波数変換に際してエイリアシングや折り返し雑音によるノイズの発生を抑制することができる。 Further, in another aspect of the present invention, the coefficient preparation means uses, as a reference for the cutoff of the high frequency band having a predetermined value or more, a low frequency among the sampling frequency of the original data and the sampling frequency of the new data. In this case, generation of noise due to aliasing and aliasing noise can be suppressed in frequency conversion.
 また、本発明の別の態様では、係数準備手段が、元のデータの離散点と時間補間位置との差に相当する所定パラメーターの変化に応じて離散インパルス応答関数に基づくフィルター係数を準備する。この場合、当該離散インパルス応答関数に基づくフィルター係数は、所定パラメーターの変化によって振動又は変動する固定的でないフィルターとして機能する。 Also, in another aspect of the present invention, the coefficient preparation means prepares a filter coefficient based on a discrete impulse response function according to a change of a predetermined parameter corresponding to the difference between the discrete point of the original data and the time interpolation position. In this case, the filter coefficient based on the discrete impulse response function functions as a non-fixed filter that vibrates or fluctuates due to a change of a predetermined parameter.
 また、本発明の別の態様では、係数準備手段が、離散インパルス応答関数及び窓関数に基づいてフィルター係数を補正している。この場合、窓関数を用いた補正により、有限の離散点を抽出した演算処理での計算値の不連続性を緩和することができる。なお、窓関数は、離散インパルス応答関数に作用させることができるものである。 Also, in another aspect of the present invention, the coefficient preparation means corrects the filter coefficient based on the discrete impulse response function and the window function. In this case, by using the window function, it is possible to alleviate the discontinuity of the calculated value in the calculation process in which the finite discrete points are extracted. The window function can be applied to a discrete impulse response function.
 また、本発明の別の態様では、係数準備手段が、離散インパルス応答関数に基づくフィルター係数を正規化するための正規化手段をさらに有する。この場合、正規化処理を行うことで、処理すべき情報をより再現性の高いものとすることができる。 Also, in another aspect of the present invention, the coefficient preparation means further comprises a normalization means for normalizing the filter coefficients based on the discrete impulse response function. In this case, the information to be processed can be made more reproducible by performing the normalization process.
 また、本発明の別の態様では、新たなデータが、元のデータから復元される関数に基づいて生成される。この場合、復元された当該関数には、任意の値(理論上は、有理数のみならず無理数を含む)を代入することができ、例えば、新たなデータに対応する時間補間位置を代入することで厳密な理論値に近い新たなデータを求めることが可能となる。 Also, in another aspect of the present invention, new data is generated based on a function restored from the original data. In this case, an arbitrary value (in theory, not only rational numbers but also irrational numbers) can be substituted into the restored function, for example, substitution of a time interpolation position corresponding to new data It is possible to obtain new data close to the exact theoretical value.
 また、本発明の別の態様では、元のデータから復元される関数が、時刻tの関数Y(t)であり、Tを、元のデータのサンプリング周期とし、Y(nT)を、元のデータとし、fを、元のデータのサンプリング周波数とし、fを、元のデータのサンプリング周波数と新たなデータのサンプリング周波数とのうち小さい方の値として、以下の数式
Figure JPOXMLDOC01-appb-I000012
やその近似式を用いて表現される。この場合、当該数式により、エイリアシングの発生を防止しつつ、元のデータによるアナログ信号の復元を利用することで理論的に厳密な関数に基づいた離散インパルス応答関数の決定が可能となる。
In another aspect of the present invention, the function restored from the original data is the function Y (t) at time t, T is the sampling period of the original data, and Y (nT) is the original Let f s be the sampling frequency of the original data, and f c be the smaller of the sampling frequency of the original data and the sampling frequency of the new data.
Figure JPOXMLDOC01-appb-I000012
And their approximate expressions. In this case, it is possible to determine a discrete impulse response function based on a theoretically strict function by utilizing the restoration of the analog signal by the original data while preventing occurrence of aliasing by the equation.
 また、本発明の別の態様では、新たなデータが、Tを、新たなデータのサンプリング周期とし、Prを、元のデータの離散点と時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとして、以下の数式
Figure JPOXMLDOC01-appb-I000013
又はnを有限値とする窓関数を用いた近似式を用いて表現される。この場合、当該所定パラメーターの変化又は変更によって振動又は変動する固定的でないフィルターにより新しいデータが生成される。
In another aspect of the present invention, new data sets T b as a sampling period of new data, and Pr as a predetermined parameter corresponding to the difference between the discrete points of the original data and the time interpolation position. both as represented as Pr = n 0 T-m 0 T b by n 0 and m 0 is an integer, the following formulas
Figure JPOXMLDOC01-appb-I000013
Or, it can be expressed using an approximate expression using a window function with n being a finite value. In this case, new data is generated by a non-fixed filter that vibrates or fluctuates due to the change or change of the predetermined parameter.
 上記課題を解決するため、本発明に係るサンプリング周波数レート変換の方法は、(a)離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため離散的に設定された離散インパルス応答関数に基づいてフィルター係数を準備する係数準備工程と、(b)係数準備工程において準備されたフィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値を算出するデータ算出工程とを備える。 In order to solve the above problems, the method of sampling frequency rate conversion according to the present invention (a) provides a conversion value at a time interpolation position corresponding to new data to be obtained by conversion from discrete original data In order to prepare the filter coefficients based on the discrete impulse response function set discretely, (b) using the filter coefficients prepared in the coefficient preparation step, the time interpolation position is obtained by convolution of the original data And a data calculating step of calculating a conversion value in
 上記サンプリング周波数レート変換の方法では、係数準備工程において、新たなデータに対応する時間補間位置での変換値を与えるための離散インパルス応答関数に基づくフィルター係数を準備し、データ算出工程において、当該フィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値が算出されるので、元のデータを非常に高速で変換し、スペクトル的に高品質な状態の新たなデータを得ることが可能となる。 In the sampling frequency rate conversion method, in the coefficient preparation step, filter coefficients based on a discrete impulse response function for providing a converted value at a time interpolation position corresponding to new data are prepared, and in the data calculation step Since the conversion value at the time interpolation position is calculated by the convolution operation of the original data using the coefficient, the original data can be converted at high speed to obtain new data in a spectrally high quality state It becomes possible.
 また、本発明の具体的な態様では、(a)係数準備工程において、離散インパルス応答関数に基づくフィルター係数として係数テーブルを準備し、(b)データ算出工程において、係数テーブルの各データと元のデータとの畳み込み演算により変換値を算出し、(c)係数準備工程において、元のデータについてのサンプリング周期と、新たなデータについてのサンプリング周期との差に対応して一連の時間補間位置での変換値を与えるように離散インパルス応答関数を決定する。 In a specific aspect of the present invention, (a) preparing a coefficient table as a filter coefficient based on a discrete impulse response function in the coefficient preparing step, and (b) calculating each data of the coefficient table and the original in the data calculating step. (C) In the coefficient preparation step, corresponding to the difference between the sampling period for the original data and the sampling period for the new data, the conversion value is calculated at a series of time interpolation positions. Determine the discrete impulse response function to give a transformed value.
 また、本発明の別の態様では、新たなデータが、Tを、元のデータのサンプリング周期とし、Tを、新たなデータのサンプリング周期とし、Y(nT)を、元のデータとし、fを、元のデータのサンプリング周波数とし、fを、元のデータのサンプリング周波数と新たなデータのサンプリング周波数とのうち小さい方の値とし、Prを、元のデータの離散点と時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとして、以下の数式
Figure JPOXMLDOC01-appb-I000014
又はnを有限値とする窓関数を用いた近似式を用いて表現される。この場合、変換においてエイリアシングによるノイズの発生が抑制され、また、当該所定パラメーターの変化によって振動又は変動する固定的でないフィルターにより新しいデータが生成される。
Further, in another aspect of the present invention, new data, a T, a sampling period of the original data, a T b, the sampling period of the new data, Y a (nT), then the original data, f Let s be the sampling frequency of the original data, f c be the smaller of the sampling frequency of the original data and the sampling frequency of the new data, Pr be the discrete points of the original data and the time interpolation position As a predetermined parameter corresponding to the difference between the two and the integer represented by n 0 and m 0 as Pr = n 0 T-m 0 T b
Figure JPOXMLDOC01-appb-I000014
Or, it can be expressed using an approximate expression using a window function with n being a finite value. In this case, generation of noise due to aliasing is suppressed in conversion, and new data is generated by a non-fixed filter that vibrates or fluctuates due to a change in the predetermined parameter.
第1実施形態に係るサンプリング周波数レート変換の装置の構造を模式的に示すブロック図である。It is a block diagram which shows typically the structure of the apparatus of sampling frequency rate conversion which concerns on 1st Embodiment. (A)~(C)は、サンプリング周波数レート変換の装置による元のデータから新たなデータの生成について説明するための図である。(A) to (C) are diagrams for explaining generation of new data from original data by a device for sampling frequency rate conversion. サンプリング周波数レート変換の装置による信号の準備処理を概念的に示す図である。It is a figure which shows notionally the preparation process of the signal by the apparatus of sampling frequency rate conversion. インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。It is a flowchart for demonstrating the process of preparing the coefficient table of a discrete impulse response function based on an impulse response function. 係数テーブルを用いた畳み込み演算により変換値を算出して新たなデータを出力する工程について説明するためのフローチャートである。It is a flowchart for demonstrating the process of calculating conversion value by the convolution calculation using a coefficient table, and outputting new data. 係数テーブルを用いた畳み込み演算により変換値を算出して新たなデータを出力する工程について説明するためのフローチャートである。It is a flowchart for demonstrating the process of calculating conversion value by the convolution calculation using a coefficient table, and outputting new data. 第2実施形態に係るサンプリング周波数レート変換の装置の構成を説明する概念図である。It is a conceptual diagram explaining the structure of the apparatus of sampling frequency rate conversion which concerns on 2nd Embodiment.
 〔第1実施形態〕
 以下、図1及び図2を参照して、本発明の第1実施形態に係るサンプリング周波数レート変換の装置及び当該サンプリング周波数レート変換の装置によるデータ変換の原理について説明する。
First Embodiment
An apparatus for sampling frequency rate conversion and a principle of data conversion by the apparatus for sampling frequency rate conversion according to the first embodiment of the present invention will be described below with reference to FIGS. 1 and 2.
 図1に示す信号処理装置10は、元のデータ列を変換して、サンプリングレートに関して仕様の異なる新たなデータ列を出力するサンプリング周波数レート変換の装置であり、メインの制御を行うCPU20と、演算処理プログラム等の各種プログラムやその他の情報を保管しているROM30と、処理の対象となるサンプルデータ等の情報を一時的に記憶し保管するRAM40と、外部から入力されるデータを受信するための入力インターフェース部51と、外部に対してデータを送信するための出力インターフェース部52とを備える。 The signal processing apparatus 10 shown in FIG. 1 is an apparatus for sampling frequency rate conversion which converts an original data string and outputs a new data string having different specifications with respect to a sampling rate, and performs main control CPU 20 A ROM 30 for storing various programs such as processing programs and other information, a RAM 40 for temporarily storing and storing information such as sample data to be processed, and data received from the outside An input interface unit 51 and an output interface unit 52 for transmitting data to the outside are provided.
 ここでは、信号処理装置10に入力される元のデータ列Y(nT)は、音声その他の時系列的なデジタルデータであり、サンプリング周波数がf、サンプリング周期がT(T=1/f)であるものとする。一方、出力されるデータ列Y(mT)は、同様のデジタルデータであるが、サンプリング周波数がf、サンプリング周期がT(T=1/f)であるものとする。つまり、信号処理装置10は、狭義のサンプリング周波数レート変換を行っており、CPU20を用いた処理等により、元のデータ列Y(nT)から、元のサンプリング周波数f及び新たなサンプリング周波数fに基づいて、サンプリング周波数レート変換された新たなデータ列Y(mT)を作成している。なお、以上の説明において、n、mは整数である。 Here, the original data string Y (nT) input to the signal processing apparatus 10 is voice and other time-sequential digital data, and the sampling frequency is f s and the sampling cycle is T (T = 1 / f s Shall be On the other hand, it is assumed that the output data string Y (mT b ) is similar digital data, but the sampling frequency is f b and the sampling cycle is T b (T b = 1 / f b ). That is, the signal processing apparatus 10 performs sampling frequency rate conversion in a narrow sense, and by processing using the CPU 20, the original sampling frequency f s and the new sampling frequency f b are obtained from the original data string Y (nT). , A sampling frequency rate converted new data string Y (mT b ) is created. In the above description, n and m are integers.
 図2(A)~2(C)は、信号処理装置10において元のデータ列Y(nT)から新たなデータ列Y(mT)を生成する様子を模式的に示す図である。つまり、図2(A)に模式的に示す元の離散的なデータ列Y(nT)から、後述する図2(B)のデータ処理工程を経て、図2(C)に示す周波数の変換された新しい離散的なデータ列Y(mT)が作成されている。ここで、図2(A)~2(C)に示すように、両データ列Y(nT)、Y(mT)の周期T,T(即ち周波数f,f)は、互いに異なっている。つまり、図1の信号処理装置10は、変換前後の周期T(=1/f)、T(=1/f)の差に対応して、元の周期T(=1/f)のデータ列Y(nT)に対してサンプリング周期又はサンプリング周波数のレート変換の処理を行い、新たな周期T(=1/f)のデータ列Y(mT)を作成している。 FIGS. 2A to 2C schematically show how the signal processing apparatus 10 generates a new data string Y (mT b ) from the original data string Y (nT). That is, from the original discrete data string Y (nT) schematically shown in FIG. 2 (A), the frequency conversion shown in FIG. 2 (C) is carried out through the data processing step of FIG. 2 (B) described later. New discrete data sequence Y (mT b ) is created. Here, as shown in FIG. 2 (A) ~ 2 (C ), both the data sequence Y (nT), Y period T of (mT b), T b (i.e. the frequency f s, f b) are different from each other ing. That is, the signal processing device 10 of FIG. 1, the period before and after the conversion T (= 1 / f s) , corresponding to the difference between T b (= 1 / f b ), the original period T (= 1 / f s The sampling period or rate conversion processing of the sampling frequency is performed on the data string Y (nT) of) to create a data string Y (mT b ) of a new period T b (= 1 / f b ).
 以下、信号処理装置10におけるサンプリング周波数のレート変換の処理について説明する。まず、離散的な元のデータ列Y(nT)について、既述のように、サンプリング周期をT、元の周波数であるサンプリング周波数をf(即ちT=1/f)とすると、標本化入力信号である元のデータ列Y(nT)から復元される関数は、シャノンの標本化定理により、
Figure JPOXMLDOC01-appb-I000015
となる。ここで、式(1)のうち、
Figure JPOXMLDOC01-appb-I000016
の部分は、アナログ再生のためのインパルス応答関数である。つまり、復元される関数Y(t)は、連続的な時間tの関数であり、標本化入力信号であるデータ列Y(nT)とインパルス応答関数η(t,n)との積和演算によって再現されている。この関数によるアナログ波再生の手法でサンプリングレート変換のための補間が可能である。本手法の応用による補間の場合には、元の周期Tと新たな周期Tとは異なるため、図2(A)~2(C)に示すように、例えば元のデータ列Y(nT)のn番目の値に対応する時間即ち離散点nTと、新たなデータ列Y(mT)のうち離散点nTを最寄りとするm番目の値に対応して設けられる時間補間位置mとには差があり、この差に相当する所定パラメーターである差分補間位置Pr(図2(B)参照)を考慮する必要がある。しかし、この再生式そのままの応用による補間であると、エイリアシング発生と折り返し雑音発生との問題があり、再生周波数帯の抑制のための式修正が必要である。このことについては、式(8)以下に説明する。
Hereinafter, processing of rate conversion of sampling frequency in the signal processing device 10 will be described. First, for the discrete original data string Y (nT), sampling is performed assuming that the sampling period is T and the sampling frequency that is the original frequency is f s (that is, T = 1 / f s ) as described above. The function restored from the original data string Y (nT) that is the input signal is given by Shannon's sampling theorem
Figure JPOXMLDOC01-appb-I000015
It becomes. Here, in the formula (1),
Figure JPOXMLDOC01-appb-I000016
Part is an impulse response function for analog reproduction. That is, the function Y (t) to be restored is a function of the continuous time t, and the product-sum operation of the sampling input signal data string Y (nT) and the impulse response function η (t, n) It has been reproduced. Interpolation for sampling rate conversion is possible by the method of analog wave reproduction by this function. In the case of interpolation by application of the present method, since the original period T and the new period T b are different, for example, as shown in FIGS. 2 (A) to 2 (C), the original data string Y (nT) n 0 th time or discrete points n corresponding to the value 0 T and the time provided corresponding to m 0 th value to the nearest discrete points n 0 T of the new data string Y (mT b) of There is a difference from the interpolation position m 0 T b, and it is necessary to consider a differential interpolation position Pr (see FIG. 2B) which is a predetermined parameter corresponding to the difference. However, the interpolation based on the application of this reproduction type has problems of aliasing generation and aliasing noise generation, and expression correction for suppression of the reproduction frequency band is necessary. This is explained below in equation (8).
 以下、元のデータ列Y(nT)のn番目の点(離散点nTに対応)を基準として、変換データの生成を説明する。ここでは、離散点nTを基準として新しいデータ列Y(mT)のうち、m番目の時間補間位置mの変換値Y(m)が生成されるものとする。まず、この場合、図2(B)を参照して既に説明したように、差分補間位置Prは、時間補間位置mの最寄りの点である離散点nTを基準として、Pr=nT-mで表される。図2(B)に例示する差分補間位置Prの値は、図に示す部分についての負の値となる。ここで、変換値Y(m)は、既に説明したように元のデータ列Y(nT)とインパルス応答関数η(t,n)との積和演算によって容易に求められる。この際のインパルス応答関数η(t,n)の部分については、上記差分補間位置Prを加味したものとなっている。つまり、式(1)において、例えば離散点nTを基準としてt=Pr+mと代入すると、
Figure JPOXMLDOC01-appb-I000017
となる。また、ここで、新たなデータ列Y(mT)を算出するために、インパルス応答関数η(t,n)を基にして離散化した離散インパルス応答関数を定める。具体的には、式(2)においてt=Prとすると、nを中心としてnが正負の方向に変化する離散インパルス応答関数η(Pr,n)は、
Figure JPOXMLDOC01-appb-I000018
で表される。また、式(3)においても、m=0とすることはt=Prとすることであり、
Figure JPOXMLDOC01-appb-I000019
となる。この場合、Y(Pr)は、離散点nTとその前後の離散点nTに対応するデータ列Y(nT)から求められるものであり、時間補間位置mにおける変換値Y(m)を表現するものとなる。また、式(5)のうち、加算要素の式又は値
Figure JPOXMLDOC01-appb-I000020
は、式(4)の離散インパルス応答関数η(Pr,n)とこれに対応する各データ列Y(nT)の値とを掛けたもの(以後、離散インパルス応答と呼ぶ)である。これは、図2(B)に例示されるインパルス応答の各曲線L1~L5のt=m上における上記値即ち離散インパルス応答A(n+δ,Pr)にそれぞれ相当する(δ=0,±1,±2)。つまり、上記式(5)から与えられる変換値Y(Pr)=Y(m)は、図2(B)に例示した離散インパルス応答A(n+δ,Pr)をδについて無限に足し合わせたものに相当する。但し、実際に数値化をするにあたっては、相関性の高い有限個の離散インパルス応答A(n+δ,Pr)を足し合わせることで変換値Y(Pr)=Y(m)を構成している。つまり、例えば式(5)において、まず、データ列Y(nT)のうちn番目のデータ列Y(nT)の値を中心とするために、変数をn-n(=δ)として、
Figure JPOXMLDOC01-appb-I000021
とする。さらに、n番目のデータ値Y(nT)の値を中心として略左右対称に有限となるように、式(6)において、例えば30個程度の少ない個数について和を取ることで、変換値Y(Pr)=Y(m)を、インパルス応答をシフトさせる整数δ(=n-n)を用いて
Figure JPOXMLDOC01-appb-I000022
とすることで、変換値Y(Pr)=Y(m)の近似的な値が求められる。
Hereinafter, generation of conversion data will be described based on the n 0 -th point (corresponding to the discrete point n 0 T) of the original data string Y (nT). Here, it is assumed that a converted value Y (m 0 T b ) of the m 0 -th time interpolation position m 0 T b is generated in the new data string Y (mT b ) based on the discrete point n 0 T. . First, in this case, as already described with reference to FIG. 2B, the differential interpolation position Pr is based on the discrete point n 0 T which is the nearest point of the time interpolation position m 0 T b , Pr = It is represented by n 0 T-m 0 T b . The value of the differential interpolation position Pr illustrated in FIG. 2B is a negative value for the portion shown in the figure. Here, the converted value Y (m 0 T b ) can be easily obtained by the product-sum operation of the original data string Y (nT) and the impulse response function η (t, n) as described above. The portion of the impulse response function η (t, n) in this case is obtained by adding the difference interpolation position Pr. That is, in equation (1), for example, substituting t = Pr + m 0 T b based on the discrete point n 0 T,
Figure JPOXMLDOC01-appb-I000017
It becomes. Also, here, in order to calculate a new data string Y (mT b ), a discrete impulse response function discretized based on the impulse response function η (t, n) is determined. Specifically, assuming that t = Pr in the equation (2), a discrete impulse response function η (Pr, n) in which n changes in positive and negative directions with n 0 as a center is
Figure JPOXMLDOC01-appb-I000018
Is represented by Also in the formula (3), setting m 0 T b = 0 is setting t = Pr,
Figure JPOXMLDOC01-appb-I000019
It becomes. In this case, Y (Pr) is obtained from the data string Y (nT) corresponding to the discrete point n 0 T and the discrete points nT before and after it, and the converted value Y (m) at the time interpolation position m 0 T b It becomes the expression of 0 T b ). Also, of the equation (5), the equation or value of the addition element
Figure JPOXMLDOC01-appb-I000020
Is the product of the discrete impulse response function η (Pr, n) of equation (4) and the value of each data string Y (nT) corresponding thereto (hereinafter referred to as discrete impulse response). This corresponds to the above-described value on t = m 0 T b of each of the curves L1 to L5 of the impulse response illustrated in FIG. 2B, that is, the discrete impulse response A (n 0 + δ, Pr) (δ = 0, ± 1, ± 2). That is, the transformed value Y (Pr) = Y (m 0 T b ) given from the above equation (5) is infinite for the discrete impulse response A (n 0 + δ, Pr) illustrated in FIG. It corresponds to the addition. However, in actual digitization, the converted value Y (Pr) = Y (m 0 T b ) is constructed by adding together a finite number of highly correlated discrete impulse responses A (n 0 + δ, Pr). doing. That is, for example, Equation (5), the first data sequence Y values to the center of (nT) of the n 0 th data sequence Y (n 0 T), the variable n-n 0 (= [delta]) As
Figure JPOXMLDOC01-appb-I000021
I assume. Furthermore, as a finite substantially symmetrical about the value of n 0 th data values Y (n 0 T), in equation (6), by taking the sum for example 30 or so little number, conversion The value Y (Pr) = Y (m 0 T b ), using the integer δ (= n-n 0 ) to shift the impulse response
Figure JPOXMLDOC01-appb-I000022
By doing this, an approximate value of the converted value Y (Pr) = Y (m 0 T b ) can be obtained.
 以上のように、各データ列Y(mT)の1つの変換値は、まず、元のデータ列Y(nT)のうちから、当該変換値に対応する基準となるデータを定め(上記のように、m番目の変換値Y(Pr)=Y(m)を求める場合には、最寄りのn番目のデータ値Y(nT)が対応し、これを基準と定めることに相当する。)、次に、これに伴い差分補間位置Prが定まることでインパルス応答関数η(t,n)から離散インパルス応答関数η(Pr,n)が与えられ、さらに、元のデータ列Y(nT)と離散インパルス応答関数η(Pr,n)との畳み込みを行うことで変換値Y(Pr)=Y(m)が求められる。つまり、データ列Y(mT)の1つの変換値(例えばY(Pr)=Y(m))を求めるためには、当該変換値(例えばY(Pr)=Y(m))の時間補間位置(例えばm)に対応させて、元のデータ列Y(nT)のうち基準となる1つのデータ値(例えばY(nT))の位置を定めることと、定められた当該データ値(例えばY(nT))を与える離散点と、変換値(例えばY(Pr)=Y(m))を与える時間補間位置との差である差分補間位置Prを設定することとが前提として必要となる。 As described above, first, one conversion value of each data string Y (mT b ) is determined from among the original data string Y (nT) as data serving as a reference corresponding to the conversion value (as described above). In the case of obtaining the m 0 -th converted value Y (Pr) = Y (m 0 T b ), the nearest n 0 -th data value Y (n 0 T) corresponds to this, and this should be determined as a reference Then, the differential interpolation position Pr is determined along with this, and the discrete impulse response function η (Pr, n) is given from the impulse response function η (t, n), and the original data string is further obtained. By performing convolution of Y (nT) with the discrete impulse response function η (Pr, n), a converted value Y (Pr) = Y (m 0 T b ) is obtained. That is, the data sequence Y in order to obtain the single conversion value (mT b) (e.g. Y (Pr) = Y (m 0 T b)) are the conversion value (e.g., Y (Pr) = Y (m 0 T b ) to determine the position of one data value (for example, Y (n 0 T)) as a reference in the original data string Y (nT) in correspondence with the time interpolation position (for example, m 0 T b ) And the discrete point giving the data value (for example, Y (n 0 T)) determined and the time interpolation position for giving the conversion value (for example, Y (Pr) = Y (m 0 T b )) It is necessary to set the difference interpolation position Pr as a premise.
 ここで、以上において、インパルス応答関数η(t,n)又はこれを離散的にした離散インパルス応答関数η(Pr,n)に相当する部分については、従来のように固定せず、差分補間位置Prに対応して振動又は変動するものでありながらも、算出としては、従来のFIRフィルターと同様にデジタルデータ処理を行うことが可能となっている。以下、このような手法を「変動FIRフィルター」と呼ぶこととする。また、差分補間位置Prによって示される時間位置のずれ量は、上記のように、対象となる新しいデータの時間補間位置mTとこれを構成するための基準となる元のデータの離散点nTとの差によって決まるものであり、一般には、元のデータの周波数fと新しいデータの周波数fとの比f:f=N:Mの関係によって定まるものである。このように、変動FIRフィルターは、外界の状況に適応する既存の適応フィルターとは全く異なるものである。 Here, in the above, the portion corresponding to the impulse response function η (t, n) or the discrete impulse response function η (Pr, n) obtained by making it discrete is not fixed as in the prior art, but the differential interpolation position Although it is vibrated or fluctuated corresponding to Pr, it is possible to perform digital data processing in the same manner as the conventional FIR filter. Hereinafter, such a method will be referred to as a "variation FIR filter". Further, as described above, the deviation amount of the time position indicated by the difference interpolation position Pr is the time interpolation position mT b of the new data to be processed and the discrete point nT of the original data to be a reference for forming this. In general, it is determined by the relationship of the ratio f s : f b = N: M of the frequency f s of the original data to the frequency f b of the new data. Thus, the variable FIR filter is completely different from the existing adaptive filter that adapts to the external situation.
 以上のように、本実施形態では、インパルス応答関数η(t,n)から離散インパルス応答関数η(Pr,n)を抽出する際に、上述した差分補間位置Prや、周期T,T即ち周波数f,fを考慮するとともに、このような離散インパルス応答関数η(Pr,n)を利用したデータの合成により、非常に高速で高精度のサンプリング周波数レート変換を可能としている。 As described above, in the present embodiment, when the discrete impulse response function η (Pr, n) is extracted from the impulse response function η (t, n), the above-described difference interpolation position Pr or period T, T b, By combining the data using the discrete impulse response function η (Pr, n) while taking into consideration the frequencies f s and f b , sampling frequency rate conversion with very high speed and high accuracy is made possible.
 ここで、ランダムな帯域のアナログ信号f(t)において、遮断周波数f/2となる理想的なアナログのローパスフィルターは、
Figure JPOXMLDOC01-appb-I000023
である。この式(8)は、サンプリング周波数レート変換に関する上記式(5)等に適用することができると考えられる。ここでは、式(5)を上記式(8)に基づいて変形するとともに、周波数fを、fとfとのうち、小さい方とし、以下の式
Figure JPOXMLDOC01-appb-I000024
からサンプリング周波数レート変換の演算処理を行うものとする。この場合、変動FIRフィルター用の離散インパルス応答関数η(Pr,n)は、エイリアシング発生と折り返し雑音発生との防止を可能にする修正式又は値として、
Figure JPOXMLDOC01-appb-I000025
で表され、補間計算式即ち修正された新たな変換値は、t=Prとして、
Figure JPOXMLDOC01-appb-I000026
となる。以上から明らかなように、本実施形態の変動FIRフィルターでは、本来の変換値Y(Pr)=Y(m)の一部のfをfに置き換えたものを用いるだけで、アンチエイリアシングのためのローパスフィルターとしての機能も持たせることができ、データ処理の非常な高速化を達成することができる。なお、式(9)の関数Y(t)は、時間tについての連続関数であるから、時間tには、有理数のみならず無理数を含む任意の値を代入することができる。これは、現状のオーバーサンプリング理論を用いた補間では実現できない無理数による位置の補間が可能となることを意味する。このように、tの値として、新たなデータに対応する任意のサンプリングタイミング即ち時間補間位置を代入することにより、元のデータ列Y(nT)と修正されたインパルス応答関数η(Pr,n)との積和演算によって変換値Y(m)を理論上厳密に求めることができ、延いては周期Tの新たなデータ列Y(mT)を理論上厳密に求めることができる。結果的に、本手法により、上記オーバーサンプリング理論を用いた補間に比較して、100倍から数1000倍程度の変換処理の高速化を達成することができる。
Here, in an analog signal f (t) in a random band, an ideal analog low-pass filter that has a cutoff frequency f c / 2 is
Figure JPOXMLDOC01-appb-I000023
It is. It is considered that this equation (8) can be applied to the above equation (5) and the like regarding sampling frequency rate conversion. Here, the equation (5) is modified based on the equation (8), and the frequency f c is set to a smaller one of f s and f b and the following equation
Figure JPOXMLDOC01-appb-I000024
The arithmetic processing of sampling frequency rate conversion is to be performed. In this case, the discrete impulse response function η (Pr, n) for the variable FIR filter is a correction equation or value that enables the prevention of aliasing and aliasing.
Figure JPOXMLDOC01-appb-I000025
And the interpolation equation or modified new transformed value is given by t = Pr
Figure JPOXMLDOC01-appb-I000026
It becomes. As apparent from the above, in the variation FIR filter of the present embodiment, it is possible to use only one in which a part f s of the original converted value Y (Pr) = Y (m 0 T b ) is replaced by f c A function as a low pass filter for anti-aliasing can also be provided, and very high speed processing of data can be achieved. In addition, since the function Y (t) of Formula (9) is a continuous function about time t, not only a rational number but arbitrary values including unreasonable numbers can be substituted to time t. This means that it is possible to interpolate positions by irrational numbers that can not be realized by interpolation using the current oversampling theory. Thus, the original data string Y (nT) and the modified impulse response function η (Pr, n) are obtained by substituting an arbitrary sampling timing corresponding to new data, that is, a time interpolation position as the value of t. The converted value Y (m 0 T b ) can be theoretically determined strictly by product-sum operation with and, in turn, a new data string Y (mT b ) of period T b can be theoretically determined exactly . As a result, according to the present method, it is possible to achieve speeding up of conversion processing by about 100 times to several thousand times as compared with interpolation using the above oversampling theory.
 なお、上記変動FIRフィルターの伝達関数H(Z,Pr)は、以下のようになる。
Figure JPOXMLDOC01-appb-I000027
ここで、Z=exp(jωT)、ω:角周波数である。
The transfer function H (Z, Pr) of the fluctuation FIR filter is as follows.
Figure JPOXMLDOC01-appb-I000027
Here, Z = exp (jωT), ω: angular frequency.
 以下、一例として、信号処理装置10による変換を32kHzから44.1kHzへの変換とする場合について考える。この場合、遮断周波数の基準となるサンプリング周波数fは、fとfとのうち、小さい方即ち32kHzであるfがfとなる。つまり、復元されるアナログ型の関数の式(9)は式(5)と同じであり、この式に基づいて上記のようにして、離散インパルス応答関数η(Pr,n)が作成される。また、この場合、差分補間位置Prは、例えば、
Figure JPOXMLDOC01-appb-I000028
として定められる。ここで、周波数の比率は、N:M=320:441となるため(320と441とは互いに素)、差分補間位置Prは、441個の循環するパターンを有するものとなる。数値化して行うデジタル処理による実際の演算においては、式(7)に示すように、1つの変換値の算出には、有限個(例えば30個程度)の要素からなる離散インパルス応答関数η(Pr,n)の係数列が必要となるが、この場合、離散インパルス応答関数η(Pr,n)の係数列の数は、差分補間位置Prのパターンの数に対応して441列分用意されることになる。
Hereinafter, as an example, a case where conversion by the signal processing device 10 is from 32 kHz to 44.1 kHz will be considered. In this case, the sampling frequency f c as a reference of the cutoff frequency, of the f s and f b, is smaller i.e. 32 kHz f s is f c. That is, Expression (9) of the analog function to be restored is the same as Expression (5), and the discrete impulse response function η (Pr, n) is created based on this expression as described above. Also, in this case, the differential interpolation position Pr is, for example,
Figure JPOXMLDOC01-appb-I000028
It is defined as Here, since the ratio of frequencies is N: M = 320: 441 (320 and 441 are mutually prime), the differential interpolation position Pr has 441 circulating patterns. In the actual calculation by digital processing performed by digitizing, as shown in the equation (7), in the calculation of one conversion value, discrete impulse response function η (Pr including a finite number (for example, around 30) of elements) , N), but in this case, the number of coefficient sequences of the discrete impulse response function η (Pr, n) is prepared for 441 sequences corresponding to the number of patterns of the differential interpolation position Pr It will be.
 ここで、図3の係数テーブル60は、離散インパルス応答関数η(Pr,n)に基づいて構成されるフィルター係数を並べたテーブルを模式的に示したものである。係数テーブル60は、1つの変換値(例えば変換値Y(Pr)=Y(m))を算出するために必要な有限個(例えば30個程度)のデータ要素(以下、フィルター係数値と呼ぶ)からなるフィルター係数の係数列を1単位として、この係数列を新たなデータ列Y(mT)の全ての値を得るために必要な数(例えば上記32kHzから44.1kHzへの変換の場合441列)並べたものである。 Here, the coefficient table 60 of FIG. 3 schematically shows a table in which filter coefficients configured based on the discrete impulse response function η (Pr, n) are arranged. The coefficient table 60 has a finite number (for example, about 30) of data elements (hereinafter, filter coefficient values) necessary to calculate one conversion value (for example, conversion value Y (Pr) = Y (m 0 T b )). ) Is one unit of the coefficient series of filter coefficients, and the number required to obtain all the values of the new data series Y (mT b ) (for example, conversion from 32 kHz to 44.1 kHz above) In the case of 441 columns) are arranged.
 ここでは、畳み込み演算により1つの変換値Y(Pr)=Y(m)を得るための単位であるフィルター係数値を有限個(例えば30個程度)並べて得た上記列を、フィルター係数列60aとする。つまり、係数テーブル60は、フィルター係数列60aを変換前後の周波数の比率に応じて必要個数並べたテーブルである。詳しくは後述するが、変動FIRフィルターを用いたデジタルデータ処理の場合、係数テーブル60において、各フィルター係数値を要素として並べたフィルター係数列60aを演算における一群の単位として取り扱うことにより、具体的に数値化した離散インパルス応答関数η(Pr,n)として機能させている。本実施形態の場合、離散インパルス応答関数η(Pr,n)を基にして得た有限個のフィルター係数値からなるフィルター係数列60aを用いた変動FIRフィルターによって、式(7)等に示す元のデータY(nT)との積和演算を行うことで、従来のFIRフィルターと同様の演算処理で新しいデータ列Y(mT)を算出することができる。 Here, the above-described row obtained by arranging a finite number (for example, about 30) of filter coefficient values, which are units for obtaining one converted value Y (Pr) = Y (m 0 T b ) by convolution operation, is a filter coefficient It is assumed that the column 60a. That is, the coefficient table 60 is a table in which the required number of filter coefficient sequences 60a are arranged in accordance with the ratio of frequencies before and after conversion. Although described later in detail, in the case of digital data processing using a variation FIR filter, the coefficient table 60 specifically handles the filter coefficient sequence 60a in which each filter coefficient value is arranged as an element as a group unit in calculation. It functions as a digitized discrete impulse response function η (Pr, n). In the case of the present embodiment, the element shown in the equation (7) or the like is obtained by a variation FIR filter using a filter coefficient sequence 60a consisting of a finite number of filter coefficient values obtained based on the discrete impulse response function ((Pr, n). By performing the product-sum operation with the data Y (nT) of R, it is possible to calculate a new data string Y (mT b ) by the same calculation processing as that of the conventional FIR filter.
 なお、変動FIRフィルターを作用させるにあたって、さらに、上記したインパルス応答関数η(t,n)に対応する窓関数を用いて演算処理での計算値の不連続性を緩和することや、係数の正規化処理を行うことで、数値化された有限の個数の離散インパルス応答関数η(Pr,n)であっても、処理すべき情報をより再現性の高いものとすることができる。 In addition, when applying the variation FIR filter, the discontinuity of the calculated value in the arithmetic processing may be further alleviated by using the window function corresponding to the above-mentioned impulse response function η (t, n), and By performing the conversion processing, even if the number is a finite number of discrete impulse response functions η (Pr, n), it is possible to make the information to be processed more reproducible.
 インパルス応答関数η(t,n)に用いる窓関数としては、例えばハニング窓、ブラックマン窓、カイザー窓等の使用が適切である。なお、ハニング窓、ブラックマン窓、カイザー窓等は、窓の両端で座標軸に接するように0となる点で、ノイズ防止に効果的である。窓関数によっての補正の仕方は、インパルス応答関数η(n、t)と離散インパルス応答関数η(Pr,n)との関係と同じく差分補間位置Prに対応した離散的な窓関数を用いた補正とすることが好ましい。 As the window function used for the impulse response function η (t, n), for example, the use of a Hanning window, a Blackman window, a Kaiser window or the like is appropriate. The Hanning window, the Blackman window, the Kaiser window, etc. are effective at preventing noise in that they become 0 so that they touch the coordinate axes at both ends of the window. The correction method by the window function is the same as the relation between the impulse response function η (n, t) and the discrete impulse response function η (Pr, n), and the correction using the discrete window function corresponding to the difference interpolation position Pr It is preferable to
 図3は、サンプリング周波数の変換の装置である信号処理装置10において、デジタル信号処理によって変換を行う場合の動作を概念的に示すブロック図である。ここでは、まず、変動FIRフィルターの考え方によって、インパルス応答関数η(t,n)から作成される離散インパルス応答関数η(Pr,n)(例えば、式(10)に示す修正された離散インパルス応答関数η(Pr,n))が構成されている。さらに、信号処理装置10の係数テーブル60において、既述のように、離散インパルス応答関数η(Pr,n))から定まるフィルター係数として有限個(例えば30個)のフィルター係数値を配列することで、1つのフィルター係数列60aが構成され、このようなフィルター係数列60aは、後述する畳み込みの演算処理において必要となる分用意される。信号処理装置10は、係数テーブル60の作成のため、図1のRAM40にフィルター係数用の領域を確保する。また、信号処理装置10は、作成された係数テーブル60から必要な各フィルター係数列60aを選択して適宜読み出し、一方、入力データであるデータ列Y(nT)の該当範囲を抽出し、このデータ列Y(nT)の該当範囲と当該フィルター係数列60aとについて畳み込み演算をすることにより、データ列Y(mT)の各データ値(変換値)を算出する。つまり、信号処理装置10において、まず、係数テーブル60から1つのフィルター係数列60aを抽出部61に読み出すとともに、入力データバッファ70からアドレス位置が特定された対応する入力データ70aを照合して、これらの畳み込み演算処理を行い、算出結果のデータ80aを出力データバッファ80に格納されるデータの1つとして出力する。信号処理装置10は、以上の動作により出力すべきデータの順即ち新しいデータの時系列の順に新しいデータ列Y(mT)の各データ値(変換値)である変換値データ80aの出力を逐次行う。 FIG. 3 is a block diagram conceptually showing the operation in the case where conversion is performed by digital signal processing in the signal processing apparatus 10 which is an apparatus for converting the sampling frequency. Here, first, the discrete impulse response function η (Pr, n) created from the impulse response function η (t, n) according to the idea of the variation FIR filter (eg, the modified discrete impulse response shown in equation (10) The function η (Pr, n)) is constructed. Furthermore, as described above, in the coefficient table 60 of the signal processing device 10, a finite number (for example, 30) of filter coefficient values are arranged as filter coefficients determined from the discrete impulse response function η (Pr, n)). One filter coefficient sequence 60a is configured, and such a filter coefficient sequence 60a is prepared as needed in the calculation process of convolution described later. The signal processing apparatus 10 secures an area for filter coefficients in the RAM 40 of FIG. 1 in order to create the coefficient table 60. Also, the signal processing apparatus 10 selects and appropriately reads out each required filter coefficient sequence 60a from the created coefficient table 60, while extracting the corresponding range of the data sequence Y (nT) which is input data, and this data Each data value (conversion value) of the data string Y (mT b ) is calculated by performing a convolution operation on the corresponding range of the string Y (nT) and the filter coefficient string 60a. That is, in the signal processing apparatus 10, first, one filter coefficient sequence 60a is read from the coefficient table 60 to the extraction unit 61, and the corresponding input data 70a whose address position is specified from the input data buffer 70 is collated. And the data 80 a of the calculation result is output as one of the data stored in the output data buffer 80. The signal processing apparatus 10 sequentially outputs the conversion value data 80a which is each data value (conversion value) of the new data string Y (mT b ) in the order of data to be output by the above operation, that is, in the order of time series of new data. Do.
 以下、図1の信号処理装置10において変動FIRフィルターを用いたデジタル信号処理による元のデータ列Y(nT)から仕様の異なる新たなデータ列Y(mT)を得るデータ処理工程の具体的な動作説明をする。 Hereinafter, in the signal processing apparatus 10 of FIG. 1, a specific data processing process for obtaining a new data string Y (mT b ) having different specifications from the original data string Y (nT) by digital signal processing using a variation FIR filter Describe the operation.
 上記動作説明の前半部として、まず、図1及び図3のブロック図と、図4乃至図8のフローチャートとを参照して、図3の係数テーブル60の作成等の準備をする係数準備工程等の動作について説明する。即ち、以下では、新たなデータ列Y(mT)の算出を可能とするために、差分補間位置Prでの変換値Y(Pr)=Y(m)を与える離散インパルス応答関数η(Pr,n)(Prは、新しいデータ列Y(mT)を構成するデータ数の範囲で変化する。)の準備等に相当する工程の動作について説明する。 In the first half of the above description of the operation, first, referring to the block diagrams of FIG. 1 and FIG. 3 and the flowcharts of FIG. 4 to FIG. The operation of will be described. That is, in the following, in order to enable calculation of the new data sequence Y (mT b), conversion values of the difference interpolation position Pr Y (Pr) = Y ( m 0 T b) providing a discrete impulse response function η The operation of the process corresponding to the preparation of (Pr, n) (Pr changes in the range of the number of data constituting the new data string Y (mT b )) will be described.
 図1に示す信号処理装置10のCPU20は、図4に示すように、積和演算の回数を定めるタップ数TAmaxの値(例えば30程度)を定める(ステップS1)。つまり、これは、1つのフィルター係数列60aを構成するフィルター係数値の個数を決定することに相当する。このタップ数TAmaxは、RAM40の適当な領域に一時保管される。 As shown in FIG. 4, the CPU 20 of the signal processing apparatus 10 shown in FIG. 1 determines the value (for example, about 30) of the number of taps TAmax that determines the number of product-sum operations (step S1). That is, this corresponds to determining the number of filter coefficient values constituting one filter coefficient sequence 60a. The tap number TAmax is temporarily stored in an appropriate area of the RAM 40.
 次に、元のサンプリング周期Tに相当するデジタル値であるインプット基準周期として入力周期値Aを定め(ステップS2)、変換後の新しいサンプリング周期Tに相当するデジタル値であるアウトプット基準周期として出力周期値Bを定める(ステップS3)。これらの周期値A,Bは、RAM40の適当な領域に一時保管される。ここで、周期値A,Bを決めるための前提として、時間についてのデジタル化のための時間の最小単位をシステム時間単位とする。つまり、システム時間単位とは、デジタル信号の処理上において必要となる最も短い時間の単位であり、例えば、変換前後のサンプリング周波数f,fの最小公倍数の逆数等により定められる。これにより、周期値A,Bは、いずれもシステム時間単位の個数として表現され、当該個数が、それぞれの周期T,Tの長さに対応する。具体的には、例えば32kHzから44.1kHzへの変換の場合、N:M=320:441となるため(320と441とは互いに素)ステップS2,S3において、A=441、B=320と定まる。つまり、この場合のシステム時間単位は、1/(441×320)×10-2秒である。 Next, as an input the reference period is a digital value corresponding to the original sampling period T defines the input period value A (step S2), and as an output the reference period is a digital value corresponding to a new sampling period T b after conversion An output cycle value B is determined (step S3). These period values A and B are temporarily stored in an appropriate area of the RAM 40. Here, as a premise for determining the cycle values A and B, the minimum unit of time for digitization with respect to time is taken as a system time unit. That is, the system time unit is the unit of the shortest time required for processing digital signals, and is determined, for example, by the reciprocal of the least common multiple of the sampling frequencies f s and f b before and after conversion. Thus, the period value A, B are both expressed as the number of system time units, the number is, each period T, corresponding to the length of T b. Specifically, for example, in the case of conversion from 32 kHz to 44.1 kHz, N: M = 320: 441 (320 and 441 are mutually exclusive), and in steps S2 and S3, A = 441 and B = 320. It becomes settled. That is, the system time unit in this case is 1 / (441 × 320) × 10 −2 seconds.
 次に、CPU20は、周期値A,Bに基づいて出力バッファ数を算出する。つまり、CPU20は、RAM40に保管された周期値A,Bを読み出し、これらの値から例えば最大公約数に対応する係数kの値を定め、k×Aをもって出力バッファ数とする(ステップS4)。周波数の比を与えるNとMとが元々互いに素であるため、既述のように、差分補間位置Prも、441個のパターンで循環する。従って、ステップS4において、例えばk=1と定まる。CPU20は、これらのデータ即ち係数kや出力バッファ数k×AをRAM40の適当な領域に一時保管させる。なお、44.1kHzから48kHzへの変換の場合、N:M=441:480=3×147:3×160=147:160となるため、A=160、B=147と定まる。この場合、Prは、160個のパターンで循環し、例えばk=3となる。 Next, the CPU 20 calculates the number of output buffers based on the cycle values A and B. That is, the CPU 20 reads the cycle values A and B stored in the RAM 40, determines the value of the coefficient k corresponding to, for example, the greatest common divisor from these values, and sets k × A as the number of output buffers (step S4). Since N and M giving the ratio of frequencies are originally disjoint from each other, the difference interpolation position Pr also circulates in 441 patterns as described above. Therefore, in step S4, for example, k = 1 is determined. The CPU 20 temporarily stores these data, that is, the coefficient k and the number k × A of output buffers in an appropriate area of the RAM 40. In the case of conversion from 44.1 kHz to 48 kHz, N: M = 441: 480 = 3 × 147: 3 × 160 = 147: 160, so that A = 160 and B = 147. In this case, Pr circulates in 160 patterns, for example, k = 3.
 次に、CPU20は、遮断周波数f/2の値の決定即ち基準周波数fの値の決定を行う(ステップS5)。この基準周波数fは、RAM40の適当な領域に一時保管される。既述のように、例えば32kHzから44.1kHzへの変換の場合、遮断周波数f/2は、元のサンプリング周波数fの1/2である。なお、逆に44.1kHzから32kHzへの変換の場合、遮断周波数f/2は、変換後のサンプリング周波数fの1/2となる。 Next, the CPU 20 determines the value of the cutoff frequency f c / 2, that is, determines the value of the reference frequency f c (step S5). The reference frequency f c is temporarily stored in an appropriate area of the RAM 40. As described above, for example, in the case of conversion from 32 kHz to 44.1 kHz, the cutoff frequency f c / 2 is 1/2 of the original sampling frequency f s . In the case of conversion from 44.1 kHz to 32 kHz, the cut-off frequency f c / 2 is 1/2 of the sampling frequency f b after conversion.
 次に、CPU20は、RAM40に設けられたカウンターを利用して後述するステップS17でのフィルター係数の正規化の処理が規定回行われているか確認し(ステップS6)、達していなければ(ステップS6:No)正規化トータル値を初期化するとともに(ステップS7)、タップ数の初期値設定の処理(タップ数TA=0とする)を行う(ステップS8)。正規化トータル値やタップ数の初期値は、RAM40の適当な領域に一時保管される。 Next, the CPU 20 checks whether the filter coefficient normalization processing in step S17 described later has been performed a prescribed number of times using a counter provided in the RAM 40 (step S6), and if not reached (step S6) No: The normalized total value is initialized (step S7), and processing for setting the initial value of the number of taps (the number of taps TA is set to 0) is performed (step S8). The normalized total value and the initial value of the number of taps are temporarily stored in an appropriate area of the RAM 40.
 次に、CPU20は、RAM40に保管されたタップ数TAを確認し(ステップS16)、最大のタップ数TAmaxに達していなければ(ステップS16:No)、インパルス応答関数η(t,n)の時間補間位置m及び差分補間位置Prを決定する(ステップS9)。差分補間位置Prは、既に説明したようにPr=nT-mで表される。ここでは、1つの差分補間位置Pr(32kHzから44.1kHzへの変換の場合、441パターンのうちの1パターン)が決定される。この際、差分補間位置Prを与える変数mは、A-1を最大として、0から徐々に増加する。この差分補間位置Prは、RAM40の適当な領域に一時保管される。次に、CPU20は、差分補間位置Prの決定に伴い、インパルス応答関数η(t,n)に基づいて定まる離散インパルス応答関数η(Pr,n)のnに関して時間補間位置mを中心として有限個(例えば30個)の値を代入することで、フィルター係数を作成するための基本係数を算出する(ステップS10)。具体的には、例えば式(10)において、対応する離散インパルス応答関数η(Pr,n)のsinの部分及びsin以外の部分の数値化された演算がなされることで、基本係数が決定し、RAM40の適当な領域に一時保管される。次に、CPU20は、離散インパルス応答関数η(Pr,n)から得た基本係数に作用する窓関数を算出し(ステップS11)、ステップS10において算出された基本係数をRAM40から読み出して、ステップS11において算出された窓関数と基本係数とを掛け合わせて変動FIRフィルターの仮係数を算出する(ステップS12)。CPU20は、算出された仮係数を、RAM40に一時的に設けた仮係数テーブルに埋め込み(ステップS13)、RAM40に保管された正規化トータル値に加算する(ステップS14)。その後、CPU20は、RAM40に記憶されているタップ数TAを一つ繰り上げる(ステップS15)。 Next, the CPU 20 confirms the number of taps TA stored in the RAM 40 (step S16), and if it does not reach the maximum number of taps TAmax (step S16: No), the time of the impulse response function η (t, n) The interpolation position m 0 T b and the difference interpolation position Pr are determined (step S9). The differential interpolation position Pr is expressed by Pr = n 0 T−m 0 T b as described above. Here, one differential interpolation position Pr (in the case of conversion from 32 kHz to 44.1 kHz, one of 441 patterns) is determined. At this time, the variable m 0 giving the difference interpolation position Pr gradually increases from 0 with A-1 as the maximum. The differential interpolation position Pr is temporarily stored in an appropriate area of the RAM 40. Next, the CPU 20 centers the time interpolation position m 0 T b with respect to n of the discrete impulse response function η (Pr, n) determined based on the impulse response function η (t, n) with the determination of the difference interpolation position Pr. By substituting a finite number (for example, 30) of values as, basic coefficients for creating filter coefficients are calculated (step S10). Specifically, for example, in Equation (10), the basic coefficient is determined by performing a numerical operation on the sin part and the part other than sin of the corresponding discrete impulse response function η (Pr, n). , And temporarily stored in an appropriate area of the RAM 40. Next, the CPU 20 calculates a window function that acts on the basic coefficient obtained from the discrete impulse response function η (Pr, n) (step S11), reads the basic coefficient calculated in step S10 from the RAM 40, and executes step S11. The temporary function of the variation FIR filter is calculated by multiplying the window function calculated in the above and the basic coefficient (step S12). The CPU 20 embeds the calculated temporary coefficient in the temporary coefficient table temporarily provided in the RAM 40 (step S13), and adds the calculated temporary coefficient to the normalized total value stored in the RAM 40 (step S14). Thereafter, the CPU 20 increments the number of taps TA stored in the RAM 40 by one (step S15).
 次に、CPU20は、ステップS15での繰り上げによりタップ数TAが設定された最大値であるタップ数TAmax(例えばTAmax=30)に達成したかをRAM40の記憶を参照して確認し(ステップS16)、達していなければ(ステップS16:No)、再度ステップS9に戻り、各タップに対応する仮係数を算出する動作を繰り返す(ステップS9~ステップS15)。 Next, the CPU 20 checks whether the number of taps TA reached the maximum number of taps TAmax (for example, TAmax = 30) set by the carry-over in step S15 with reference to the storage of the RAM 40 (step S16). If not reached (step S16: No), the process returns to step S9 again to repeat the operation of calculating the temporary coefficient corresponding to each tap (step S9 to step S15).
 ステップS16において、タップ数TAが最大のタップ数TAmaxに達していると判断された場合(ステップS16:Yes)、CPU20は、ステップS15までにおいて算出されRAM40に暫定的に保管された仮係数テーブルを構成する1つの仮係数列全体を総和である正規化トータル値で割り算することにより、1つの仮係数列から正規化された1つのフィルター係数列60aを作成する(ステップS116、S17)。具体的には、CPU20は、タップ数TAが最大のタップ数TAmaxに達しているか否かを確認し(ステップS116)、達成していないと判断すれば(ステップS116:No)、算出された1つの仮係数列を構成する各仮係数を正規化トータル値でそれぞれ割り算して更新する動作をし(ステップS17)、この更新動作を全ての仮係数が正規化トータル値で割られたと判断するまで繰り返す。この動作により、CPU20は、最終的に得られた結果即ち1つの仮係数列を1つのフィルター係数列60aとして、RAM40内に記憶領域として用意されたテーブル係数60の対応箇所に格納することになる。 When it is determined in step S16 that the number of taps TA has reached the maximum number of taps TAmax (step S16: Yes), the CPU 20 calculates the temporary coefficient table temporarily calculated in step S15 and stored in the RAM 40. A single filter coefficient sequence 60a normalized from one temporary coefficient sequence is created by dividing the entire one temporary coefficient sequence that is to be constructed by the normalized total value, which is the sum (steps S116 and S17). Specifically, the CPU 20 checks whether or not the number of taps TA reaches the maximum number of taps TAmax (step S116), and if it is determined that the number is not achieved (step S116: No), the calculated 1 Each temporary coefficient that constitutes one temporary coefficient sequence is divided and updated by the normalized total value (step S17), and it is determined that this update operation has all temporary coefficients divided by the normalized total value. repeat. By this operation, the CPU 20 stores the finally obtained result, that is, one temporary coefficient sequence as one filter coefficient sequence 60a in the corresponding portion of the table coefficient 60 prepared as the storage area in the RAM 40. .
 CPU20は、ステップS116において、タップ数を数え、1つの仮係数テーブルについて全ての仮係数の処理がなされたと判断した場合(ステップS116:Yes)、RAM40の記憶を参照して、フィルター係数列60aが必要な分だけ形成されたか否かを確認する(ステップS6)。つまり、CPU20は、ステップS116、S17での仮係数テーブルを構成するフィルター係数列60aの作成処理がA回行われたかを確認する。ここで、フィルター係数列60aが最小必要単位分(A個分)形成されていなければ(ステップS6:No)、CPU20は、新たな離散インパルス応答関数η(Pr,n)に基づくフィルター係数即ちフィルター係数列60aを作成するための処理(ステップS7~ステップS17)を繰り返す。 When the CPU 20 counts the number of taps in step S116 and determines that all temporary coefficients have been processed for one temporary coefficient table (step S116: Yes), the filter coefficient sequence 60a is referred to with reference to the memory of the RAM 40. It is confirmed whether the necessary amount is formed (step S6). That is, the CPU 20 confirms whether the process of creating the filter coefficient sequence 60a constituting the temporary coefficient table in steps S116 and S17 has been performed A times. Here, if the filter coefficient sequence 60a is not formed for the minimum necessary unit (A pieces) (step S6: No), the CPU 20 calculates a filter coefficient or filter based on the new discrete impulse response function η (Pr, n) The process (steps S7 to S17) for creating the coefficient sequence 60a is repeated.
 CPU20は、フィルター係数列60aの作成をA回行った即ちテーブル係数60にA回分のフィルター係数列60aが揃ったと判断すると(ステップS6:Yes)、最小限必要なデータが揃ったものと判断し、係数テーブル60に付随する時間補間位置テーブルを作成するための処理を行う(ステップS18~ステップS20)。具体的には、まず、CPU20は、時間補間位置テーブルの情報が必要分揃っているか否かを確認する(ステップS18)。ここで、時間補間位置テーブルは、テーブル係数60に付随する索引としての機能を有し、RAM40の記憶領域に保管される。CPU20は、時間補間位置テーブルの情報が必要分揃っていなければ(ステップS18:No)、まず、入力されるデータの位置決定の準備処理即ちアドレス位置テーブルの作成処理を行う(ステップS19)。つまり、新しく生成される各データの作成のために、基準となる元のデータの位置を決定する。このために、CPU20は、図3の入力データバッファ70における特定の入力データ70aのアドレス位置を決定し、変換後の1つの新しいデータに対する一群の元のデータの入力位置の対応付けをアドレス位置テーブルとしてRAM40の適当な領域に一時保管する。次に、CPU20は、1つの新しいデータと元のデータとの位置ずれの量を定める差分補間位置Prに対応する差分補間位置テーブルの準備処理を行う(ステップS20)。つまり、CPU20は、特定の差分補間位置Prの対応する係数テーブル60中の特定のフィルター係数列60aのアドレス位置を決定する。これにより準備されたフィルター係数列60aのアドレス位置は、差分補間位置テーブルとしてRAM40の適当な領域に一時保管される。以上の動作が時間補間位置テーブル作成に必要なだけ繰り返されると(ステップS18:Yes)、係数準備工程の動作を終了する。なお、以上において、ステップS19は、1つの変換値Y(Pr)=Y(m)の時間補間位置mに対応させて、元のデータ列Y(nT)のうち基準となる1つのデータ値Y(nT)の位置を定めるために必要なアドレスデータを準備することに相当する。ステップS20は、後述するデータ算出工程における積和演算又は畳み込みに際して上記基準のデータ値Y(nT)の前後にタップ数TAmaxだけ含まれるデータ値Yに作用させて特定の差分補間位置Prにおける変換値Y(Pr)=Y(m)の算出を可能にするフィルター係数列60aを指定するために必要なアドレスデータをステップS19で得たアドレス位置に関連付けて準備・保管することに相当する。 If the CPU 20 determines that the filter coefficient sequence 60a has been created A times, that is, if the filter coefficients sequence 60a for A times has been aligned with the table coefficients 60 (step S6: Yes), it is determined that the minimum necessary data is available. A process for creating a time interpolation position table attached to the coefficient table 60 is performed (steps S18 to S20). Specifically, first, the CPU 20 confirms whether or not the information of the time interpolation position table has been collected as necessary (step S18). Here, the time interpolation position table has a function as an index attached to the table coefficient 60, and is stored in the storage area of the RAM 40. If the information of the time interpolation position table has not been collected as necessary (step S18: No), the CPU 20 performs preparation processing for position determination of input data, that is, creation processing of an address position table (step S19). That is, the position of the original data to be a reference is determined for creating each newly generated data. For this purpose, the CPU 20 determines the address position of the specific input data 70a in the input data buffer 70 of FIG. 3, and associates the input position of the group of original data with one new data after conversion as an address position table. As temporary storage in a suitable area of RAM 40. Next, the CPU 20 performs preparation processing of a differential interpolation position table corresponding to the differential interpolation position Pr which determines the amount of positional deviation between one new data and the original data (step S20). That is, the CPU 20 determines the address position of the specific filter coefficient sequence 60a in the corresponding coefficient table 60 of the specific differential interpolation position Pr. The address position of the filter coefficient sequence 60a prepared by this is temporarily stored in an appropriate area of the RAM 40 as a differential interpolation position table. When the above operation is repeated as necessary for creating the time interpolation position table (step S18: Yes), the operation of the coefficient preparation process is ended. In the above, step S19 corresponds to the time interpolation position m 0 T b of one converted value Y (Pr) = Y (m 0 T b ), and corresponds to the reference in the original data string Y (nT). It corresponds to the preparation of the address data necessary to determine the position of one data value Y (n 0 T). Step S20 operates on the data value Y which is included by the number of taps TAmax before and after the reference data value Y (n 0 T) at the time of product-sum operation or convolution in the data calculation process described later. The address data necessary for specifying the filter coefficient sequence 60a enabling calculation of the converted value Y (Pr) = Y (m 0 T b ) is associated with the address position obtained in step S19, and is prepared and stored. Equivalent to.
 次に、図1及び図3のブロック図と、図9及び図10のフローチャートとを参照して、係数準備工程で得られた係数テーブル60に基づいて行われるデータ算出工程等について説明する。即ち、以下では、係数準備工程において準備された離散インパルス応答関数η(Pr、n)に基づくフィルター係数としての係数テーブル60を用いた畳み込み演算により元のデータ列Y(nT)から新しいデータ列Y(mT)を算出する工程の動作について説明する。 Next, with reference to the block diagrams of FIG. 1 and FIG. 3 and the flowcharts of FIG. 9 and FIG. 10, a data calculation step and the like performed based on the coefficient table 60 obtained in the coefficient preparation step will be described. That is, in the following, a new data string Y is generated from the original data string Y (nT) by convolution using the coefficient table 60 as a filter coefficient based on the discrete impulse response function η (Pr, n) prepared in the coefficient preparation step. The operation of the process of calculating (mT b ) will be described.
 まず、図1のCPU20は、図9に示すように、入力バッファ数k×Bの調整を行う(ステップS51)。つまり、入力バッファ数k×Bに合わせた信号送出をするよう調整するとともに、変換の最初及び最後においては、例えば不足する分のデータ(情報α)を調整する。例えば、当該変換処理の直前の処理時に取得したデータの最後の部分を取り出して変換の最初に用いることで、不足データ分を補う。また、変換の最初でそれ以前のデータがない場合や変換の最後でデータが不足する場合には、情報αの分をゼロ信号或いは、ダミー信号等により調整する。なお、このような初期及び終期の信号に対応する変換値Y(Pr)=Y(m)は、不要なものとして消去することも可能である。次に、CPU20は、情報の出力が可能な分の回数(出力バッファ数k×A回)の処理が行われたか否かをRAM40の記憶を参照して確認し(ステップS52)、達成していなければ、下のデータの基準位置を読み出す基準位置アドレス算定の処理を行う(ステップS53)。つまり、CPU20は、RAM40からステップS19で定められた元のデータ列Y(nT)についてのアドレス位置を読み出し、対応する演算のために必要とされる元のデータ列Y(nT)の部分を選択する処理を行う。次に、CPU20は、差分補間位置アドレス準備の処理を行う(ステップS54)。つまり、CPU20は、RAM40からステップS20で定められた差分補間位置Prについてのアドレス位置を読み出す。以上により準備がなされると、まず、CPU20は、最大のタップ数TAmax(例えばTAmax=30)回動作がなされたかをRAM40の記憶を参照して確認し、なされていなければ、上記により準備された各フィルター系数値等の各変動係数をロードして(ステップS56)、当該元のデータ列部分と差分補間位置Prの情報を含むフィルター係数とによる畳み込み演算処理をROM30に保管されているプログラムに従って行い(ステップS56a、S56b)、当該動作がタップ数TAmaxの回数分処理がなされると、新しいデータの1つの変換値Y(Pr)=Y(m)が作成される(ステップS57、S58)。 First, as shown in FIG. 9, the CPU 20 of FIG. 1 adjusts the number of input buffers k × B (step S51). That is, the signal transmission is adjusted to the input buffer number k × B, and at the beginning and the end of the conversion, for example, the data (information α) for the shortage is adjusted. For example, the last part of the data acquired at the time of processing just before the conversion processing is taken out and used at the beginning of conversion to compensate for the missing data. Also, if there is no previous data at the beginning of conversion or if there is a shortage of data at the end of conversion, the amount of information α is adjusted with a zero signal or a dummy signal or the like. Note that the conversion value Y (Pr) = Y (m 0 T b ) corresponding to such initial and final signals can be eliminated as unnecessary. Next, the CPU 20 checks whether or not the processing has been performed the number of times (output buffer number k × A times) for which output of information is possible (step S52). If not, processing of reference position address calculation for reading out the reference position of the lower data is performed (step S53). That is, the CPU 20 reads the address position of the original data string Y (nT) determined in step S19 from the RAM 40, and selects the part of the original data string Y (nT) required for the corresponding operation. Do the process. Next, the CPU 20 performs processing of differential interpolation position address preparation (step S54). That is, the CPU 20 reads the address position of the differential interpolation position Pr determined in step S20 from the RAM 40. When preparation is made according to the above, first, the CPU 20 confirms whether or not the operation has been performed the maximum number of taps TAmax (for example, TAmax = 30) times with reference to the storage of the RAM 40. Each variation coefficient such as each filter system numerical value is loaded (step S56), and the convolution operation processing by the original data string portion and the filter coefficient including the information of differential interpolation position Pr is performed according to the program stored in ROM 30. (Steps S56a and S56b) When the operation is processed for the number of taps TAmax, one converted value Y (Pr) = Y (m 0 T b ) of new data is created (steps S57 and S58). ).
 以下、上記した動作を出力バッファ数k×A回繰り返し(ステップS52)出力バッファ数k×A分のデータが蓄積されると図3の出力データバッファ80から一群の新しいデータ列Y(mT)として出力される(ステップS59)。つまり、図1の出力インターフェース部52を介して信号処理装置10の外部へ新しいデータ列Y(mT)が出力される。ステップS59においてデータが出力されると、入力インターフェース部51を介して新たな入力データがあるか否かを判断し(ステップS60)、入力データがある場合には(ステップS60:Yes)、再びデータを作成するための動作(ステップS51~ステップS60)を繰り返し、入力データがなくなれば(ステップS60:No)、データ算出工程の動作を終了する。 Thereafter, the above-described operation is repeated by the number k × A of output buffers (step S52). When data corresponding to the number k × A of output buffers is accumulated, a new data string Y (mT b ) is output from output data buffer 80 of FIG. Is output (step S59). That is, a new data string Y (mT b ) is output to the outside of the signal processing apparatus 10 through the output interface unit 52 of FIG. When data is output in step S59, it is determined whether there is new input data through input interface unit 51 (step S60). If there is input data (step S60: Yes), the data is output again The operation (step S51 to step S60) for creating the data is repeated, and if there is no input data (step S60: No), the operation of the data calculation process is ended.
 〔第2実施形態〕
 以下、図11を参照して、本発明の第2実施形態に係る信号処理装置について説明する。なお、本実施形態の信号処理装置は、回路構造を備えて構成されているが、第1実施形態の変形例であり、図1等に示す信号処理装置10の要素と同一名称のものについては、特に説明をしない限り、同様の機能を有するものとする。
Second Embodiment
The signal processing apparatus according to the second embodiment of the present invention will be described below with reference to FIG. Although the signal processing device of the present embodiment is configured to have a circuit structure, it is a modification of the first embodiment, and the elements having the same names as the elements of the signal processing device 10 shown in FIG. The same function is assumed unless otherwise described.
 図11に示す信号処理装置110は、データ作成部120と、コントローラ130と、係数テーブル140と、時間補間位置テーブル150と、抽出部160と、入力データ送出部170と、畳み込み演算部180と、出力データ部190と、出力バッファ部191とを備える。なお、時間補間位置テーブル150は、アドレス位置テーブル150aと、差分補間位置テーブル150bとを含む。 A signal processing device 110 shown in FIG. 11 includes a data generation unit 120, a controller 130, a coefficient table 140, a time interpolation position table 150, an extraction unit 160, an input data transmission unit 170, and a convolution operation unit 180. An output data unit 190 and an output buffer unit 191 are provided. The time interpolation position table 150 includes an address position table 150a and a difference interpolation position table 150b.
 データ作成部120は、離散インパルス応答関数η(Pr,n)に対応するフィルター係数の作成等の準備をする係数準備工程を行う。コントローラ130は、フィルター係数に基づく畳み込み演算により新しいデータについての変換値変換値Y(m)=Y(Pr)を算出するデータ算出工程を行う。 The data creation unit 120 performs a coefficient preparation step of preparing for creation of a filter coefficient corresponding to the discrete impulse response function η (Pr, n). The controller 130 performs a data calculation step of calculating a converted conversion value Y (m 0 T b ) = Y (Pr) for new data by convolution based on filter coefficients.
 以下、データ作成部120及びコントローラ130によるデータ処理工程の動作説明をする。まず、データ作成部120は、離散インパルス応答関数η(Pr,n)に対応するフィルター係数の作成等の準備をすると、係数テーブル140に作成したフィルター係数列60a等の情報を出力する。また、新しく生成されるデータ列の作成のために用いる元のデータの位置に関する情報を時間補間位置テーブル150のアドレス位置テーブル150aに出力し(図8のステップS19の処理に相当する)、差分補間位置Prに関する情報を時間補間位置テーブル150の差分補間位置テーブル150bに出力する(図8のステップS20の処理に相当する)。以上により、係数準備工程が完了する。次に、コントローラ130は、データ算出工程の動作を行う。具体的には、まず、コントローラ130は、係数テーブル140及び時間補間位置テーブル150から離散インパルス応答関数η(Pr,n)に基づくフィルター係数に相当する1つのフィルター係数列60aを抽出部160に読み出す。一方、当該フィルター係数列60aに対応する元のデータ列の部分を元のデジタルデータ列Y(nT)から抽出して入力データ送出部170に配列する。さらに、コントローラ130は、入力データ送出部170に抽出された入力データ70aと抽出部160に読み出されたフィルター係数列60aとを畳み込み演算部180で畳み込み演算処理する。畳み込み演算部180での演算結果は、出力データ部190に出力され、さらに、出力データ部190の出力データ80aは、出力バッファ部191により外部へ出力される。以上のように、コントローラ130の制御によって新しいデータについての変換値を算出するデータ算出工程の動作がなされる。この場合、図に示すように、コントローラ130と、これに制御される係数テーブル140、時間補間位置テーブル150、抽出部160、入力データ送出部170、畳み込み演算部180、出力データ部190及び出力バッファ部191とは、変動FIRフィルター200として機能している。 Hereinafter, the operation of the data processing process by the data creation unit 120 and the controller 130 will be described. First, when preparing for creation of a filter coefficient corresponding to the discrete impulse response function η (Pr, n), the data creation unit 120 outputs information such as the created filter coefficient sequence 60 a to the coefficient table 140. Further, information on the position of the original data used to create a newly generated data string is output to the address position table 150a of the time interpolation position table 150 (corresponding to the process of step S19 in FIG. 8). Information on the position Pr is output to the differential interpolation position table 150b of the time interpolation position table 150 (corresponding to the process of step S20 in FIG. 8). Thus, the coefficient preparation process is completed. Next, the controller 130 performs the operation of the data calculation process. Specifically, first, the controller 130 reads one filter coefficient sequence 60a corresponding to the filter coefficient based on the discrete impulse response function η (Pr, n) from the coefficient table 140 and the time interpolation position table 150 to the extraction unit 160 . On the other hand, the part of the original data string corresponding to the filter coefficient string 60 a is extracted from the original digital data string Y (nT) and arranged in the input data sending unit 170. Further, the controller 130 performs a convolution operation process on the input data 70 a extracted by the input data sending unit 170 and the filter coefficient sequence 60 a read by the extraction unit 160 in the convolution operation unit 180. The calculation result of the convolution unit 180 is output to the output data unit 190, and the output data 80a of the output data unit 190 is output to the outside by the output buffer unit 191. As described above, the control of the controller 130 performs the operation of the data calculation step of calculating the conversion value for new data. In this case, as shown in the figure, the controller 130 and the coefficient table 140 controlled thereby, the time interpolation position table 150, the extraction unit 160, the input data transmission unit 170, the convolution operation unit 180, the output data unit 190 and the output buffer The part 191 functions as the fluctuation FIR filter 200.
 なお、本発明は、上記に限定されるものではなく、例えば、式(1)の関数Y(t)は、時間tについて任意の点を抽出可能であり、出力データについて、周期性を持たせることなく関数Y(t)上の任意の点からサンプリングして構成することも可能である。また、入力データについても、周期的なものとしているが、必ずしも全てのデータが周期的なものでなくてもよく、例えば、データのヘッダー部分についてのみ読み取りを行うといった態様においても適用させることができる。 The present invention is not limited to the above. For example, the function Y (t) of the equation (1) can extract an arbitrary point at time t, and gives periodicity to output data. It is also possible to configure by sampling from an arbitrary point on the function Y (t) without. Also, although the input data is periodical, not all the data may be periodical. For example, the present invention can be applied to a mode in which only the header portion of the data is read. .
 また、上記各実施形態では、元のデータ列Y(nT)を音声その他の時系列的なデジタルデータとし、狭義のサンプリング周波数レート変換について説明しているが、本発明は、これに限らず、例えば3次元グラフィックスの表示や動画の再生におけるフレームレート変換、画像等の拡大、縮小等の解像度変換、といった各種データ変換処理等の広義のサンプリング周波数レート変換としても適用可能である。 In each of the above embodiments, the original data string Y (nT) is used as voice and other time-series digital data, and sampling frequency rate conversion in a narrow sense is described, but the present invention is not limited to this. For example, the present invention is also applicable as sampling frequency rate conversion in a broad sense such as various data conversion processing such as frame rate conversion in three-dimensional graphics display and reproduction of moving images, resolution conversion such as enlargement and reduction of images.
 また、上記第1実施形態では、窓関数を基本係数とを掛け合わせる態様としているが、窓関数の利用方法はこれ以外であっても構わない。また、窓関数の種類についても、既述のように種々のものを採用することができる。 In the first embodiment, the window function is multiplied by the basic coefficient. However, the window function may be used other than this. In addition, various types of window functions can be adopted as described above.
 また、上記第1実施形態では、窓関数と基本係数とを掛け合わせて算出される仮係数について正規化の処理を行うものとしているが、係数の正規化処理は、ここに限らず、プログラムの設計等に応じて種々の状態において行うことも可能である。 In the first embodiment, normalization processing is performed on temporary coefficients calculated by multiplying the window function by the basic coefficient. However, the normalization processing of the coefficients is not limited to this, and the processing of the program may be performed. It is also possible to carry out in various states according to the design and the like.
 また、上記第1実施形態では、変動FIRフィルターにおいて、遮断周波数f/2についても加味することで、エイリアシング防止用のローパスフィルターとしての役割も兼ねたものとしているが、それに加えて他の機能を持たせることもできる。例えば、所望の周波数以下の成分に制限するローパスフィルター、所望の周波数以上の成分に制限するハイパスフィルター、所望の周波数範囲の成分に制限するバンドパスフィルター、特定の周波数帯域を除去する帯域除去フィルター等としての役割も兼ねた構成とすることができる。 In the first embodiment, the variable FIR filter also functions as a low pass filter for preventing aliasing by taking into consideration the cutoff frequency f c / 2, but in addition to that, other functions are added. Can also be For example, a low pass filter that limits components below a desired frequency, a high pass filter that limits components above a desired frequency, a band pass filter that limits components in a desired frequency range, a band removal filter that removes a specific frequency band, etc. It can be set as the role which also serves as.
 随意に設定可能なローパスフィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n)に代えて以下の式を適用することができる。
Figure JPOXMLDOC01-appb-I000029
ここで、式(14)において、f´/2は、強制的遮断周波数である。なお、f´<fとなっている。この場合、式(14)を適用することで、補間計算式即ち変換値は、
Figure JPOXMLDOC01-appb-I000030
と表される。現実には、窓関数を含む近似式が用いられ、nを有限の積和演算タップ数とする。
As a configuration having a low-pass filter function that can be arbitrarily set, for example, the following equation can be applied instead of the discrete impulse response function η (Pr, n) of equation (10).
Figure JPOXMLDOC01-appb-I000029
Here, in Formula (14), f ' c / 2 is a forced cutoff frequency. Note that f ' c <f c . In this case, by applying equation (14), the interpolation calculation equation, that is, the conversion value is
Figure JPOXMLDOC01-appb-I000030
It is expressed as In reality, an approximate expression including a window function is used, and n is a limited number of product-sum operation taps.
 また、随意に設定可能なハイパスフィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n)に代えて以下の式を適用することができる。
Figure JPOXMLDOC01-appb-I000031
ここで、式(15)において、f/2は、エイリアシング防止のための遮断周波数であり、f/2は、ハイパス周波数である。なお、f<fとなっている。この場合、式(15)を適用することで、補間計算式即ち変換値は、
Figure JPOXMLDOC01-appb-I000032
と表される。
Further, as a configuration having a high-pass filter function that can be arbitrarily set, for example, the following equation can be applied instead of the discrete impulse response function η (Pr, n) of equation (10).
Figure JPOXMLDOC01-appb-I000031
Here, in the equation (15), f c / 2 is a cutoff frequency for anti-aliasing, and f d / 2 is a high pass frequency. Note that f d <f c . In this case, by applying equation (15), the interpolation calculation equation, that is, the conversion value is
Figure JPOXMLDOC01-appb-I000032
It is expressed as
 さらに、随意に設定可能なバンドパスフィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n) に代えて以下の式を適用することができる。
Figure JPOXMLDOC01-appb-I000033
ここで、式(16)において、f´/2は、強制的遮断周波数であり、f/2は、ハイパス周波数である。なお、f<f´<fとなっている。この場合、式(16)を適用することで、補間計算式即ち変換値は、
Figure JPOXMLDOC01-appb-I000034
と表される。
Furthermore, as a configuration having a band pass filter function that can be optionally set, for example, the following equation can be applied instead of the discrete impulse response function η (Pr, n) of equation (10).
Figure JPOXMLDOC01-appb-I000033
Here, in equation (16), f ′ c / 2 is a forced cutoff frequency and f d / 2 is a high pass frequency. Note that f d <f ′ c <f c . In this case, by applying equation (16), the interpolation calculation equation, that is, the conversion value is
Figure JPOXMLDOC01-appb-I000034
It is expressed as
 さらに、随意に特定帯域の周波数の除去が可能な帯域除去フィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n) に代えて以下の式を適用することができる。
Figure JPOXMLDOC01-appb-I000035
ここで、式(17)において、f/2は、帯域除去下端周波数であり、f/2は、帯域除去上端周波数である。なお、f<f<fとなっている。この場合、式(17)を適用することで、補間計算式即ち変換値は、
Figure JPOXMLDOC01-appb-I000036
と表される。
Furthermore, as a configuration having the function of a band removal filter capable of removing the frequency of a specific band arbitrarily, for example, the following equation is applied instead of the discrete impulse response function η (Pr, n) of equation (10) can do.
Figure JPOXMLDOC01-appb-I000035
Here, in the equation (17), f j / 2 is a band removal lower end frequency, and f k / 2 is a band removal upper end frequency. Note that f j <f k <f c . In this case, by applying equation (17), the interpolation equation, ie, the conversion value is
Figure JPOXMLDOC01-appb-I000036
It is expressed as
 また、上記第1実施形態では、例えば、図1に示すように、信号処理装置10における各種の処理をCPU20により行っているが、CPU20に代えて、積和演算が高速に処理できるように信号処理について特化したDSP(Digital Signal Processor)や、CPU等を1個の半導体チップに集積したMPU(Micro Processor Unit)等を用いることも可能である。また、DSPやMPUは、例えば、信号処理装置10のROM30やRAM40等の記憶部分に相当する機能も含んで畳み込み演算等の各種処理を行うものとしてもよい。 In the first embodiment, for example, as shown in FIG. 1, the CPU 20 performs various processes in the signal processing apparatus 10, but instead of the CPU 20, signals are provided so that product-sum operations can be processed at high speed. It is also possible to use a DSP (Digital Signal Processor) specialized for processing, an MPU (Micro Processor Unit) in which a CPU and the like are integrated in one semiconductor chip, and the like. Also, the DSP or MPU may perform various processing such as convolution operation, including a function corresponding to a storage portion such as the ROM 30 or the RAM 40 of the signal processing device 10, for example.
 10,110…信号処理装置、 20…CPU、 30…ROM、 40…RAM、 Y(nT),Y(mT)…データ列、 T,T…周期、 f,f,f…周波数、 差分補間位置…Pr、 60,140…係数テーブル、 60a…フィルター係数列、 61,160…抽出部、 70…入力データバッファ、 80…出力データバッファ、 120…データ作成部、 130…コントローラ、 150…時間補間位置テーブル、 170…入力データ送出部、 180…畳み込み演算部 10, 110 ... signal processing unit, 20 ... CPU, 30 ... ROM , 40 ... RAM, Y (nT), Y (mT b) ... data string, T, T b ... period, f s, f b, f c ... Frequency, differential interpolation position ... Pr, 60, 140 ... coefficient table, 60a ... filter coefficient sequence, 61, 160 ... extraction unit, 70 ... input data buffer, 80 ... output data buffer, 120 ... data creation unit, 130 ... controller, 150 ... time interpolation position table, 170 ... input data transmission unit, 180 ... convolution operation unit

Claims (22)

  1.  離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため前記時間補間位置に応じた離散インパルス応答関数に基づいてフィルター係数を準備する係数準備手段と、
     前記係数準備手段において準備された前記フィルター係数を用いて、前記元のデータの畳み込み演算により前記時間補間位置における前記変換値を算出するデータ算出手段と
    を備えるサンプリング周波数レート変換の装置。
    In order to provide a conversion value at a time interpolation position corresponding to new data to be obtained by conversion from discrete original data, coefficient preparation for preparing filter coefficients based on a discrete impulse response function according to the time interpolation position Means,
    An apparatus for sampling frequency rate conversion, comprising: data calculation means for calculating the conversion value at the time interpolation position by convolution operation of the original data using the filter coefficient prepared in the coefficient preparation means.
  2.  前記係数準備手段は、前記離散インパルス応答関数に基づく前記フィルター係数として係数テーブルを準備し、
     前記データ算出手段は、前記係数テーブルの各データと前記元のデータとの畳み込み演算により前記変換値を算出する、請求項1に記載のサンプリング周波数レート変換の装置。
    The coefficient preparation means prepares a coefficient table as the filter coefficient based on the discrete impulse response function,
    The apparatus of sampling frequency rate conversion according to claim 1, wherein said data calculation means calculates said conversion value by convolution operation of each data of said coefficient table and said original data.
  3.  前記係数準備手段は、前記元のデータについてのサンプリング周期と、前記新たなデータについてのサンプリング周期との差に対応して設定される一連の前記時間補間位置での前記変換値を与えるように前記離散インパルス応答関数を決定する、請求項1及び請求項2のいずれか一項に記載のサンプリング周波数レート変換の装置。 The coefficient preparation means is configured to provide the converted values at a series of the time interpolation positions set corresponding to a difference between a sampling period for the original data and a sampling period for the new data. An apparatus for sampling frequency rate conversion according to any of the claims 1 and 2, wherein a discrete impulse response function is determined.
  4.  前記離散インパルス応答関数に基づいて前記フィルター係数を設定することによって、任意の波数帯域を選択する、請求項3に記載のサンプリング周波数レート変換の装置。 The apparatus for sampling frequency rate conversion according to claim 3, wherein any wave number band is selected by setting the filter coefficient based on the discrete impulse response function.
  5.  前記係数準備手段は、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち、低い周波数を所定値以上の高周波数帯域の遮断の基準とする、請求項4に記載のサンプリング周波数レート変換の装置。 5. The sampling frequency according to claim 4, wherein said coefficient preparation means uses, as a reference for cutoff of a high frequency band having a predetermined value or more, a low frequency among the sampling frequency of said original data and the sampling frequency of said new data. Equipment for rate conversion.
  6.  前記係数準備手段は、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターの変化に応じて前記離散インパルス応答関数に基づく前記フィルター係数を準備する、請求項1から請求項5までのいずれか一項に記載のサンプリング周波数レート変換の装置。 The said coefficient preparation means prepares the said filter coefficient based on the said discrete impulse response function according to the change of the predetermined parameter corresponded to the difference of the discrete point of the said original data, and the said time interpolation position. An apparatus for sampling frequency rate conversion according to any one of items 1 to 5.
  7.  前記係数準備手段は、前記離散インパルス応答関数及び窓関数に基づいて前記フィルター係数を補正している、請求項1から請求項6までのいずれか一項に記載のサンプリング周波数レート変換の装置。 The apparatus for sampling frequency rate conversion according to any one of claims 1 to 6, wherein said coefficient preparation means corrects said filter coefficient based on said discrete impulse response function and a window function.
  8.  前記係数準備手段は、前記離散インパルス応答関数に基づく前記フィルター係数を正規化するための正規化手段をさらに有する、請求項1から請求項7までのいずれか一項に記載のサンプリング周波数レート変換の装置。 The sampling frequency rate conversion according to any one of claims 1 to 7, wherein said coefficient preparation means further comprises normalization means for normalizing said filter coefficients based on said discrete impulse response function. apparatus.
  9.  前記新たなデータは、前記元のデータから復元される関数に基づいて生成される、請求項1から請求項8までのいずれか一項に記載のサンプリング周波数レート変換の装置。 The apparatus for sampling frequency rate conversion according to any one of claims 1 to 8, wherein the new data is generated based on a function restored from the original data.
  10.  前記元のデータから復元される関数は、時刻tの関数Y(t)であり、Tを、前記元のデータのサンプリング周期とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値として、以下の数式
    Figure JPOXMLDOC01-appb-I000001
    を用いて表現される、請求項9に記載のサンプリング周波数レート変換の装置。
    The function restored from the original data is a function Y (t) at time t, T is the sampling period of the original data, Y (nT) is the original data, and f s is Let f c be the sampling frequency of the original data and the smaller one of the sampling frequency of the original data and the sampling frequency of the new data.
    Figure JPOXMLDOC01-appb-I000001
    10. The apparatus of sampling frequency rate conversion according to claim 9, which is expressed using.
  11.  前記新たなデータは、Tを、前記新たなデータのサンプリング周期とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとして、以下の数式
    Figure JPOXMLDOC01-appb-I000002
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項10に記載のサンプリング周波数レート変換の装置。
    In the new data, T b is a sampling period of the new data, Pr is a predetermined parameter corresponding to the difference between the discrete points of the original data and the time interpolation position, and n is an integer Assuming that Pr = n 0 T-m 0 T b by 0 and m 0 , the following formula
    Figure JPOXMLDOC01-appb-I000002
    11. The apparatus for sampling frequency rate conversion according to claim 10, which is expressed using an approximate expression using a window function with a finite value of n.
  12.  前記新たなデータは、Tを、前記新たなデータのサンプリング周期とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f´/2を強制的遮断周波数とし、f´<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000003
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項10に記載のサンプリング周波数レート変換の装置。
    In the new data, T b is a sampling period of the new data, Pr is a predetermined parameter corresponding to the difference between the discrete points of the original data and the time interpolation position, and n is an integer Assuming that Pr = n 0 T−m 0 T b by 0 and m 0 , and further, let f ′ c / 2 be a forced cutoff frequency, and let f ′ c <f c , the following formula
    Figure JPOXMLDOC01-appb-I000003
    11. The apparatus for sampling frequency rate conversion according to claim 10, which is expressed using an approximate expression using a window function with a finite value of n.
  13.  前記新たなデータは、Tを、前記新たなデータのサンプリング周期とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f/2をハイパス周波数とし、f<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000004
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項10に記載のサンプリング周波数レート変換の装置。
    In the new data, T b is a sampling period of the new data, Pr is a predetermined parameter corresponding to the difference between the discrete points of the original data and the time interpolation position, and n is an integer the 0 and m 0 shall be represented as Pr = n 0 T-m 0 T b, further, a f d / 2 and a high-pass frequency, as f d <f c, the following equation
    Figure JPOXMLDOC01-appb-I000004
    11. The apparatus for sampling frequency rate conversion according to claim 10, which is expressed using an approximate expression using a window function with a finite value of n.
  14.  前記新たなデータは、Tを、前記新たなデータのサンプリング周期とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f´/2を強制的遮断周波数とし、f/2をハイパス周波数とし、f<f´<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000005
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項10に記載のサンプリング周波数レート変換の装置。
    In the new data, T b is a sampling period of the new data, Pr is a predetermined parameter corresponding to the difference between the discrete points of the original data and the time interpolation position, and n is an integer shall be represented as Pr = n 0 T-m 0 T b by 0 and m 0, further, the force cut-off frequency f'c / 2, and the f d / 2 and the high-pass frequency, f d <f' c <f c , the following formula
    Figure JPOXMLDOC01-appb-I000005
    11. The apparatus for sampling frequency rate conversion according to claim 10, which is expressed using an approximate expression using a window function with a finite value of n.
  15.  前記新たなデータは、Tを、前記新たなデータのサンプリング周期とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f/2を帯域除去下端周波数とし、f/2を帯域除去上端周波数とし、f<f<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000006
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項10に記載のサンプリング周波数レート変換の装置。
    In the new data, T b is a sampling period of the new data, Pr is a predetermined parameter corresponding to the difference between the discrete points of the original data and the time interpolation position, and n is an integer Let 0 and m 0 denote Pr = n 0 T−m 0 T b, and let f j / 2 be the band removal lower end frequency and f k / 2 be the band removal upper end frequency, and f j <f The following equation, where k <f c
    Figure JPOXMLDOC01-appb-I000006
    11. The apparatus for sampling frequency rate conversion according to claim 10, which is expressed using an approximate expression using a window function with a finite value of n.
  16.  離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため離散的に設定された離散インパルス応答関数に基づいてフィルター係数を準備する係数準備工程と、
     前記係数準備工程において準備された前記フィルター係数を用いて、前記元のデータの畳み込み演算により前記時間補間位置における前記変換値を算出するデータ算出工程と
    を備えるサンプリング周波数レート変換の方法。
    Coefficient preparation step of preparing filter coefficients based on discrete impulse response functions discretely set to give transformation values at time interpolation positions corresponding to new data to be obtained by transformation from discrete original data When,
    A data calculation step of calculating the conversion value at the time interpolation position by convolution of the original data using the filter coefficient prepared in the coefficient preparation step.
  17.  前記係数準備工程において、前記離散インパルス応答関数に基づく前記フィルター係数として係数テーブルを準備し、
     前記データ算出工程において、前記係数テーブルの各データと前記元のデータとの畳み込み演算により前記変換値を算出し、
     前記係数準備工程において、前記元のデータについてのサンプリング周期と、前記新たなデータについてのサンプリング周期との差に対応して一連の前記時間補間位置での前記変換値を与えるように前記離散インパルス応答関数を決定する、請求項16に記載のサンプリング周波数レート変換の方法。
    In the coefficient preparation step, a coefficient table is prepared as the filter coefficient based on the discrete impulse response function,
    In the data calculation step, the conversion value is calculated by a convolution operation of each data of the coefficient table and the original data,
    The discrete impulse response such that, in the coefficient preparation step, the converted values at a series of the time interpolation positions are given corresponding to the difference between the sampling period for the original data and the sampling period for the new data. The method of sampling frequency rate conversion according to claim 16, wherein the function is determined.
  18.  前記新たなデータは、Tを、前記元のデータのサンプリング周期とし、Tを、前記新たなデータのサンプリング周期とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとして、以下の数式
    Figure JPOXMLDOC01-appb-I000007
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項17に記載のサンプリング周波数レート変換の方法。
    The new data, the T, the sampling period of the original data, a T b, and the sampling period of the new data, Y a (nT), and the original data, the f s, of the original A sampling frequency of data, f c is a smaller value of the sampling frequency of the original data and the sampling frequency of the new data, Pr is a discrete point of the original data, and the time interpolation position As a predetermined parameter corresponding to the difference between the two and the integers n 0 and m 0 represent Pr = n 0 T-m 0 T b, and the following equation
    Figure JPOXMLDOC01-appb-I000007
    18. The method of sampling frequency rate conversion according to claim 17, which is expressed using an approximate expression using a window function with a finite value of n.
  19.  前記新たなデータは、Tを、前記元のデータのサンプリング周期とし、Tを、前記新たなデータのサンプリング周期とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f´/2を強制的遮断周波数とし、f´<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000008
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項17に記載のサンプリング周波数レート変換の方法。
    The new data, the T, the sampling period of the original data, a T b, and the sampling period of the new data, Y a (nT), and the original data, the f s, of the original A sampling frequency of data, f c is a smaller value of the sampling frequency of the original data and the sampling frequency of the new data, Pr is a discrete point of the original data, and the time interpolation position And the integers n 0 and m 0 represent Pr = n 0 T-m 0 T b , and let f ′ c / 2 be a forced cutoff frequency. , F c c <f c , the following formula
    Figure JPOXMLDOC01-appb-I000008
    18. The method of sampling frequency rate conversion according to claim 17, which is expressed using an approximate expression using a window function with a finite value of n.
  20.  前記新たなデータは、Tを、前記元のデータのサンプリング周期とし、Tを、前記新たなデータのサンプリング周期とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f/2をハイパス周波数とし、f<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000009
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項17に記載のサンプリング周波数レート変換の方法。
    The new data, the T, the sampling period of the original data, a T b, and the sampling period of the new data, Y a (nT), and the original data, the f s, of the original A sampling frequency of data, f c is a smaller value of the sampling frequency of the original data and the sampling frequency of the new data, Pr is a discrete point of the original data, and the time interpolation position The parameter is defined as Pr = n 0 T-m 0 T b by n 0 and m 0 , which are integers, and f d / 2 is a high pass frequency, and f d d The following formula as <f c
    Figure JPOXMLDOC01-appb-I000009
    18. The method of sampling frequency rate conversion according to claim 17, which is expressed using an approximate expression using a window function with a finite value of n.
  21.  前記新たなデータは、Tを、前記元のデータのサンプリング周期とし、Tを、前記新たなデータのサンプリング周期とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f´/2を強制的遮断周波数とし、f/2をハイパス周波数とし、f<f´<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000010
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項17に記載のサンプリング周波数レート変換の方法。
    The new data, the T, the sampling period of the original data, a T b, and the sampling period of the new data, Y a (nT), and the original data, the f s, of the original A sampling frequency of data, f c is a smaller value of the sampling frequency of the original data and the sampling frequency of the new data, Pr is a discrete point of the original data, and the time interpolation position And the integers n 0 and m 0 represent Pr = n 0 T-m 0 T b , and let f ′ c / 2 be a forced cutoff frequency. , F d / 2 as a high pass frequency, and f d <f ' c <f c , the following equation
    Figure JPOXMLDOC01-appb-I000010
    18. The method of sampling frequency rate conversion according to claim 17, which is expressed using an approximate expression using a window function with a finite value of n.
  22.  前記新たなデータは、Tを、前記元のデータのサンプリング周期とし、Tを、前記新たなデータのサンプリング周期とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT-mと表されるものとし、さらに、f/2を帯域除去下端周波数とし、f/2を帯域除去上端周波数とし、f<f<fとして、以下の数式
    Figure JPOXMLDOC01-appb-I000011
    又はnを有限値とする窓関数を用いた近似式を用いて表現される、請求項17に記載のサンプリング周波数レート変換の方法。
    The new data, the T, the sampling period of the original data, a T b, and the sampling period of the new data, Y a (nT), and the original data, the f s, of the original A sampling frequency of data, f c is a smaller value of the sampling frequency of the original data and the sampling frequency of the new data, Pr is a discrete point of the original data, and the time interpolation position And the integer n 0 and m 0 represent Pr = n 0 T-m 0 T b, and further let f j / 2 be the band elimination lower end frequency, Let f k / 2 be the upper band removal frequency and let f j <f k <f c ,
    Figure JPOXMLDOC01-appb-I000011
    18. The method of sampling frequency rate conversion according to claim 17, which is expressed using an approximate expression using a window function with a finite value of n.
PCT/JP2010/056876 2009-04-17 2010-04-16 Src device and method based on the extraction and synthesis of an impulse response WO2010119963A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011509371A JP5774475B2 (en) 2009-04-17 2010-04-16 Apparatus and method for SRC by extracting and synthesizing impulse response

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-101450 2009-04-17
JP2009101450 2009-04-17

Publications (1)

Publication Number Publication Date
WO2010119963A1 true WO2010119963A1 (en) 2010-10-21

Family

ID=42982620

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/056876 WO2010119963A1 (en) 2009-04-17 2010-04-16 Src device and method based on the extraction and synthesis of an impulse response

Country Status (2)

Country Link
JP (1) JP5774475B2 (en)
WO (1) WO2010119963A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579239A (en) * 2014-12-19 2015-04-29 广东宝莱特医用科技股份有限公司 Filtering method of filtration system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002026690A (en) * 2000-06-02 2002-01-25 Texas Instr Inc <Ti> Sampling speed converter and its method
JP2004529519A (en) * 2000-11-03 2004-09-24 クゥアルコム・インコーポレイテッド Digital filter with state memory
JP2005287032A (en) * 2004-03-26 2005-10-13 Euresys Sa Image frame grabber device and method thereof
JP2008181020A (en) * 2007-01-25 2008-08-07 Faith Inc Waveform creating apparatus and synthesizer for sound source

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0495412A (en) * 1990-08-13 1992-03-27 Hitachi Ltd Sampling frequency conversion circuit
JPH04247732A (en) * 1991-02-01 1992-09-03 Hitachi Ltd Frequency devision multiple signal processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002026690A (en) * 2000-06-02 2002-01-25 Texas Instr Inc <Ti> Sampling speed converter and its method
JP2004529519A (en) * 2000-11-03 2004-09-24 クゥアルコム・インコーポレイテッド Digital filter with state memory
JP2005287032A (en) * 2004-03-26 2005-10-13 Euresys Sa Image frame grabber device and method thereof
JP2008181020A (en) * 2007-01-25 2008-08-07 Faith Inc Waveform creating apparatus and synthesizer for sound source

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579239A (en) * 2014-12-19 2015-04-29 广东宝莱特医用科技股份有限公司 Filtering method of filtration system

Also Published As

Publication number Publication date
JP5774475B2 (en) 2015-09-09
JPWO2010119963A1 (en) 2012-10-22

Similar Documents

Publication Publication Date Title
JP2986745B2 (en) Composite phase filter, timing error compensating apparatus and method using the same
JP6573869B2 (en) Voice filtering with increased virtual sample rate
US7890563B2 (en) Multi-channel sample rate conversion method
KR20020068159A (en) Sampling rate conversion apparatus and method thereof
EP3466004B1 (en) Method and apparatus for sampling rate conversion of a stream of samples
JP4449007B2 (en) Sampling frequency converter
JP2003133909A (en) A variable sample rate recovery type digital filter and filtering method
JP5541832B2 (en) Sampling rate conversion
WO2010119963A1 (en) Src device and method based on the extraction and synthesis of an impulse response
CN100423027C (en) Window added interpolation method for Sinc function in image scaling device
CN106972840B (en) Sampling rate conversion method and device
EP2315353B1 (en) Filter
JPWO2005078925A1 (en) Digital filter design method and device, digital filter design program, digital filter
JP2010041311A (en) Filter, and configuration system and configuration method of filter
JP4386079B2 (en) Sampling frequency converter
US7242326B1 (en) Sample rate conversion combined with filter
WO2005057784A1 (en) Digital filter designing method and designing device
JP4247194B2 (en) Data conversion processing device
JPH0590897A (en) Oversampling filter circuit
JP4968850B2 (en) Filter, filter design system, design method, and design program
JP2008219560A (en) Decimation filter
WO2004036746A1 (en) Digital filter design method and device, digital filter design program, and digital filter
WO2007102611A1 (en) Interpolation function generation circuit
JP6935912B2 (en) Data interpolation device and data interpolation method
JP2009033506A (en) Digital filter

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10764545

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2011509371

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10764545

Country of ref document: EP

Kind code of ref document: A1