BACKGROUND
[0001] The present invention relates to an asynchronous sampling frequency conversion device,
a method, and a program.
[0002] When an analog signal is converted into a digital signal, a sampling method of reading
the waveform level of the analog signal at given time intervals and recording the
read level value is used. In digital audio devices or the like, 32 kHz, 44.1 kHz,
48 kHz, and 96 kHz are generally used as sampling frequencies. For example, in cases
of a CD (compact disc) and a DVD (digital versatile disc), sampling is performed at
44.1 kHz and 48 kHz, respectively.
[0003] For example, when a digital signal is transmitted and received between devices in
which sampling frequencies are different, it is necessary to convert the sampling
frequency of the digital signal. In order to change the sampling frequency of a digital
signal, an asynchronous sampling rate converter is used.
[0004] A conventional asynchronous sampling rate converter changes a sampling frequency
by performing up-sampling (0 compensation) on an input signal up to the least common
multiple between sample frequencies before and after conversion, and then performing
down-sampling (thinning) to a desired sampling frequency. Accordingly, for example,
when the conventional asynchronous sampling rate converter converts a sampling frequency
from 48 kHz to 44.1 kHz, the conventional asynchronous sampling rate converter has
to perform up-sampling up to 7056 kHz which is the least common multiple between 48
kHz and 44.1 kHz, that is, up-sampling by 147 multiples of the input signal.
[0005] In the conventional asynchronous sampling rate converter, a LPF (LowPass Filter)
that cuts a high-frequency component equal to or greater than the nyquist frequency
(1/2 of the sampling frequency of an input signal) is disposed between an up-sampling
unit and a down-sampling unit. An input signal into the LPF is a signal subjected
to the up-sampling, and the sampling frequency of the signal is very high, as described
above. For this reason, the LPF is required to have high-speed responsiveness and
a high processing performance.
[0006] As a technology for suppressing a processing amount in an asynchronous sampling converter,
a method of using linear interpolation is suggested by Japanese Laid-open Patent Publication
No.
1-77326.
[0007] According to the method of using linear interpolation disclosed in Japanese Laid-open
Patent Publication No.
1-77326, sample data Yi (where i is a natural number) after conversion is calculated from
two pieces of sampling data Xn and Xn+1 (where n is a natural number) before conversion
sampled at timings immediately before and after the sampling timing of Yi. Specifically,
Yi is calculated by a calculation expression "Yi = (1 - ki)·Xn + ki·Xn + 1" using
ki as an interpolation coefficient corresponding to Yi.
[0008] The interpolation coefficient ki is calculated by "ki = (i·θ2 - n·θ1)/θ1" by first
specifying n that satisfies "n·θ1 ≤ i·θ2 < (n + 1)·θ1" for each i, when it is assumed
that θ1 is an input sampling period and θ2 is an output sampling period. Thus, in
the method of using the linear interpolation disclosed in Japanese Laid-open Patent
Publication No.
1-77326, it is necessary to first specify "n" and calculate each interpolation coefficient
ki using the specified "n" in order to calculate each sampling data Yi after conversion.
For this reason, it takes much time to perform the calculation, since a calculation
amount is large.
[0009] According to the sampling theorem, an input signal with a frequency band up to 1/2
of an input clock frequency f
in(= 1/θ1) can be reproduced. However, due to the frequency characteristics of the linear
interpolation, the amplitude of a waveform reproduced from the output sampling data
Yi calculated through the linear interpolation decreases, as the frequency band of
an input signal increases. Therefore, waveform distortion may be worsened. For example,
with regard to an input signal with a frequency band of 1/2 of an input clock frequency
f
in, the amplitude of a waveform formed by the output sampling data Yi may decrease about
0.64 times the amplitude of the input signal.
[0010] Attention is drawn to
JP H06 204 798 A, which shows an interpolation system for an asynchronous sampling frequency conversion.
In the system, the data interval of input data a1 based on an original sampling frequency
is divided equally by a prescribed number M, a filtered value is interpolated at an
equally division point just before or just after an output phase point with respect
to an asynchronous sampling frequency and closest to the output phase point among
equally division points and Lagrangian interpolation is executed by using three data
composed of the result of the filter interpolation, input data a-1 just before the
output phase point, and input data al just after the output phase point. The result
of the Lagrangian interpolation is used for output data (b) at the output phase point.
SUMMARY
[0011] In accordance with the present invention, an asynchronous sampling frequency conversion
device as set forth in claim 1, an asynchronous sampling frequency conversion method
as set forth in claim 5 and an asynchronous sampling frequency conversion program
as set forth in claim 6 are provided. Further embodiments of the invention are inter
alia disclosed in the dependent claims.
[0012] According to an aspect of the present invention, an asynchronous sampling frequency
conversion device inter alia includes: a storage unit (104) configured to store input
digital signals; a data specifying unit (105A) configured to specify first data and
second data based on a ratio of a sampling frequency of the input digital signal to
a sampling frequency of an output digital signal, the first data being sampled at
a sampling timing immediately before an i
th (where i is a natural number) sampling timing of the output digital signal among
the input digital signals stored in the storage unit (104), the second data being
sampled at the sampling timing immediately after the i
th sampling timing of the output digital signal; and an output data value calculator
(105C) configured to calculate a value of i
th data of the output digital signal based on the first data and the second data specified
by the data
specifying unit (105A) and the ratio.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013]
FIG. 1 is a block diagram illustrating an example of an asynchronous sampling frequency
conversion device according to a first embodiment;
FIG. 2 is a diagram illustrating an example of input sampling data information of
an L channel according to the first embodiment;
FIG. 3 is a flowchart illustrating a process of generating the input sampling data
information of the L channel according to the first embodiment;
FIG. 4 is a flowchart illustrating an L channel conversion process according to the
first embodiment;
FIG. 5 is a diagram illustrating a correspondence relation among a sequence i of output
sampling, a product (i·fin/fOUT) of the sequence i and a ratio fin/fOUT, a rounddown (i·fin/fOUT), a roundup (i·fin/fOUT), input sampling data Xn, and input sampling data Xn+1, when a process of converting
a sine wave with 8 kHz is performed according to the first embodiment;
FIG. 6 is a diagram illustrating a list of the output sampling data of the L channel
according to the first embodiment;
FIG. 7 is a diagram illustrating a waveform reproduced from the output sampling data
illustrated in FIG. 6 and a waveform reproduced from input sampling data of the L
channel;
FIG. 8 is a block diagram illustrating an example of an asynchronous sampling frequency
conversion device according to a second embodiment;
FIG. 9 is a diagram illustrating a list of the output sampling data of an L channel
according to the second embodiment;
FIG. 10 is a diagram illustrating a waveform reproduced from the output sampling data
illustrated in FIG. 9 and a waveform reproduced from input sampling data of the L
channel; and
FIG. 11 is a diagram illustrating an example of output sampling information of the
L channel.
DETAILED DESCRIPTION
[0014] An asynchronous sampling frequency conversion device according to preferred embodiments
of the invention will be described.
First Embodiment
[0015] An asynchronous sampling frequency conversion device 1 according to a first embodiment
is a device that converts the sampling frequency of an input digital signal and outputs
the converted sampling frequency. As illustrated in FIG. 1, the asynchronous sampling
frequency conversion device 1 includes an input signal receiver 101, an LPF 102, a
storage processing unit 103, a storage (a storage unit) 104, a sampling frequency
conversion processing unit 105, an output signal transmitter 106, and clock generating
circuits 107 and 108.
[0016] For example, the input signal receiver 101 receives (latches) an input digital signal
S
in corresponding to two channels of an L channel and an R channel sent with I2S (The
IC Sound Bus) which is a communication standard of a digital sound signal, left justified
24 bits, or the like in response to an RL clock RL
in supplied from the clock generating circuit 107, and outputs the input digital signal
S
in to the LPF 102. For example, the RL clock RL
in is generated from an RL clock transmitted from a signal supply source and has the
same frequency as that of a sampling frequency (hereinafter, referred to as an input
sampling frequency) f
in of the input digital signal S
in. When the input sampling frequency f
in is, for example, 48 kHz, the input signal receiver 101 receives two pieces of input
sampling data of the L channel and the R channel for each about 20.8 µsec (= 1/48
kHz).
[0017] The LPF (LowPass Filter) unit 102 operates in response to the RL clock RL
in supplied from the clock generating circuit 107 and limits the bandwidth of the input
digital signal S
in. More specifically, the LPF 102 removes waveform distortion caused due to a return
phenomenon by cutting a high-frequency wave component equal to or greater than the
nyquist frequency (1/2 of input sampling frequency f
in = f
in/2) of the input signal S
in.
[0018] The storage processing unit 103 includes a CPU and a memory that stores an operation
program of the CPU. The storage processing unit 103 includes an internal counter 103C
with an initial setting value of "0." The CPU included in the storage processing unit
103 executes the operation program, counts a number (sequence) n of data (input sampling
data) X output from the LPF 102 by counting up the internal counter 103C in response
to the RL clock signal RL
in, and calculates a time Tn from sampling start to an n
th sampling timing, that is, n/f
in. The storage processing unit 103 forms input data by causing the sequence n, the
elapsed time Tn (= n/f
in), and the n
th input sampling data Xn to correspond to each other, and stores a predetermined number
of input data in the storage 104. When the predetermined number of input data are
stored in the storage 104, the storage processing unit 103 erases the oldest (where
the sequence n is the newest) input data and stores new input data. Further, data
stored in the storage 104 is referred below to as input sampling data information.
[0019] For example, when the input digital signal S
in is assumed to be data obtained by sampling an analog sine wave sin (2π·8000·t) with
8 kHz using the sampling frequency f
in with 48 kHz, the storage processing unit 103 sequentially stores the sequence n,
the elapsed time Tn (= n/f
in), and the input sampling data Xn in the storage 104, as illustrated in FIG. 2.
[0020] The storage 104 includes a RAM (Random Access Memory) and stores up to the predetermined
number of input data in which the sequence n, the elapsed time Tn (= n/f
in), and the n
th input sampling data Xn generated by the storage processing unit 103 correspond to
each other. The storage 104 has a capacity in which a predetermined number of input
data necessary for the sampling frequency conversion process performed by the sampling
frequency conversion processing unit 105 can be stored. When the input sampling frequency
is 48 kHz, for example, the storage 104 stores 480 pieces of input data of each of
the L channel and the R channel. The number of input data retained in the storage
104 is merely an example. For example, the storage 104 may be configured to store
960 pieces of input data which is a double of the 480 pieces of input data.
[0021] The sampling frequency conversion processing unit 105 includes a CPU and an internal
memory. The internal memory functions as a work area of a CPU (Central Processing
Unit) and stores a conversion processing program executed by the CPU and fixed data
necessary for the conversion process. The CPU functions as a data specifying unit
105A, a determining unit 105B, an output data value calculator 105C, and a counter
105D by executing the conversion processing program and calculates output sampling
data of an output sampling frequency f
out using the input sampling data information stored in the storage 104 by performing
a conversion process to be described below.
[0022] The data specifying unit 105A specifies input sampling data sampled at timings immediately
before and after the sampling timing of output sampling data Yi (where i is an output
sequence and is a natural number). Here, "the timings immediately before and after
the output sampling timing" does not mean physical timings, but means sampling timings
of the input digital signal S
in immediately before and after the output sampling timing by specifying a timing of
the input digital signal S
in corresponding to the output sampling timing in consideration of delay of signal processing
and using the specified timing as a reference.
[0023] Specifically, the data specifying unit 105A acquires a ratio f
in/f
out of the input sampling frequency f
in to the output sampling frequency f
out. For example, when the data specifying unit 105A calculates the i
th output sampling data Yi of the output digital signal, the data specifying unit 105A
calculates a value roundup (i·f
in/f
out) obtained by rounding up a value (i·f
in/f
out), which is i times the acquired ratio f
in/f
out, to a natural number and a value rounddown (i·f
in/f
out) obtained by rounding down a value (i·f
in/f
out), which is i times the acquired ratio f
in/f
out, to a natural number. For example, when i·f
in/f
out = 1.12, the roundup (i·f
in/f
out) = 2 and the rounddown (i·f
in/f
out) = 1
.
[0024] When the rounddown (i·f
in/f
out) = n (natural number), the data specifying unit 105A specifies an n
th input sampling data Xn as the input data sampled at timings immediately before the
sampling timing of the output sampling data Yi, and specifies an (n + 1)
th input sampling data Xn+1 as the input data sampled at timings immediately after the
sampling timing of the output sampling data Yi.
[0025] Here, when the rounddown (i·f
in/f
out) = the roundup (i·f
in/f
out) = n, that is, a value (i·f
in/f
out), which is i times the ratio f
in/f
out, is a natural number, the data specifying unit 105A specifies only the input sampling
data Xn sampled at the same timing as the sampling timing of the output sampling data
Yi as the data sampled at the timings immediately before and after the sampling timing
of the output sampling data Yi.
[0026] The determining unit 105B determines whether the rounddown (i·f
in/f
out) = the roundup (i·f
in/f
out) = n. That is, the determining unit 105B determines whether a value (i·f
in/f
out) which is i times the ratio f
in/f
out is a natural number. Further, the determining unit 105B determines whether there
are input sampling data corresponding to the rounddown (i·f
in/f
out) and the roundup (i·f
in/f
out) calculated by the data specifying unit 105A. Specifically, the determining unit
105B determines whether there are the sampling sequences corresponding to the rounddown
(i·f
in/f
out) and the roundup (i·f
in/f
out) by searching for a column of the sampling sequence of the input sampling data information
stored in the storage 104.
[0027] The output data value calculator 105C calculates the output sampling data Yi using
the input sampling data Xn and Xn+1 specified by the data specifying unit 105A. Specifically,
the output data value calculator 105C weights the input sampling data Xn with respect
to a value obtained by subtracting the (i·f
in/f
out) from the roundup (i·f
in/f
out), and weights the input sampling data Xn+1 with respect to a value obtained by subtracting
the rounddown (i·f
in/f
out) from (i·f
in/f
out) . Then, the output data value calculator 105C calculates the sum of the weighted
input sampling data as the i
th output sampling data Yi of the output digital signal. That is, the output data value
calculator 105C calculates the output sampling data Yi by the following expression
(1).

[0028] In this expression, {(i·f
in/f
out) - rounddown (i·f
in/f
out)} corresponds to an interpolation coefficient ki in linear interpolation and {roundup
(i·f
in/f
out) - (i·f
in/f
out)} corresponds to (1 - ki).
[0029] Here, the determining unit 105B determines that the product (i·f
in/f
out) is a natural number, that is, the rounddown (i·f
in/f
out) = the roundup (i·f
in/f
out) = n, the output data value calculator 105C calculates the input sampling data Xn
specified by the data specifying unit 105A as the output sampling data Yi. Then, the
sampling frequency conversion processing unit 105 outputs the output sampling data
Yi calculated by the output data value calculator 105C to the output signal transmitter
106.
[0030] The counter 105D increments a counter value, whenever the output data value calculator
105C calculates the output sampling data Yi. The initial setting value of the counter
value of the counter 105D is "1." The counter value of the counter 105D indicates
a sampling sequence i in the output sampling frequency. The data specifying unit 105A
specifies the input sampling data Xn and Xn+1 based on the product (i·f
in/f
out) of the counter value i of the counter 105D and the ratio f
in/f
out.
[0031] The output signal transmitter 106 includes an FIFO memory. The output signal transmitter
106 stores the output sampling data Yi supplied from the sampling frequency conversion
processing unit 105 and sequentially outputs the output sampling data Yi as the output
digital signal S
out in synchronization with the RL clock RL
out of the output digital signal S
out supplied from the clock generating circuit 108.
[0032] The clock generating circuit 107 supplies the RL clock RL
in synchronized with the RL clock RL
in supplied from a source supplying the input digital signal S
in to the input signal receiver 101, the LPF 102, and the storage processing unit 103.
[0033] The clock generating circuit 108 generates and outputs the RL clock RL
out of the output digital signal S
out. The RL clock RL
out has the same frequency as the sampling frequency f
out of the output digital signal S
out.
[0034] Next, a sampling frequency conversion process of the asynchronous sampling frequency
conversion device 1 having the above-described configuration will be described.
[0035] Further, in the sampling frequency conversion process, a process on the data of the
L channel and a process on the data of the R channel process are performed in parallel.
However, the process for the L channel will be described below, since the process
for the L channel is the same as the process of the R channel.
[0036] The sampling frequency conversion process includes a process of receiving the input
digital signal S
in and storing the input sampling data information in the storage 104 and a process
of generating the output digital signal S
out using the input sampling data information stored in the storage 104.
[0037] First, the process of receiving the input digital signal S
in and then storing the input sampling data information in the storage processing unit
103 will be described with reference to FIG. 3.
[0038] The input sampling data (signal pieces) forming the input digital signal S
in are sequentially supplied to the input signal receiver 101. The input signal receiver
101 sequentially receives (latches) the supplied input sampling data (signal pieces)
in response to the RL clock RL
in and sequentially supplies the input sampling data to the LPF 102.
[0039] The LPF 102 operates in response to the RL clock RL
in, filters the input sampling data supplied from the input signal receiver 101 by removing
a high-frequency wave component from the the input sampling data, and supplies the
result to the storage processing unit 103.
[0040] The storage processing unit 103 starts a process of generating the input sampling
data information illustrated in FIG. 3 in response to the RL clock RL
in supplied from the clock generating circuit 107.
[0041] First, the storage processing unit 103 (accurately, the CPU of the storage processing
unit 103) increments the counter value (sequence) n of the internal counter 103C (step
S01) and calculates the sequence n of the input sampling data.
[0042] Next, the storage processing unit 103 calculates the elapsed time Tn (= n/f
in) from the sampling start to an n
th sampling timing by calculating a product of the counter value (sequence) n and a
supply period 1/f
in of the input digital signal S
in (step S02).
[0043] Next, the storage processing unit 103 acquires the input sampling data Xn output
at the n
th time from the LPF 102 (step S03) and determines whether the number of acquired input
sampling data Xn is greater than a predetermined number (step S04).
[0044] When the storage processing unit 103 determines that the number of acquired input
sampling data Xn is greater than the predetermined number (YES in step S04), the storage
processing unit 103 wastes the oldest stored input data among the input sampling data
information stored in the storage 104 from the input sampling data information (step
S05). Then, the storage processing unit 103 adds input data formed by the counter
value (sequence) n of the internal counter 103C incremented in the process of step
S01, the elapsed time Tn calculated in the process of step S02, and the input sampling
data Xn acquired in the process of step S03 to the input sampling data information
(step S06) .
[0045] Conversely, when the storage processing unit 103 determines that the number of acquired
input sampling data Xn is not greater than the predetermined number (NO in step S04),
the process of step S05 is skipped, and then the storage processing unit 103 adds
input data formed by the counter value (sequence) n of the internal counter 103C incremented
in the process of step S01, the elapsed time Tn calculated in the process of step
S02, and the input sampling data Xn acquired in the process of step S03 to the input
sampling data information (step S06).
[0046] By repeating the above-described process of generating the input sampling data information,
as illustrated in FIG. 2, a predetermined number of input sampling data X immediately
adjacent to each other are stored as the input sampling data information in the storage
104.
[0047] Next, a conversion process performed by the sampling frequency conversion processing
unit 105 will be described with reference to FIG. 4. The sampling frequency conversion
processing unit 105 performs conversion process for the L channel and the R channel
in parallel. The conversion process for the L channel will be described below, since
the conversion process for the L channel is the same as the conversion process for
the R channel. The conversion process starts using RL
out as a trigger.
[0048] It is supposed that the ratio f
in/f
out of the input sampling frequency f
in to the output sampling frequency f
out is calculated in advance and is stored in a non-volatile memory or the like included
in the internal memory of the sampling frequency conversion processing unit 105.
[0049] The data specifying unit 105A acquires the ratio f
in/f
out of the input sampling frequency f
in to the output sampling frequency f
out stored in the internal memory of the sampling frequency conversion processing unit
105 (step 001). Then, the data specifying unit 105A acquires the counter value i from
the counter 105D (step 002), and then calculates the product (i·f
in/f
out) of the ratio f
in/f
out acquired in step 001 and the counter value i (step 003). Then, the data specifying
unit 105A calculates the rounddown (i·f
in/f
out) obtained by rounding down the value (i·f
in/f
out) calculated in step 003 and the roundup (i·f
in/f
out) obtained by rounding up the value (i·f
in/f
out) (step 004).
[0050] Then, the determining unit 105B determines whether the value n of the rounddown (i·f
in/f
out) is the same as the value n of the roundup (i·f
in/f
out) by comparing the rounddown (i·f
in/f
out) to the roundup (i·f
in/f
out). That is, the determining unit 105B determines whether the product (i·f
in/f
out) calculated in step 003 is a natural number (step 005). When the determining unit
105B determines that the product (i·f
in/f
out) is a natural number (YES in step 005), the determining unit 105B searches for the
column of the sampling sequence of the input sampling data information stored in the
storage 104 and determines whether there is the n
th input sampling data Xn corresponding to the value of n of the rounddown (i·f
in/f
out) calculated in step 004 (step 021).
[0051] When the determining unit 105B determines that there is the n
th input sampling data Xn corresponding to the value of n of the rounddown (i·f
in/f
out) calculated in step 004 (YES in step 021), the data specifying unit 105A specifies
this input sampling data Xn as the data sampled at the timings immediately before
and after the sampling timing of the output sampling data Yi (step 022). Then, the
output data value calculator 105C calculates the input sampling data Xn specified
by the data specifying unit 105A as the output sampling data Yi and the sampling frequency
conversion processing unit 105 outputs the output sampling data Yi (input sampling
data Xn) calculated by the output data value calculator 105C to the output signal
transmitter 106 (step 023). Then, the process proceeds to step 009.
[0052] Conversely, when the determining unit 105B determines that there is no n
th input sampling data Xn (NO in step 021), the sampling frequency conversion processing
unit 105 initializes the counter value of the counter 105D (step 041) and ends the
conversion process.
[0053] Conversely, when the determining unit 105B determines that the product (i·f
in/f
out) is not a natural number (NO in step 005), the determining unit 105B searches for
the column of the sampling sequence of the input sampling data information stored
in the storage 104 and determines whether there are both the n
th input sampling data Xn corresponding to the value n of the rounddown (i·f
in/f
out) calculated in step 004 and the (n + 1)
th input sampling data Xn+1 (step 006). When the determining unit 105B determines that
there is at least no input sampling data Xn+1 (NO in step 006), the process proceeds
to step 041. Then, the sampling frequency conversion processing unit 105 initializes
the counter value of the counter 105D, deletes the input sampling data information
stored in the storage 104 (step 041), and ends the conversion process.
[0054] Conversely, when the determining unit 105B determines there are both the input sampling
data Xn and the input sampling data Xn+1 (YES in step 006), the data specifying unit
105A specifies the input sampling data Xn and Xn+1 (step 007). Then, the output data
value calculator 105C calculates the output sampling data Yi by the calculation expression
(Expression (1)) of the above-described output sampling data Yi using the input sampling
data Xn and Xn+1 specified by the data specifying unit 105A and the sampling frequency
conversion processing unit 105 outputs the output sampling data Yi calculated by the
output data value calculator 105C to the output signal transmitter 106 (step 008).
Then, the sampling frequency conversion processing unit 105 increments the counter
value of the counter 105D (step 009) and returns to step 001 to repeat the above-described
processes.
[0055] Referring to FIGS. 2, 4, and 5, the process of each unit will be described using
48 kHz and 44.1 kHz as the input sampling frequency f
in and the output sampling frequency f
out and giving examples of specific numerical values. As in FIG. 2, FIG. 5 is a diagram
illustrating a correspondence relation among the sampling sequence i at an output
sampling frequency, the product (i·f
in/f
out) of the sequence i and the ratio f
in/f
out, the rounddown (i·f
in/f
out), the roundup (i·f
in/f
out), and the input sampling data Xn and Xn+1 in the case in which the rounddown (i·f
in/f
out) and the roundup (i·f
in/f
out) are equal to n, when the conversion process according to this embodiment is performed
on a sine wave sin (2π·8000·t) with 8 kHz.
[0056] The data specifying unit 105A acquires the ratio f
in/f
out stored in the internal memory of the sampling frequency conversion processing unit
105 and the counter value i of the counter 105D (steps 001 and 002). Then, the data
specifying unit 105A calculates a product of the ratio f
in/f
out and the counter value i (step 003).
[0057] For example, when the counter value i is "1" and i·f
in/f
out = 1 × (48 ÷ 44.1) = 1.088435374, the data specifying unit 105A calculates 1.088435374
as the value of i·f
in/f
out.
[0058] Next, the data specifying unit 105A calculates the rounddown (i·f
in/f
out) and the roundup (i·f
in/f
out) (step 004). When i·f
in/f
out = 1.088435374, the data specifying unit 105A calculates each of "the rounddown (i·f
in/f
out) = 1" and "the roundup (i·f
in/f
out) = 2."
[0059] Next, the determining unit 105B determines whether the product (i·f
in/f
out) is a natural number (step 005). When it is assumed that i·f
in/f
out = 1.088435374, NO is determined in step 005. Then, the determining unit 105B determines
whether there are both the first (rounddown (i·f
in/f
out) = 1) input sampling data X1 and the second (roundup (i·f
in/f
out) = 2) input sampling data X2 in the input sampling data information stored in the
storage 104 (step 006). When it is supposed that the input sampling data information
stored in the storage 104 is information illustrated in FIG. 2, the determining unit
105B determines that there are both the input sampling data X1 and X2 (YES in step
006) and the data specifying unit 105A specifies "X1 = 0.5" and "X2 = 0.866025404"
(step 007).
[0060] Next, the output data value calculator 105C applies the data values of the input
sampling data X1 and X2 specified by the data specifying unit 105A, the value of the
product (i·f
in/f
out), and the values of the rounddown (i·f
in/f
out) and the roundup (i·f
in/f
out) to the above-described calculation expression (Expression (1)), calculates the value
of the i
th output sampling data Yi of the output digital signal, and outputs the calculated
value to the output signal transmitter 106 (step 008). In the example, since i = 1,
the first output sampling data Y1 calculated by the output data value calculator 105C
is "{0.5 × (2 - 1.088435374) + 0.866025404 × (1.088435374 - 1)} = 0.53237." Next,
the sampling frequency conversion processing unit 105 increments the counter value
of the counter 105D (step 009), returns to the process of step 001, and sequentially
calculates the output sampling data Yi by repeating the series of processes.
[0061] Thus, the sampling frequency conversion processing unit 105 sequentially calculates
the output sampling data Yi for the L channel and the R channel at the output sampling
frequency using the calculation expression (Expression (1)) of the above-described
output sampling data Yi, and sequentially supplies the output sampling data Yi to
the output signal transmitter 106.
[0062] Further, the sampling frequency conversion processing unit 105 preferably generates
the output sampling data Yi at a processing speed at which one piece of data is calculated
at one period of the RL clock RL
out or a speed slightly faster than the processing speed.
[0063] The output signal transmitter 106 stores the output sampling data Yi supplied from
the sampling frequency conversion processing unit 105 in the FIFO memory and sequentially
outputs the output sampling data Yi in synchronization with the RL clock RL
out of the output signal supplied from the clock generating circuit 108.
[0064] As described above, by configuring the asynchronous sampling frequency conversion
device 1 according to this embodiment, it is possible to easily specify the input
sampling data Xn and Xn+1 sampled immediately before and after the sampling timing
of the output sampling data Yi based on the product (i·f
in/f
out) of the counter value i of the counter 105D and the ratio f
in/f
out stored in the internal memory of the sampling frequency conversion processing unit
105. Further, as understood from the calculation expression (Expression (1)) of the
output sampling data Yi according to this embodiment, the output sampling data Yi
can be calculated by calculating the product (i·f
in/f
out) of the counter value i of the counter 105D and the ratio f
in/f
out, rounding down and rounding up the fraction of the calculated product to calculate
natural numbers n and n + 1, specifying the input sampling data Xn and Xn+1 based
on the calculated natural numbers n and n + 1, and using the data values. Accordingly,
the calculation amount necessary to calculate the output sampling data Yi can be reduced
compared to the conventional linear interpolation method of specifying "n" indicating
the sampling sequence of the input sampling data Xn sampled immediately before the
sampling timing of the output sampling data Yi and calculating each interpolation
coefficient ki using the "n." Thus, the conversion process in the asynchronous sampling
frequency conversion device 1 can be performed at high speed.
[0065] The LPF 102 may operate at the input sampling frequency f
in of the input digital signal S
in and may operate at a relatively low frequency.
[0066] The input sampling data Xn is once stored in the storage 104. Therefore, even when
jitter is included in data to be input, the jitter can be absorbed.
Second Embodiment
[0067] In the first embodiment, the output data value calculator 105C of the sampling frequency
conversion processing unit 105 has calculated the output sampling data Yi by the above-described
calculation expression (Expression (1)). FIG. 6 is a diagram illustrating output sampling
data Yi of an L channel at the output sampling frequency of 44.1 kHz calculated by
the output data value calculator 105C according to the first embodiment. FIG. 7 is
a diagram illustrating a waveform W
out reproduced from the output sampling data Yi illustrated in FIG. 6, that is, the output
sampling data Yi of the L channel at the output sampling frequency of 44.1 kHz calculated
by the output data value calculator 105C and a waveform W
in reproduced from the input sampling data Xn of the L channel at the input sampling
frequency of 48 kHz according to the first embodiment.
[0068] When the waveform W
out and the waveform W
in are compared to each other with reference to FIG. 7, the amplitude of the waveform
W
out is reduced more than that of the waveform W
in. The reduction in the amplitude of the waveform W
out is caused due to the frequency characteristics of the linear interpolation, as described
in Background. Accordingly, in this embodiment, a waveform close to the waveform W
in is configured to be reproduced from the output sampling data by using the output
sampling data Yi calculated in the first embodiment as a reference value and correcting
the reference value Yi using a change amount |Xn - Xn+1| between the input sampling
data Xn and Xn+1. Thus, it is possible to remove a waveform distortion caused due
to a decrease in the amplitude originated from the frequency characteristics of the
linear interpolation.
[0069] As illustrated in FIG. 8, an asynchronous sampling frequency conversion device 1'
according to this embodiment is basically the same configuration as the asynchronous
sampling frequency conversion device of the first embodiment, since the asynchronous
sampling frequency conversion device 1' includes an input signal receiver 101, an
LPF 102, a storage processing unit 103, a storage 104, a sampling frequency conversion
processing unit 105, and an output signal transmitter 106. However, the sampling frequency
conversion processing unit 105 further includes a change amount calculator 105E and
a correcting unit 105F. Further, the internal memory of the sampling frequency conversion
processing unit 105 stores a correction coefficient α included in a calculation expression
for output sampling data Zi to be described below according to this embodiment. The
correction coefficient α is a value experimentally calculated in advance. For example,
the correction coefficient α is determined by calculating a decrease ratio of the
amplitude caused due to the frequency characteristics of the linear interpolation
in a frequency band of an input signal. Further, the correction coefficient α is preferably
determined so that a waveform clip does not occur.
[0070] The change amount calculator 105E calculates a change amount |Xn - Xn+1| between
the input sampling data Xn and Xn+1 specified by the data specifying unit 105A.
[0071] The correcting unit 105F uses the output sampling data Yi calculated by the output
data value calculator 105C as a reference value and corrects the reference value Yi
based on the change amount |Xn - Xn+1| calculated by the change amount calculator
105E. More specifically, the correcting unit 105F corrects the reference value Yi
by the following calculation expression and calculates the corrected value as the
output sampling data Zi.

[0072] The sampling frequency conversion processing unit 105 outputs the value Zi corrected
by the correcting unit 105F as an i
th output sampling data to the output signal transmitter 106.
[0073] FIG. 9 is a diagram illustrating a list of the output sampling data Zi calculated
by performing the conversion process on a sine wave sin (2π·8000·t) with 8 kHz at
the input sampling frequency of 48 kHz and the output sampling frequency of 44.1 kHz,
when the correction coefficient α is set to 0.2. FIG. 10 is a diagram illustrating
a waveform WZ
out reproduced from the output sampling data Zi illustrated in FIG. 9, that is, the output
sampling data Zi of the L channel at the output sampling frequency of 44.1 kHz calculated
by the correcting unit 105F and a waveform W
in reproduced from the input sampling data Xn of the L channel at the input sampling
frequency of 48 kHz.
[0074] When the waveform WZ
out is compared to the waveform W
in with reference to FIG. 10, it can be understood that the waveform WZ
out is closer to the waveform W
in, compared to FIG. 7 illustrating the waveform W
out and the waveform W
in reproduced from the output sampling data Yi calculated in the first embodiment. This
can be also understood from the output sampling data Yi and Zi indicated in FIGS.
6 and 9, respectively. For example, when Y3 in FIG. 6 is compared to Z3 in FIG. 9,
the decrease in the amplitude originated from the frequency characteristics of the
linear interpolation is improved so that the amplitude of Z3 is closer to the amplitude
"1" of the sine wave sin (2π·8000·t) with 8 kHz since Y3 = 0.964456 and Z3 = 0.990298.
[0075] According to the method of calculating the output sampling data Zi using the change
amount |Xn - Xn+1| between the input sampling data Xn and Xn+1, as described in this
embodiment, the decrease ratio of the amplitude originated from the frequency characteristics
of the linear interpolation increases, as the frequency of an input signal increases.
Therefore, since the waveform distortion is accordingly noticeable, a high effect
can be obtained.
[0076] In the above-described first and second embodiments, the cases have been described
in which the input sampling frequency f
in is 48 kHz and the output sampling frequency f
out is 44.1 kHz, but the invention is not limited thereto. The input sampling frequency
f
in and the output sampling frequency f
out are arbitrarily set including the magnitude relation therebetween. For example, the
input sampling frequency f
in may be set to 48 kHz and the output sampling frequency f
out may be set to 32 kHz. Further, the input sampling frequency f
in may be set to 44.1 kHz or 32 kHz and the output sampling frequency f
out may be set to 48 kHz.
[0077] In the conversion process performed by the sampling frequency conversion processing
unit 105, when the sampling frequency is lowered, the LPF 102 is necessary in order
to set the input digital signal S
in to be equal to or less than the nyquist frequency. However, when the sampling frequency
is raised, the LPF 102 is not necessary.
[0078] The above-described first and second embodiments of the invention can be also applied
to an asynchronous sampling frequency conversion device in which the input sampling
frequency f
in is varied. In this case, the sampling frequency conversion processing unit 105 may
be configured to calculate the ratio f
in/f
out of the input sampling frequency f
in to the output sampling frequency f
out. Since the sampling frequency generally used in a digital device is limited, a ratio
of a sampling frequency to the output sampling frequency f
out may be retained in advance in the internal memory of the sampling frequency conversion
processing unit 105.
[0079] In the above-described first and second embodiments, the cases have been described
in which the internal memory of the sampling frequency conversion processing unit
105 stores the ratio f
in/f
out of the input sampling frequency f
in to the output sampling frequency f
out in advance, but the invention is not limited thereto. The sampling frequency conversion
processing unit 105 may calculate the ratio f
in/f
out.
[0080] The example has been described in which the storage processing unit 103 calculates
the elapsed time Tn and stores the elapsed time Tn in the storage 104. However, the
sampling frequency conversion processing unit 105 may calculates the elapsed time
Tn.
[0081] In the above-described first embodiment, the storage 104 may be configured to beforehand
retain output sampling information formed by a pair of "i" indicating the sampling
sequence of the output sampling data Yi, a product (i·f
in/f
out) of the ratio f
in/f
out of the input sampling frequency f
in to the output sampling frequency f
out and "i" indicating the sampling sequence of the output sampling data Yi, and the
value n of the rounddown (i·f
in/f
out), as exemplified in FIG. 11. Thus, since the data specifying unit 105A can specify
the value n of the rounddown (i·f
in/f
out) from the counter value i of the counter 105D indicating the sampling sequence of
the output sampling data Yi, the calculation time of the output sampling data can
be further shortened. Therefore, the conversion process performed by the sampling
frequency conversion processing unit 105 can be performed at higher speed.
[0082] In the above-described second embodiment, the case has been described in which the
calculation expression (Expression (2)) of the output sampling data Zi is Zi = Yi·(1
+ α·|Xn - Xn+1|), but the invention is not limited thereto. The output sampling data
Zi may be calculated by the calculation expression of "Zi = Yi·{(1 + β·F(|Xn - Xn+1|)}"
by using F(x) and β as a function and a correction coefficient, respectively.
[0083] In the above-described embodiments, the above-described processes may be performed
by storing and distributing a program (a computer program product) to be executed
in a computer-readable recording medium such as a flexible disk, a CD-ROM (Compact
Disc Read-Only Memory), DVD, or an MO (Magneto-Optical Disc) and installing the program.
[0084] Further, a program may be stored in a disc device or the like included in a predetermined
server apparatus on a communication network such as the Internet and may be acquired,
for example, by superimposing the program on carrier waves.
[0085] In the above-described embodiments, it is possible to reduce a calculation amount
and also perform a conversion process at high speed. Furthermore, it is possible to
realize excellent reproducibility of a signal waveform.
[0086] Although the invention has been described with respect to specific embodiments for
a complete and clear disclosure, the appended claims are not to be thus limited but
are to be construed as embodying all modifications and alternative constructions that
may occur to one skilled in the art that fairly fall within the basic teaching herein
set forth.
1. Asynchronsamplingfrequenzwandlungsvorrichtung (1), die Folgendes aufweist:
eine Speichereinheit (104), die konfiguriert ist, um Eingangsdigitalsignale zu speichern;
eine Datenspezifizierungseinheit (105A), die konfiguriert ist, um erste Daten und
zweite Daten basierend auf einem Verhältnis einer Abtast- bzw. Samplingfrequenz des
Eingangsdigitalsignals zu einer Samplingfrequenz des Ausgangsdigitalsignals zu spezifizieren,
wobei die ersten Daten zu einem Abtast- bzw. Samplingzeitpunkt direkt von einem i-ten
Samplingzeitpunkt des Ausgangsdigitalsignals gesampled bzw. abgetastet werden, wobei
i eine natürliche Zahl ist, und zwar unter den Eingangsdigitalsignalen, die in der
Speichereinheit (104) gespeichert sind, wobei die zweiten Daten zu dem Samplingzeitpunkt
direkt nach dem i-ten Samplingzeitpunkt des Ausgangsdigitalsignals gesampled bzw.
abgetastet werden; und
einen Ausgangsdatenwertkalkulator (105C), der konfiguriert ist, um einen Wert der
der i-ten Daten des Ausgangsdigitalsignals basierend auf den ersten Daten und den
zweiten Daten, die von der Datenspezifizierungseinheit (105A) spezifiziert sind, und
dem Verhältnis zu berechnen,
dadurch gekennzeichnet, dass
die Datenspezifizierungseinheit (105A) konfiguriert ist, um die ersten Daten zu spezifizieren,
die ein Abrundungswert sind, und zwar in Übereinstimmung mit einer Abfolge des Samplingzeitpunktes,
und um die zweiten Daten zu spezifizieren, die ein Aufrundungswert sind, und zwar
in Übereinstimmung mit der Abfolge des Samplingzeitpunktes, wobei der Abrundungswert
erhalten wird durch Abrunden eines Multiplikationswertes auf eine natürliche Zahl,
wobei der Aufrundungswert erhalten wird durch Aufrunden des Multiplikationswertes
auf eine natürliche Zahl, wobei der Multiplikationswert erhalten wird durch Multiplizieren
des Verhältnisses mit i, was die Abfolge des Samplingzeitpunktes der Daten anzeigt,
die von dem Ausgangdatenwertkalkulator (105C) berechnet werden sollen; und
wobei der Ausgangdatenwertkalkulator (105C) konfiguriert ist, um den Wert der i-ten
Daten des Ausgangsdigitalsignals durch lineare Interpolation unter Verwendung der
ersten Daten und der zweiten Daten, die durch die Datenspezifizierungseinheit (105A)
spezifiziert wurden, des Multiplikationswertes, des Abrundungswertes und des Aufrundungswertes
zu berechnen.
2. Asynchronsamplingfrequenzwandlungsvorrichtung (1) nach Anspruch 1, die weiter Folgendes
aufweist:
eine Speicherverarbeitungseiheit (103), die konfiguriert ist, um die Eingangsdigitalsignale
in Übereinstimmung mit Sequenzen der Samplingzeit und Werten von sequentiell gesampelten
bzw. abgetasteten Daten in der Speichereinheit (104) zu speichern,
wobei die Datenspezifizierungseinheit (105A) konfiguriert ist, um nach der Sequenz
des Samplingzeitpunktes zu suchen, die den gesampelten Daten entspricht, die in der
Speichereinheit (104) gespeichert sind, um als die ersten Daten Daten zu spezifizieren,
welche der Sequenz des Samplingzeitpunktes entsprechen, und zwar in Übereinstimmung
mit dem Abrundungswert, und um als die zweiten Daten Daten zu spezifizieren, die der
Sequenz des Samplingzeitpunktes entsprechen, und zwar in Übereinstimmung mit dem Aufrundungswert.
3. Asynchronsamplingfrequenzwandlungsvorrichtung (1) nach Anspruch 1 oder 2, die weiter
Folgendes aufweist:
eine Bestimmungseinheit (105B), die konfiguriert ist, um zu bestimmen, ob der Multiplikationswert
eine natürliche Zahl ist,
wobei, wenn die Bestimmungseinheit (105B) bestimmt, dass der Multiplikationswert die
natürliche Zahl ist,
die Datenspezifizierungseinheit (105A) konfiguriert ist, um als die ersten Daten und
die zweiten Daten Daten zu spezifizieren, die zu dem gleichen Zeitpunkt gesampelt
bzw. abgetastet wurden, wie zu dem i-ten Samplingzeitpunkt des Ausgangsdigitalsignals,
und zwar unter den Eingangsdigitalsignalen, die in der Speichereinheit (104) gespeichert
sind, und
wobei der Ausgangdatenwertkalkulator (105C) konfiguriert ist, um als den Wert der
i-ten Daten des Ausgangsdigitalsignals einen Wert von Daten zu berechnen, die zum
gleichen Zeitpunkt gesampelt wurden wie zu dem iten Samplingzeitpunkt des Ausgangsdigitalsignals,
welches durch die Datenspezifizierungseinheit (105A) spezifiziert wurde.
4. Asynchronsamplingfrequenzwandlungsvorrichtung (1') nach einem der Ansprüche 1 bis
3, die weiter Folgendes aufweist:
einen Veränderungsgrößenkalkulatur (105E), der konfiguriert ist, um einen absoluten
Wert einer Veränderungsgröße der zweiten Daten bezüglich der ersten Daten zu berechnen;
und
eine Korrektureinheit (105F), die konfiguriert ist, um den Wert der i-ten Daten des
Ausgangsdigitalsignals, welches von dem Ausgangdatenwertkalkulator (105C) berechnet
wurde, zu korrigieren, und zwar basierend auf dem absoluten Wert der Veränderungsgröße
der zweiten Daten bezüglich der ersten Daten, der berechnet wird durch den Veränderungsgrößenkalkulatur
(105E).
5. Asynchronsamplingfrequenzwandlungsverfahren, welches Folgendes aufweist:
einen Signalspeicherschritt zum Speichern von Eingangsdigitalsignalen;
einen Datenspezifizierungsschritt zum Spezifizieren von ersten Daten und zweiten Daten
basierend auf einem Verhältnis einer Abtast- bzw. Samplingfrequenz des Eingangsdigitalsignals
zu einer Samplingfrequenz eines Ausgangsdigitalsignals, wobei die ersten Daten zu
einem Samplingzeitpunkt direkt vor einem i-ten Samplingzeitpunkt des Ausgangsdigitalsignals
gesampelt bzw. abgetastet werden, wobei i eine natürliche Zahl ist, und zwar unter
den Eingangsdigitalsignalen, die in dem Signalspeicherschritt gespeichert werden,
wobei die zweiten Daten zu dem Samplingzeitpunkt direkt nach dem i-ten Samplingzeitpunkt
des Ausgangsdigitalsignals gesampelt werden; und
einen Datenberechnungsschritt zum Berechnen eines Wertes von i-ten Daten des Ausgangsdigitalsignals
basierend auf den spezifizierten ersten Daten, den spezifizierten zweiten Daten und
dem Verhältnis,
dadurch gekennzeichnet, dass
in dem Datenspezifizierungsschritt die ersten Daten, die ein Abrundungswert in Übereinstimmung
mit einer Sequenz des Samplingzeitpunktes sind, und die zweiten Daten, die ein Aufrundungswert
in Übereinstimmung mit der Sequenz des Samplingzeitpunktes sind, spezifiziert werden,
wobei der Abrundungswert erhalten wird durch Abrunden eines Multiplikationswertes
auf eine natürliche Zahl, wobei der Aufrundungswert erhalten wird durch Aufrunden
des Multiplikationswertes auf eine natürliche Zahl, wobei der Multiplikationswert
erhalten wird durch Multiplizieren des Verhältnisses mit i, was die Sequenz des Samplingzeitpunktes
der Daten anzeigt, die in dem Datenberechnungsschritt berechnet werden sollen; und
wobei in dem Datenberechnungsschritt der Wert der i-ten Daten ds Ausgangsdigitalsignals
berechnet wird durch Linearinterpolation unter Verwendung der ersten Daten und der
zweiten Daten, die in dem Datenspezifizierungsschritt spezifiziert wurden, des Multiplikationswertes,
des Abrundungswertes und des Aufrundungswertes.
6. Asynchronsamplingfrequenzwandlungsprogramm, welches einen Computer veranlasst, Folgendes
auszuführen:
einen Signalprozess zum Speichern von Eingangsdigitalsignalen; einen Datenspezifizierungsschritt
zum Spezifizieren von ersten Daten und zweiten Daten basierend auf einem Verhältnis
einer Abtast- bzw. Samplingfrequenz des Eingangsdigitalsignals zu einer Samplingfrequenz
eines Ausgangsdigitalsignals, wobei die ersten Daten zu einem Samplingzeitpunkt direkt
vor einem i-ten Samplingzeitpunkt des Ausgangsdigitalsignals abgetastet bzw. gesampelt
werden, wobei i eine natürliche Zahl ist, und zwar unter den Eingangsdigitalsignalen,
die in dem Signalspeicherprozess gespeichert wurden, wobei die zweiten Daten zu einem
Samplingzeitpunkt direkt nach dem i-ten Samplingzeitpunkt des Ausgangsdigitalsignals
gesampelt werden; und
einen Datenberechnungsschritt zum Berechnen eines Wertes der i-ten Daten des Ausgangsdigitalsignals
basierend auf den spezifizierten ersten Daten, den spezifizierten zweiten Daten und
dem Verhältnis,
dadurch gekennzeichnet, dass
in dem Datenspezifizierungsprozess die ersten Daten, die ein Abrundungswert in Übereinstimmung
mit einer Sequenz des Samplingzeitpunktes sind, und die zweiten Daten, die ein Aufrundungswert
in Übereinstimmung mit der Sequenz des Samplingzeitpunktes sind, spezifiziert werden,
wobei der Abrundungswert erhalten wird durch Abrunden eines Multiplikationswertes
auf eine natürliche Zahl, wobei der Aufrundungswert erhalten wird durch Aufrunden
des Multiplikationswertes auf eine natürliche Zahl, wobei der Multiplikationswert
erhalten wird durch Multiplizieren des Verhältnisses mit i, was die Sequenz des Samplingzeitpunktes
von Daten anzeigt, die in dem Datenberechnungsprozess berechnet werden sollen; und
in dem Datenberechnungsprozess der Wert der i-ten Daten des Ausgangsdigitalsignals
durch Linearinterpolation berechnet wird, und zwar unter Verwendung der ersten Daten
und der zweiten Daten, die in dem Datenspezifizierungsprozess spezifiziert wurden,
des Multiplikationswertes, des Abrundungswertes und des Aufrundungswertes.