Audio bandwidth expansion

Information

  • Patent Grant
  • 7676043
  • Patent Number
    7,676,043
  • Date Filed
    Tuesday, February 28, 2006
    18 years ago
  • Date Issued
    Tuesday, March 9, 2010
    14 years ago
Abstract
Bandwidth expansion for audio signals by frequency band translations plus adaptive gains to create higher frequencies; use of a common channel for both stereo channels limits computational complexity. Adaptive cut-off frequency determination by power spectrum curve analysis, and bass expansion by both fundamental frequency illusion and equalization.
Description
BACKGROUND OF THE INVENTION

The present invention relates to digital signal processing, and more particularly to audio frequency bandwidth expansion.


Audio signals sometimes suffer from inferior sound quality. This is because their bandwidths have been limited due to the channel/media capacity of transfer/storage systems. For example, cut-off frequencies are set at about 20 kHz for CD, 16 kHz for MP3, 15 kHz for FM radio, and even lower for other audio systems whose data rate capability are poorer. At playback time, it is beneficial to recover high frequency components that have been discarded in such systems. This processing is equivalent to expanding an audio signal bandwidth, so it can be called bandwidth expansion (BWE); see FIG. 2a. One approach to realize BWE is to first perform fast Fourier transform (FFT) on band-limited signals, shift the spectrum towards high frequencies, add the high frequency portion of the shifted spectrum to the unmodified spectrum above the cut-off frequency, and then perform inverse FFT (IFFT). The third operation can be understood as weighting the frequency-shifted spectrum with zero below the cut-off frequency and then adding it to the unmodified spectrum; see FIG. 2c. The problem with this method is that, time domain aliasing is caused due to the plain frequency domain weighting. This can lead to perceptual distortion. A possible solution that eases this problem could be to apply overlap-add methods. However, these methods are incapable of complete suppression of aliasing.


On the other hand, time domain processing for BWE has been proposed in which high frequency components are synthesized by using amplitude modulation (AM) and extracted by using a high-pass filter. This system performs the core part of high frequency synthesis in time domain and is time domain alias-free. Another property employed is to estimate the cut-off frequency of input signal, on which the modulation amount and the cut-off frequency of the high-pass filter can be determined in run-time depending on the input signal. BWE algorithms work most efficiently when the cut-off frequency is known beforehand. However, it varies depending on signal content, bit-rate, codec, and encoder used. It can vary even within a single stream along with time. Hence, a run-time cut-off frequency estimator, as shown in FIG. 2d, is desired in order for the BWE algorithms to adaptively synthesize the high frequency components that were cut-off at time-varying frequency. To estimate the cut-off frequency, one known method applies an FFT to a section of an input signal, and identifies the cut-off frequency as the highest frequency contained in the signal. Namely, it seeks the highest frequency at which the spectrum crosses a predefined threshold. This method is very simple, but a small threshold will be susceptible to noise and a large threshold will fail for small input signals. Another problem is that, even if there is no real cut-off in the input spectrum, the simple method would identify an inappropriate frequency as the cut-off frequency. Consider the case where the spectrum gradually declines toward the Nyquist frequency and the spectrum crosses the threshold at a certain frequency. Then, BWE algorithms will generate unwanted high frequencies, which could result in audible distortion, over the already existing high frequency components of the input signal.


Another bandwidth problem occurs at low frequencies: bass loudspeakers installed in electric appliances such as flat panel TV, mini-component, multimedia PC, portable media player, cell-phone, and so on cannot reproduce bass frequencies efficiently due to their limited dimensions relative to low frequency wavelengths. With such loudspeakers, the reproduction efficiency starts to degrade rapidly from about 100-300 Hz depending on the loudspeakers, and almost no sound is excited below 40-100 Hz; see FIG. 2f. To compensate for the degradation of the bass frequencies, various kinds of equalization techniques are widely used in practice. Although equalization can help reproduce the original bass sound, the amplifier gain for the bass frequencies may be excessively high. As a result, it could overdrive the loudspeaker, which may cause non-linear distortion. Also, the dynamic range of the equalized signal would become too wide for digital representation with finite word length. Another technique for bass enhancement is to invoke a perception of the bass frequencies using a psycho-acoustic effect, so-called “missing fundamental”. According to the effect, a human brain perceives the tone of the missing fundamental frequency when its higher harmonics are detected. Hence, by generating higher harmonics, one can give the perception of bass frequencies with loudspeakers that are incapable of reproducing them. The missing fundamental effect, however, gives only a “pseudo tone” of the fundamental frequency. The overuse of the effect for a wide range of frequencies leads to unnatural or unpleasant sound. As for the harmonics generation, various techniques are known in the literature: rectification, clipping, polynomials, non-linear gain, modulation, multiplicative feedback loop, and so on. In most cases, since those techniques are based on non-linear operations, an envelope estimator is desired that obtains the input signal level to generate harmonics efficiently. For example, when clipping a signal, the clipping threshold is critical to the amount of harmonics generated. Consider the case when the threshold is fixed for any input signal. Then, the amount of harmonics will be zero or insufficient for small input signal, and too much for large input signal.


SUMMARY OF THE INVENTION

The present invention provides audio bandwidth expansion with adaptive cut-off frequency detection and/or a common expansion for stereo signals and/or even-odd harmonic generation for part of low frequency expansion.





BRIEF DESCRIPTION OF THE DRAWINGS


FIGS. 1
a-1m show spectra and functional blocks of bandwidth extension to either high or low frequencies of preferred embodiments.



FIGS. 2
a-2g show known spectra and bandwidth extensions.



FIGS. 3
a-3b illustrate a processor and network communications.



FIGS. 4
a-4c are experimental results.





DESCRIPTION OF THE PREFERRED EMBODIMENTS

1. Overview


Preferred embodiment methods include audio bandwidth extensions at high and/or low frequencies. Preferred embodiment high-frequency bandwidth expansion (BWE) methods include amplitude modulation and a high-pass filter for high frequency synthesis which reduces computation by making use of an intensity stereo processing in case of stereo signal input. Another BWE preferred embodiment estimates the level of high frequency components adaptively; this enables smooth transition in spectrum from original band-limited signals to synthesized high frequencies with a more natural sound quality.


Further preferred embodiments provide for the run-time creation of the high-pass filter coefficients, use of windowed sinc functions that requires low computation with much smaller look-up table size for ROM. This filter is designed to have linear phase, and thus is free from phase distortion. And the FIR filtering operation is done in frequency domain using the overlap-save method, which saves significant amount of computation. Some other operations including the AM operation are also converted to frequency domain processing so as to minimize the number of FFT operations.


In particular, a preferred embodiment method first identifies a cut-off frequency, as the candidate, with adaptive thresholding of the input power spectrum. The threshold is adaptively determined based on the signal level and the noise floor that is inherent in digital (i.e., quantized) signals. The use of the noise floor helps discriminate the presence of high frequencies in input signals. To verify the candidate cut-off frequency, the present invention then detects the spectrum envelope around the candidate. If no ‘drop-off’ is found in the spectrum envelope, the candidate will be treated as a false cut-off and thus discarded. In that case, the cut-off frequency will be identified as the Nyquist frequency FS/2. All the processing is done in the decibel domain to emphasize the drop-off in spectra percentage and to estimate the cut-off frequency in a more robust manner.


Preferred embodiment systems perform preferred embodiment methods with any of several types of hardware: digital signal processors (DSPs), general purpose programmable processors, application specific circuits, or systems on a chip (SoC) which may have multiple processors such as combinations of DSPs, RISC processors, plus various specialized programmable accelerators; see FIG. 3a which illustrates a processor with multiple capabilities. A stored program in an onboard or external (flash EEP)ROM or FRAM could implement the signal processing. Analog-to-digital converters and digital-to-analog converters can provide coupling to the real world, modulators and demodulators (plus antennas for air interfaces) can provide coupling for transmission waveforms, and packetizers can provide formats for transmission over networks such as the Internet; see FIG. 3b.


2. Single-channel AM-based BWE with Adaptive Signal Level Estimation


Preferred embodiment methods and devices provide for stereo BWE using a common extension signal. Thus, initially consider preferred embodiment BWE for a single channel system, this will be the baseline implementation for the preferred embodiment stereo-channel BWE. We adopt the AM-based BWE method due to its good sound quality and lower computation complexity.



FIG. 2
b shows the block diagram. First, let us assume that the input signal x(n) has been sampled with sampling frequency FS Hz and low-pass filtered with a filter having cut-off frequency FC Hz. Of course,

FC<FS/2=FN

where FN denotes the Nyquist frequency. For example, typical sampling rates are FS=44.1 or 48 kHz, so FN=22.05 or 24 kHz; whereas, FC may be about 16 kHz, such as in MP3.


In the figure, u1(n) is output from the amplitude-modulation block AM (more precisely, cosine-modulation). Let the block AM be a point-wise multiplication with a time varying cosine weight:

u1(n)=cos[2πfmn/FS]x(n)

where fm represents the frequency shift amount (known as a carrier frequency for AM) from the input signal. The behavior of this modulation can be graphically analyzed in the frequency domain. Let X(f) be the Fourier spectrum of x(n) defined as

X(f)=Σ−∞<n<∞x(n) exp[−jfn]

and let U1(f) be the Fourier spectrum of u1(n) defined similarly. Then the modulation translates into:

U1(f)=½X(f−fm/FS)+½X(f+fm/FS)

This shows that U1(f) is composed of frequency-shifted versions of X(f). The top two panels of FIG. 2c show the relation graphically, where it can be seen that U1(f) contains frequency components outside of the spectral band of X(f) (above FC and below −FC).


As shown in FIG. 2b, the signal u1(n) is then high-pass filtered by HPC(z), whose cut-off frequency has to be chosen around FC, yielding u2(n). The role of HPC(z) is to preserve the original spectrum under the cut-off frequency FC when x(n) is mixed with u2(n). By mixing x(n) with u2(n), we obtain the band-expanded signal (see the spectrum of U2(f) shown in the lower left panel of FIG. 2c).


Before being added to x(n), the level of u2(n) is adjusted using gain G(n), so that the band-expanded spectrum exhibits a smooth transition from the original spectrum through the synthesized high frequency spectrum (see the lower right panel in FIG. 2c). Obviously G(n) must depend on the shape of the input spectrum.


In FIG. 2b, preferred embodiment methods determine G(n) from the input signal x(n) using two high-pass filters, HPH(z) and HPM(z), which yield vH(n) and vM(n), respectively. Take the cut-off frequencies of the filters HPH(z) and HPM(z) to be FH=FC−αfm and FM=FC−fm, respectively, where α (0<α<1) is a constant. As an example, with FS=44.1 kHz and FC=16 kHz, parameter values could be fm=4 kHz and α=0.5. In this case, the cut-off frequencies for HPH and HPM would be FH=14 kHz and FM=12 kHz, respectively; and vH(n) would be the portion of x(n) with frequencies in the interval FC−αfm<f<FC (14-16 kHz) and vM(n) the portion of x(n) with frequencies in the larger interval FC−fm<f<FC (12-16 kHz).


Then G(n) is determined by

G(n)=2Σi|vH(n−i)|/αΣi|vM(n−i)|

where α factor compensates for the different frequency ranges in vH(n) and vM(n), and the factor of 2 is for canceling the ½ in the definition of U1(f). Finally, we obtain the band-expanded output:

y(n)=x(n)+G(n)u2(n)


From its definition, G(n) can be seen to be a rough estimation of the energy transition of |X(f)| for f in the interval FC−fm<f<FC. This is because the definition of G(n) can be interpreted using Parseval's theorem as







G


(
n
)


=


2






-


<
f
<










HP
H



(
f
)




X


(
f
)









f

/
α







-


<
f
<










HP
M



(
f
)




X


(
f
)








f
















2






Fc
-

α

fm


<
f
<
Fc







X


(
f
)








f

/
α







Fc
-
fm

<
f
<
Fc







X


(
f
)







f












Note that this is just for ease of understanding and is mathematically incorrect because Parseval's theorem applies in L2 and not in L1. For example, if the numerator integral gives a small value, it is likely that X(f) decreases as f increases in the interval FC−fm<f<FC. Thus the definition tries to let G(n) be smaller so that the synthesized high frequency components get suppressed in the bandwidth expansion interval FC<f<FC+fm.


3. BWE for Stereo



FIG. 1
a illustrates a first preferred embodiment system. In preferred embodiment methods the input stereo signals xl(n) and xr(n) are averaged and this average signal processed for high frequency component synthesis. Thus, first modulate:

u1(n)=cos[2πfmn/FS](xl(n)+xr(n))/2

Next, by high-pass filtering u1(n) with HPC(z), we obtain u2(n), the high frequency components. The signal u2(n) can be understood as a center channel signal for IS. We then apply the gains Gl(n) and Gr(n) to adjust the level of u2(n) for left and right channels, respectively. Ideally, we separately compute Gl(n) and Gr(n) for the left and right channels, but the preferred embodiment methods provide further computation reduction and apply HPM(z) only to the center channel while having HPH(z) applied individually to left and right channels. That is, left channel input signal xl(n) is filtered using high-pass filter HPH(z) to yield vl,H(n) and right channel input signal xr(n) is filtered again using high-pass filter HPH(z) to yield vr,H(n); next, the center channel signal (xl(n)+xr(n))/2 is filtered using high-pass filter HPM(z) to yield vM(n). Then define the gains for the left and right channels:

Gl(n)=2Σi|vl,H(n−i)|/αΣi|vM(n−i)|
Gr(n)=2Σi|vr,H(n−i)|/αΣi|vM(n−i)|

Lastly, compute the left and right channel bandwidth-expanded outputs using the separate left and right channel gains with the HPC-filtered, modulated center channel signal u2(n):

yl(n)=xl(n)+Gl(n)u2(n)
yr(n)=xr(n)+Gr(n)u2(n)

The determination of FC can be adaptive as described in the following section, and this provides a method to determine fm, such as taking fm=20 kHz−FC.


4. Cut-off Frequency Estimation


Preferred embodiment methods estimate the cut-off frequency FC of the input signal from the input signal, and then the modulation amount fm and the cut-off frequency of the high-pass filter can be determined in run-time depending on the input signal. That is, the bandwidth expansion can adapt to the input signal bandwidth.



FIG. 1
b shows the block diagram of the preferred embodiment cut-off estimator. It receives input samples x(n) as successive frames of length N, and outputs the estimated cut-off frequency index kc with auxiliary characteristics of the detected envelope for each frame. The corresponding cut-off frequency is then given by

FC=FSkc/N


The input sequence x(n) is assumed to be M-bit linear pulse code modulation (PCM), which is a very general and reasonable assumption in digital audio applications. The frequency spectrum of x(n) accordingly has the so-called noise floor originating from quantization error as shown in FIG. 1c. First, derive the magnitude of the noise floor, which underlies the preferred embodiment methods.


Suppose that x(n) was obtained through quantization of the original signal u(n) in which q(n)=x(n)−u(n) is the quantization error, and the quantization step size is

Δ=2−M+1

According to the classical quantization model, the quantization error variance is given by

E[q2]=Δ2/12≡Pq

On the other hand, the quantization error can generally be considered as white noise. Let Q(k) be the N-point discrete Fourier transform (DFT) of q(n) defined by

Q(k)=1/0≦n≦N−1q(n)e−j2πnk/N

Then, the expectation of the power spectrum will be constant as

E[|Q(k)|2]=PQ

The constant PQ gives the noise floor as shown in FIG. 1c.


From Parseval's theorem, the following relation holds:

Σ0≦k≦N−1|Q(k)|2=1/NΣ0≦n≦N−1q(n)2

By taking the expectation of this relation and using the foregoing, the noise floor is given by

PQ=Pq/N=1/(322MN)


As shown in block diagram FIG. 1b the frequency spectrum of input frames is computed by an N-point FFT after the input samples are multiplied with a window function to suppress side-lobes. The peak hold technique can optionally be applied to the power spectrum along with time in order to smooth the power spectrum. It will lead to moderate time variation of the candidate cut-off frequency kc′.


Let xm(n) be the input samples of the m-th frame as

xm(n)=x(Nm+n) 0≦n≦N−1

Then, the frequency spectrum of the windowed m-th frame becomes

Xm(k)=1/0≦n≦N−1w(n)xm(n)e−j2πnk/N

where w(n) is the window function such as a Hann, Hamming, Blackman, et cetera, window.


Define the peak power spectrum of the m-th frame, Pm(k) for 0≦k≦N/2, as

Pm(k)=max{αPm−1(k), |Xm(k)|2+|Xm(−k)|2}

where α is the decay rate of peak power per frame. Note that the periodicity Xm(k)=Xm(N+k) holds in the above definition. For simplicity, we will omit the subscript m in the peak power spectrum for the current frame in the following.


After the peak power spectrum is obtained, the candidate cut-off frequency kc′ is identified as the highest frequency bin for which the peak power exceeds a threshold T:

P(kc′)>T

The threshold T is adapted to both the signal level and the noise floor. The signal level is measured in mean peak power within the range [K1, K2] defined as

PXK1≦k≦K2P(k)/(K2−K1+1)

The range is chosen such that PX reflects the signal level in higher frequencies including possible cut-off frequencies. For example, [K1, K2]=[N/5, N/2]. The threshold T is then determined as the geometric mean of the mean peak power PX and the noise floor PQ:

T=√(PXPQ)

In the decibel domain, this is equivalent to placing T at the midpoint between PX and PQ as

custom character=(custom characterX+custom characterQ)/2

where the calligraphic letters represent the decibel value of the corresponding power variable as

custom character=10 log10 P
FIG. 1d presents an illustrative explanation of the adaptive thresholding. From the expression “mean peak power”, one might think that PX should be located lower than depicted in the figure as the mean magnitude of P(k) for [K1, K2] will be slightly above T in the figure. However, PX is not the mean magnitude, i.e., the mean in the decibel domain, but the physical mean power as defined by the sum over [K1, K2]. As a result, the threshold T will be placed between the signal level and the noise floor so that it will be adapted suitably to the signal level.


It must be noted that, even if there is no actual cut-off in P(k), the above method will identify a certain kc′ as the candidate cut-off, which is actually a false cut-off frequency. Hence, whether there is the true cut-off at the candidate kc′ or not should be examined.


In order to see if there is the actual cut-off at kc′, the preferred embodiment method detects the envelope of P(k) separately for below kc′ and for above kc′. It uses linear approximation of the peak power spectrum in the decibel domain, as shown in FIG. 1e. The spectrum below kc′ and that above kc′ are approximated respectively by

y=aL(kc′−k)+bL

and

y=aH(k−kc′)+bH

The slopes aL, aH and the offsets bL, bH are derived by the simple two-point linear-interpolation. To obtain aL and bL, two reference points KL1 and KL2 are set as in FIG. 1f. For example,

KL1=kc′−N/16, KL2=kc′−3N/16

Then, the mean peak power is calculated for the two adjacent regions centered at the two reference points as

PL1=(1/DLKL2−DL/2≦k≦KL1+DL/2−1P(k)
PL2=(1/DLKL2−DL/2≦k≦LL2+DL/2−1P(k)

where DL is the width of the regions:

DL=KL1−KL2

The linear-interpolation of the two representative points, (KL1, PL1) and (KL2, PL2), in the decibel domain gives

aL=(custom characterL2custom characterL1)/DL
bL=(KL2custom characterL1−KL1custom characterL2)/DL

where custom characterL1,custom characterL2 are again decibel values of PL1, PL2.


Similarly, for the envelope above kc′, KH1 and KH2 are set appropriately, and

PH1=(1/DHKH1−DH/2≦k≦KH1+DH/2−1P(k)
PH2=(1/DHKH2−DH/2≦k≦KH2+DH/2−1P(k)

are computed, where

DH=KH2−KH1

Example values are

KH1=kc′+N/16, KH2=kc′+N/8

With these values aH and bH can be computed by just switching L to H in the foregoing.


In the preferred embodiment method, the candidate cut-off frequency kc′ is verified as











k
c

=



k
c
'






if






(


b
L

-

b
H


)


>


















=


N
/
2






otherwise









where kc is the final estimation of the cut-off frequency, and custom characterb is a threshold. The condition indicates that there should be a drop-off larger than custom characterb (dB) at kc′ so that the candidate can be considered as the true cut-off frequency.


There are many other possible ways to verify the candidate cut-off frequency kc′ using aL, bL, aH and bH. Another simple example is

bL>custom character>bH

This condition means that the offsets should be on the expected side of the threshold. Even more sophisticated and robust criteria may be considered using the slopes aL and aH.


5. BWE in Time Domain



FIG. 1
g shows the block diagram of a preferred embodiment time domain BWE implementation. The system is similar to the preferred embodiment of sections 2 and 3 but with a cut-off frequency (bandwidth) estimator and input delay z−D. Suppose that the input signal x(n) has been sampled with sampling frequency at FS and low-pass filtered with cut-off frequency at FC. The input signal x(n) is processed with AM to produce signal u1(n), which can be said to be a frequency-shifted signal. High-pass filter HC(z) is applied to u1(n) in order to preserve the input signal under the cut-off frequency FC when u1(n) is mixed with x(n). Therefore the cut-off frequency of HC(z) has to be set at FC. If FC is unknown a priori or varies with time, the cut-off estimator of the preceding section can be used in run-time to estimate FC and determine the filter coefficients of HC(z). The output from HC(z), u2(n), is amplified or attenuated with time-varying gain g(n) before being mixed with x(n). As described in foregoing sections 2-3, the gain g(n) is determined in run-time by the level estimator so that the spectrum of the output signal y(n) shows a smooth transition around FC. The input delay z−D is used to compensate for the phase delay caused by HC(z). For example, when HC(z) is designed as a linear phase FIR and its order is 2L, the delay amount is D=L.


The high-pass filter coefficients HC(z) is determined every time kc (or FC(n)) is updated. From the implementation view point, the filter coefficient creation has to be done with low computation complexity. The known approach precalculates and stores in a ROM a variety of IIR (or FIR) filter coefficients that correspond to the possible cut-off frequencies. If an IIR filter is used, HC(z) will have non-linear phase response and the output u2(n) will not be phase-aligned with the input signal x(n) even if we have the delay unit. This could cause perceptual distortion. On the other hand, FIR filters generally require longer tap length than IIR filters. Therefore huge amount of ROM size will be required to store FIR filter coefficients for variety of cut-off frequencies. To avoid these problems, the preferred embodiment design form HC(z) with FIR that requires small amount of ROM size and low computational cost. With this design, the preferred embodiment system enables better sound quality than the known approach with IIR implementation for HC(z) or much smaller ROM size than that with FIR implementation.


Our FIR filter design method is similar to that presented in cross-reference patent application No. 60/660,372, which is based on the well-known windowed sinc function. The impulse response hid(n)(m) of the “ideal” high-pass filter with cut-off angular frequency at ωC(n) at time n can be found by inverse Fourier transforming the ideal frequency-domain high-pass filter as follows:

hid(n)(m)=(½π){∫−π≦ω≦−ωC(n)e−j2πωdω+∫π≦ω≦ωC(n)e−j2πωdω}

so















h
id

(
n
)




(
m
)


=

1
-



ω
C



(
n
)


/
π








=



-

sin


[



ω
C



(
n
)



m

]



/
π






m






















for





m

=
0









for





m

=


+
_


1


,


+
_


2

,


+
_


3

,






















Substituting ωC(n)=2πFC(n)/FS gives













h
id

(
n
)




(
m
)


=

1
-



k
c



(
n
)


/

(

N
/
2

)









=



-

sin


[

2

π







k
c



(
n
)




m
/
N


]



/
π






m















for





m

=
0








for





m

=


+
_


1


,


+
_


2

,


+
_


3

,















This “ideal” filter requires the infinite length for hid(n)(m). In order to truncate the length to a finite number, window function is often used that reduces the Gibbs phenomenon. Let the window function be denoted w(m) and non-zero only in the range −L≦m≦L, then practical FIR high-pass filter coefficients with order-2L can be given as












h

(
n
)




(
m
)


=


(

1
-



k
c



(
n
)


/

(

N
/
2

)



)



w


(
0
)









=


-

w


(
m
)






sin


[

2

π







k
c



(
n
)




m
/
N


]


/
π






m















for





m

=
0








for





m

=


+
_


1


,


+
_


2

,


+
_


3

,










For run-time calculation of these filter coefficients, we factor h(n)(m) as

h(n)(m)=hw(m)hS(n)(m)

where












h
w



(
m
)


=
1






=



w


(
m
)


/
π






m






















for





m

=
0










for





m

=


+
_


1


,


+
_


2

,


+
_


3

,















and











h
S

(
n
)




(
m
)


=

h
0

(
n
)








=

-

sin


[

2

π







k
c



(
n
)




m
/
N


]

















for





m

=
0








for





m

=


+
_


1


,


+
_


2

,


+
_


3

,










with h0(n)=(1−kc(n)/(N/2))w(0).


It is clear that hw(m) is independent of the cut-off frequency and therefore time-invariant. It can be precalculated and stored in a ROM and then referenced for generating filter coefficients in run-time with any cut-off frequencies. The term hS(n)(m) can be calculated with low computation using a recursive method as in the cross-referenced application. In particular, presume that

s1(n)=sin [2πkc(n)/N]
c1(n)=cos [2πkc(n)/N]

can be obtained by referring to a look-up table, then we can perform recursions for positive m:

hS(n)(1)=s1(n)
hS(n)(2)=2c1(n)hS(n)(1)
hS(n)(3)=2c1(n)hS(n)(2)−hS(n)(1)
. . .
hS(n)(m)=2c1(n)hS(n)(m−1)−hS(n)(m−2)

and for negative m use hS(n)(m)=−hS(n)(−m).


The FIR filter derived above doesn't satisfy causality; that is, there exists m such that h(n)(m)≠0 for −L≦m<0, whereas causality has to be satisfied for practical FIR implementations. To cope with this problem, we insert a delay in the FIR filtering in order to make it causal. That is,

u2(n)=Σ−L≦m≦Lu1(n−m−L)h(n)(m)

where u2(n) is the output signal (see FIG. 1g).


6. BWE in Frequency Domain


FIR filtering is a convolution with the impulse response function; and convolution transforms into pointwise multiplication in the frequency domain. Consequently, a popular alternative formulation of FIR filtering includes first transform (e.g., FFT) a block of the input signal and the impulse response to the frequency domain, next multiply the transforms, and lastly, inverse transform (e.g, IFFT) the product back to the time domain.



FIG. 1
h shows the block diagram of the preferred embodiment frequency domain BWE implementation. For the overlap-save method, an overlapped frame of input signal is processed to generate a non-overlapped frame of output signal. See FIG. 2e illustrating overlap-save generally, where x(r) denotes the N-vector of samples constituting the r-th frame (r=1, 2, . . . ) of input signal and defined as

x(r)(m)=x(Rr+m−N) 0≦m≦N−1

We assume x(m)=0 for m<0. Note that, for the FFT processing, N is chosen to be a power of 2, such as 256. FIG. 2e indicates that N−R samples in the frame are overlapped with the previous frames. By processing N-vector x(r) of input samples, we will obtain a non-overlapped R-vector of output signal y(r) defined as

y(r)(m)=y(Rr+m−R) 0≦m≦R−1

In FIG. 1h the cut-off estimation and the high frequency synthesis are done in frequency domain, while the other functions are implemented in time domain.


Due to the frame-based processing, the cut-off frequency estimation can be done each frame, not for each input sample. Hence update of the high-pass filter becomes to be done less frequently. However, as is often the case, this causes no quality degradation because the input signal can be assumed to be stationary during a certain amount of duration, and the cut-off frequency is expected to change slowly.


For the r-th frame, the DFT (FFT implementation) of x(r) is defined as:

XS(r)(k)=Σ0≦m≦N−1x(r)(m) exp [−jkm/N]

The DFT coefficients XS(r)(k) will be used for high-frequency synthesis, and also the cut-off estimation after a simple conversion as explained in detail in the following.


The AM operation is applied to x(r)(m) as described in section 2 above:

u1(r)(m)=cos [2πFmm/FS]x(r)(m)

Note that, in the following discussion regarding frequency domain conversion, a constraint will have to be fulfilled on the frequency-shift amount Fm. Let km be a bin number of frequency-shift amount, we have to satisfy km=NFm/FS is an integer since the bin number has to be integer. On the other hand, for use of FFT, the frame size N has to be power of 2. Hence, Fm=FS/2integer.


Also note that, the use of overlapped frames requires another condition to be satisfied on the output frame size R. The cosine weight in the modulation for overlapped input signals in successive frames has to be the same values. Otherwise the same input signal in different frames is weighted by different cosine weights, which causes perceptual distortion around output frame boundaries. Since

x(r)(m)=x(Rr+n−N)=x(r−1)(m+R),

we have to satisfy

cos [2πFmm/FS]=cos [2πFm(m+R)/FS]

This leads to

Fm=FSI/R

where I is an integer value. This leads to R being 4 times an integer. This condition is not so strict for most of the applications. Overlap ratio of 50% (e.g, R=N/2) is often chosen for frequency domain processing, which satisfies R being 4 times an integer.


Then we convert the operation modulation to the frequency domain. Again with capitals denoting transforms of lower case:

U1(r)(k)=½(XS(r)(k−km)+XS(r)(k+km))

The equation indicates that, once we have obtained the DFT of the input frame, then the AM processing can be performed in frequency domain just by summing two DFT bin values.


Now apply the overlap-save method to implement the time domain FIR convolution at the end of section 5. Let the r-th frame of the output from the high-pass filter be u2(r)(m) for 0≦m≦R−1. The sequence can be calculated using the overlap-save method as follows. First, let h(r)(m) be the filter coefficients, which are obtained similarly to h(n)(m) as described in section 5 above but for the r-th frame instead of time n. The length-(2L+1) sequence h(r)(m) is extended to a periodic sequence with period N by padding with N−2L−1 0s. Note that we need 2L≦N−R to keep the convolution in a single block. Here we set 2L=N−R. After these, we can calculate FFT of h(r)(m) and denote this H(r)(k).


Now let V(r)(k)=H(r)(k) U1(r)(k) for 0≦k≦N−1. Then, let v(r)(m) denote the inverse FFT of V(r)(k); extract u2(r)(m) from v(r)(m):

u2(r)(m)=v(r)(m+L) for 0≦m≦R−1

By unframing the output frame u2(r)(m) (see FIG. 2e), the output signal u2(m) is obtained as synthesized high frequency components.


Here we explain our method to calculate the DFT of the filter coefficients, H(r)(k), which is required for the overlap-save method. Recall the formula of the filter coefficients for r-th frame, and after extending this to a periodic sequence with period N using zero padding, then we have

h(r)(m)=hw(m)hS(r)(m) for m=0, ±1, ±2, . . . , ±N/2

where












h
w



(
m
)


=
1






=



w


(
m
)


/
π






m







=
0














for





m

=
0








for





m

=


+
_


1


,


+
_


2

,





,


+
_


L









for





m

=


+
_



(

L
+
1

)



,


+
_



(

L
+
2

)


,





,



+
_


N

/
2










and











h
S

(
r
)




(
m
)


=

h
0

(
r
)








=

-

sin


[

2

π







k
c



(
r
)




m
/
N


]






















for





m

=
0









for





m

=


+
_


1


,


+
_


2

,





,



+
_


N

/
2










with h0(r)=(1−kc(r)/(N/2))w(0). Note we assume here that the cut-off frequency index for r-th frame, kc(r), has already been obtained. Also note that hS(r)(m) doesn't have to be zero-padded, because hw(m) is zero-padded and that makes h(r)(m) zero-padded.


It is well known that the time domain point-wise multiplication is equivalent to circular convolution of the DFT coefficients. Let Hw(k) and HS(r)(k), respectively, be the DFT of hw(m) and hS(r)(m), then the product h(r)(m)=hw(m)hS(r)(m) transforms to











H

(
r
)




(
k
)


=



H
w



(
k
)





H
S

(
r
)




(
k
)










=


1
/
N






0

i


N
-
1







H
w



(

k
-
i

)





H
S

(
r
)




(
i
)


















where {circle around (X)} denotes the circular convolution and we assumed the periodicity on the DFT coefficients. Note that hw(m) is the sum of δ(m) plus an odd function of m, thus Hw(k)=1+jHw,Im(k) where Hw,Im(k) is a real sequence; namely, the discrete sine transform of hw(m). Since Hw,Im(k) is independent of the cut-off frequency, it can be precalculated and stored in a ROM. As for HS(r)(k), because hS(r)(m) is just the sine function, we can write

HS(r)(k)=h0(r)+j(N/2)[δ(k−kC(r))−δ(k+kC(r))]

Thus the circular convolution can be simplified significantly. Since the DFT coefficients of real sequences are asymmetric in their imaginary parts about k=0, the following relations hold:










j








H

w
,

I





m





(
k
)




h
0

(
r
)




=

j







h
0

(
r
)


/
N






0

i


N
-
1






H

w
,

I





m





(

k
-
i

)










=
0








and similarly,

1{circle around (X)}j(N/2)[δ(k−kC(r))−δ(k+kC(r))]=0

Consequently,

H(r)(k)=h0(r)[Hw,Im(k+kC(r))−Hw,Im(k−kC(r))]

Thus H(r)(k) can be easily obtained by just adding look-up table values Hw,Im(k).


The order of the high-pass filter, which has been set at 2L=N−R in the preferred embodiment method, can be further examined. In general, we hope to design a long filter that has better cut-off characteristic. However, due to the behavior of circular convolution of the overlap-save method, illegally long order of filter results in time domain alias. See FIG. 2e, where we extract R output samples out of N samples. This is because the other samples are distorted by leak from the circular convolution, hence they are meaningless samples.


Preceding section 4 provided the method that estimates frame-varying cut-off frequency kC(r) in the system FIG. 1h. This requires windowed FFT coefficients as input, which can be rewritten as

XA(r)(k)=1/NΣ0≦m≦N−1wa(m)x(r)(m)exp [−j2πmk/N]

In general, the analysis window function wa(m) has to be used to suppress the sidelobes caused by the frame boundary discontinuity. However, direct implementation of FFT only for this purpose requires redundant computation, since we need another FFT that is used for XS(r)(k). To cope with this problem, we propose an efficient method that calculates XA(r)(k) from XS(r)(k), which enables economy of computational cost. Based on our method, any kind of window function can be used for wa(m), as long as it is derived from a summation of cosine sequences. This includes Hann, Hamming, Blackman, Blackman-Harris windows which are commonly expressed as the following formula:

wa(m)=Σ0≦i≦Mam cos [2πmi/N]

For example, for the Hann window, M32 1, a0=½ and a1=½.


Comparison of XA(r)(k) and XS(r)(k) as DFTs leads to the following relation:

XA(r)(k)=XA(r)(k){circle around (X)}Wa(k)

where Wa(k) is the DFT of wa(m). Using the expression of wa(m) in terms of cosines and after simplification, we obtain

XA(r)(k)=a0XS(r)(k)+½Σ1≦m≦Mam(XS(r)(k−m)+XS(r)(k+m))

Typically, M=1 for Hann and Hamming windows, M=2 for Blackman window and M=3 for Blackman-Harris window. Therefore the computational load of this relation is much lower than additional FFT that would be implemented just to obtain XA(r)(k).


Since the preferred embodiment frequency domain method for BWE is much more complicated than that the time domain method, we summarize the steps of the procedure.


(1) Receive R input samples and associate an N-sample frame overlapped with the previous ones. The overlap length N−R has to be N−R=2L, where 2L is the order of high-pass filter HC(z).


(2) The N sample input signal is processed with FFT to obtain XS(r)(k).


(3) XS(r)(k) is converted to XA(r)(k), which is the short-time spectrum of the input signal with a cosine-derived window.


(4) Using XA(r)(k), the cut-off frequency index kC(r) is estimated. The estimation can be done based on either approach in section 4.


(5) XS(r)(k) is also frequency-shifted by cosine modulation to yield U1(r)(k)


(6) U1(r)(k) is point-wisely multiplied with H(r)(k) to yield U2(r)(r,k), where H(r)(k) is calculated as h0(r)+½[Hw,Im(k+kC(r))−Hw,Im(k−kC(r))] using a lookup table for the Hw,Im(.) values.


(7) U2(r)(r,k) is processed with IFFT to get u2(r)(r,m), and the synthesized high frequency components u2(n) is extracted as u2(r)(r,n+L)


(8) The gain g(n) is determined as in section 3, and applied to the high frequency components u2(n).


(9) The signal u2(n) is added to delayed input signal, where the delay amount D is given by D=L.


7. Bass Expansion



FIG. 1
i shows the block diagram of the preferred embodiment bass enhancement system, which is composed of a high-pass filter ‘HPF’, the preferred embodiment harmonics generator, and a bass boost filter ‘Bass Boost’. The high-pass filter removes frequencies under fL (see FIG. 2f) that are irreproducible with the loudspeaker of interest and are out of scope of the bass enhancement in the present invention. Those frequencies are attenuated in advance not to disturb the proposed harmonics generation and to eliminate the irreproducible energy in the output signal.


The bass boost filter is intended to equalize the loudspeaker of interest for the higher bass frequencies fH≦f≦fC.


The preferred embodiment harmonics generator generates integral-order harmonics of the lower bass frequencies fL≦f≦fH with an effective combination of a full wave rectifier and a clipper. FIG. 1j illustrates the block diagram, where n is the discrete time index. The signal s(n) is the output of the input low-pass filter ‘LPF1’ so that s(n) contains only the lower bass frequencies. Then, the full wave rectifier generates even-order harmonics he(n) while the clipper generates odd-order harmonics ho(n). Those harmonics are added to form integral-order harmonics as

h(n)=he(n)+Kho(n)

where K is a level-matching constant. The generated harmonics h(n) is passed to the output low-pass filter ‘LPF2’ to suppress extra harmonics that may lead to unpleasant noisy sound.


The peak detector ‘Peak’ works as an envelope estimator. Its output is used to eliminate dc (direct current) component of the full wave rectified signal, and to determine the clipping threshold. The following paragraphs describe the peak detection and the method of generating harmonics efficiently using the detected peak.


The peak detector detects peak absolute value of the input signal s(n) during each half-wave. A half-wave means a section between neighboring zero-crossings. FIG. 2g presents an explanatory example. The circles mark zero-crossings, and the triangles show maximas during half-waves. The peak value detected during a half-wave will be output as p(n) during the subsequent half-wave. In other words, the output is updated at each zero-crossing with the peak absolute value during the most recent half-wave. Pseudo C code of the preferred embodiment peak detector.

    • sgn=1;
    • maxima=0;
    • p(−1)=0;
    • for (n=0; ; n++) {
      • maxima=max(maxima, fabs(s(n)));
      • if (sgn ★ s(n)<0) {
        • p(n)=maxima;
        • maxima=0;
        • sgn=−sgn;
      • {
      • else {
        • p(n)=p(n−1);
      • }
    • }


To generate even-order harmonics he(n), the preferred embodiments employs the full wave rectifier. Namely it calculates absolute value of the input signal s(n). An issue of using the full wave rectifier is that the output cannot be negative and thus it has a positive offset that may lead to unreasonably wide dynamic range. The offset could be eliminated by using a high-pass filter. However, the filter should have steep cut-off characteristics in order to cut the dc offset while passing generated bass (i.e., very low) frequencies. The filter order will then be relatively high, and the computation cost will be increased. Instead, the preferred embodiments, in a more direct way, subtracts an estimate of the offset as

he(n)=|s(n)|−αp(n)

where α is a scalar multiple. From the derivation in the following section, the value of α is set to 2/π. FIG. 1k shows he(n) for the unit sinusoidal input as an example.


The frequency characteristics of he(n) are analyzed for a sinusoidal input. Since the frequencies contained in s(n) and he(n) are very low compared to the sampling frequency, the characteristics may be derived in the continuous time domain.


Let f(t) be a periodic function of period 2π. Then, the Fourier series of f(t) is given by

f(t)=a00<k<∞(ak cos kt+bk sin kt)

where the Fourier coefficients ak, bk are

a0=∫−π<t<πf(t)dt
ak=∫−π<t<πf(t)cos kt dt
bk=∫−π<t<πf(t)sin kt dt

Suppose that the unit sinusoidal function of the fundamental frequency, sin t, is fed to the foregoing full-wave rectifier with offset (he(n)=|s(n)|−αp(n)). Note that the peak is always equal to 1 for input sin t. Then, computing the Fourier coefficients for |sin t|−α gives

a0(e)=2/π−α.











a
k

(
e
)


=


4
/

π


(

1
-

k
2


)








for





k





even


,
positive






=

0





for





k





odd










b
k
(e)=0

Hence, the full wave rectifier generates even-order harmonics. To eliminate the dc offset, a0(e), α is set to 2/π. in the preferred embodiments. The frequency spectrum of he(n) is shown in FIG. 1l with the solid impulses.


To generate higher harmonics of odd-order, the preferred embodiment clips the input signal s(n) at a certain threshold T(T>0) as follows:













h
o



(
n
)


=
T












=

s


(
n
)













=

-
T











for






s


(
n
)




T







for





T

>

s


(
n
)


>

-
T








for
-
T



s


(
n
)











The threshold T should follow the envelope of the input signal s(n) to generate harmonics efficiently. It is thus time-varying and denoted by T(n) hereinafter. In the present invention, from the derivation in the following section, the threshold is determined as

T(n)=βp(n)

where β=1/√2. FIG. 1m shows ho(n) for the unit sinusoidal input as an example.


The Fourier coefficients of a unit sinusoidal, sin t, clipped with the threshold T=sin θ are given by

ak(o)=0
b1(o)=2(θ+sin θ cos θ)/π











b
k

(
o
)


=




4


[


cos





θ






sin

k

θ


-


(

sin





θ





cos





k





θ

)

/
k


]


/

π


(


k
2

-
1

)














for





k


1


,
odd






=

0





for





k





even









Note that the clipping generates odd-order harmonics. The frequency spectrum of the clipped sinusoidal, ho(n), is shown in FIG. 1l with the dashed impulses, where θ=π/4 and the spectrum is multiplied by two to equalize the magnitude level with he(n). Similarity in the decay rate with respect to k can be observed between the spectra of he(n) and 2he(n).


The similarity in the decay rate is suggested as follows. When the threshold parameter θ is set to θ=π/4, the magnitude of the k≠1, odd Fourier coefficients become

|bk(o)|=2[1−(−1)(k−1)/2/k]/π(k2−1)

Since the 1/k term is small compared to the principal term due to k≧3, the following approximation holds

2|bk(o)|=4/π(k2−1) for k≠1, odd

On the other hand, from he(n) discussion

|ak(e)|=4/π(1−k2) for k even, positive

Thus the expressions for |ak(e)| and 2|bk(o)| are identical except for the neglected term. Therefore, the frequency spectra of he(n) and 2he(n) decay in a similar manner with respect to k. In the preferred embodiments, the constant K in and β are so selected as K=2, β=sin π/4=1/√2.


8. Experimental Results of Stereo BWE


We implemented and tested the proposed method in the following steps: First, a stereo signal sampled at 44.1 kHz was low-pass filtered with cut-off frequency at 11.025 kHz (half the Nyquist frequency). This was used for an input signal to the proposed system. The frequency shift amount f, was chosen to be 5.5125 kHz. Therefore, the bandwidth of the output signal was set to about 16 kHz. We implemented the high-pass filters with an IIR structure. FIGS. 4a-4c show results regarding the spectrum shape. It is observed that the system well synthesizes the high frequency components above 11.025 kHz with smooth spectrum envelope. We also performed an informal listening test. We confirmed that the high-frequency band-expanded signal produced by a preferred embodiment system was comparable to the full-band original signal, and certainly sounded better than the low-pass filtered signal, which generated a darkened perception. Another listening test was conducted that compared our system with another system that applies the single channel BWE independently to the left and right channels. We detected almost no perceptual difference between them. This implies that the preferred embodiment method efficiently reduces computational cost with no quality degradation for stereo input.


9. Modifications


The preferred embodiments can be modified while retaining one or more of the features of adaptive high frequency signal level estimation, stereo bandwidth expansion with a common signal, cut-off frequency estimation with spectral curve fits, and bass expansion with both fundamental frequency illusion and frequency band equalization.


For example, the number of samples summed for the ratios defining the left and right channel gains can be varied from a few to thousands, the shift frequency can be roughly a target frequency (e.g., 20 kHz)—the cutoff frequency, the interpolation frequencies and size of averages for the cut-off verification could be varied, and the shape and amount of bass boost could be varied, and so forth.

Claims
  • 1. A method of stereo audio bandwidth expansion, comprising the steps of: (a) amplitude modulating an average of left channel and right channel audio inputs;(b) highpass filtering the results of step (a) where the highpass filter has a low cutoff frequency approximating an upper cutoff frequency for said left and right channel audio inputs;(c) computing a left channel gain and a right channel gain;(d) multiplying the results of step (b) by said left channel gain and adding the product to said left channel audio input to give a bandwidth expanded left channel audio output; and(e) multiplying the results of step (b) by said right channel gain and adding the product to said right channel audio input to give a bandwidth expanded right channel audio output.
  • 2. The method of claim 1, wherein said computing a left channel gain uses a scaled ratio of (i) a first sum of absolute amplitudes of said left channel audio input after filtering over a first high frequency band at said cutoff frequency and (ii) a second sum of absolute amplitudes of said average of left and right channel audio inputs after filtering over a second high frequency band at said cutoff frequency.
  • 3. The method of claim 2, wherein with said upper cutoff frequency denoted Fc and a shift frequency denoted fm, said first high frequency band comprises the frequencies in the range from Fc-αfm to Fc and said second high frequency band comprises the frequencies in the range from Fc-fm to Fc where α is a number within the range 0 to 1.
  • 4. The method of claim 3, wherein said fm is about 20 kHz-Fc and α is about 0.5.
  • 5. A stereo audio bandwidth expander, comprising: (a) an averager with inputs coupled to left and right channel audio inputs;(b) an amplitude modulator plus first highpass filter coupled to an output of said averager;(c) a left channel highpass filter with input coupled to said left channel audio input and output coupled to a left channel gain determiner;(d) a right channel highpass filter with input coupled to said right channel audio input and output coupled to a right channel gain determiner;(e) a second highpass fiter with input coupled to said output of said averager and output coupled to both said left channel gain determiner and said right channel gain determiner;(f) a left channel amplifier with inputs coupled to outputs of said first highpass filter and to said left channel gain determiner;(g) a right channel amplifier with inputs coupled to outputs of said first highpass filter and to said right channel gain determiner;(h) a left channel output combiner with inputs coupled to said left channel audio input and to an output of said left channel amplifier; and(i) a right channel output combiner with inputs coupled to said right channel audio input and to an output of said right channel amplifier.
  • 6. The stereo audio bandwidth expander of claim 5, wherein said averager, modulator, filters, gain determiners, and amplifiers are implemented as programs of a programmable processor.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from provisional applications Nos. 60/657,234, filed Feb. 28, 2005, 60/749,994, filed Dec. 13, 2005, and 60/756,099, filed Jan. 4, 2006. Co-assigned, copending patent application No. 60/660,372, filed Mar. 9, 2005 discloses related subject matter.

US Referenced Citations (9)
Number Name Date Kind
4696035 Torelli et al. Sep 1987 A
5111346 Matsuoka May 1992 A
5319713 Waller et al. Jun 1994 A
5377272 Albean Dec 1994 A
5838800 Lowe et al. Nov 1998 A
5872851 Petroff Feb 1999 A
5892830 Klayman Apr 1999 A
6711265 Morris, Jr. Mar 2004 B1
6947564 Hoover Sep 2005 B1
Provisional Applications (4)
Number Date Country
60657234 Feb 2005 US
60749994 Dec 2005 US
60756099 Jan 2006 US
60660372 Mar 2005 US