For more thorough understanding of the present invention and advantages thereof, the following description should be read in conjunction with the accompanying drawings, in which:
At least the following details will become apparent from descriptions of this specification and of the accompanying drawings.
Circuit Configuration
The front-end processing circuit 11 extracts a signal of a desired station to be received, from high frequency signals received through the antenna 10, and outputs an intermediate frequency signal of which the frequency is converted into a predetermined frequency (the intermediate frequency).
The signal processing circuit 15 is an integrated circuit that applies various processes to the intermediate frequency signal outputted from the front-end processing circuit 11, outputs a sound signal to the speaker 17, and is configured including an AD converter (ADC) 21, a DSP (Digital Signal Processor) 25, a memory 26, a coefficient calculating unit 30 (filter coefficient calculating unit), and a DA converter (DAC) 35.
The AD converter 21 converts the intermediate frequency signal outputted from the front-end circuit 11 into a digital signal and outputs the digital signal to the DSP 25.
The DSP 25 is a processor that can execute various processes to the digital signal such as a filtering process aiming at removing noises, equalizing, etc. and a decoding process of a coded signal. The DSP 25 is configured including a filtering unit 40 that executes a filtering process and a register 41 (storing circuit) that is used for various controls in the DSP 25. The filtering unit 40 is realized by execution by the DSP 25 of a program stored in the memory 26 such as a ROM (Read Only Memory), a RAM (Random Access Memory), and a flash memory. The memory 26 may be provided inside the DSP 25.
The coefficient calculating unit 30 receives controlling data to determine a filter characteristic such as a cut-off frequency and the center frequency from a microcomputer 16 provided outside the signal processing circuit 15, and calculates filter coefficients based on the received data. The coefficient calculating unit 30 stores the calculated filter coefficients through an internal bus, etc. of the signal processing circuit 15 into the register 41 inside the DSP 25. The coefficient calculating unit 30 can be realized by, for example, a microcomputer etc. The DSP 25 may have the function of the coefficient calculating unit 30.
The microcomputer 16 executes various controls to the signal processing circuit 15. In the embodiment, to determine the characteristic of the filtering process in the signal processing circuit 15, the controlling data such as the cut-off frequency and the center frequency is transmitted through a system bus etc. to the coefficient calculating unit 30 of the signal processing circuit 15.
The filter type information is information to identify the type of a filter such as a low-pass filter, a high-pass filter, and a band-pass filter. In the embodiment, the data length of the filter type information is one byte and, for example, eight types, 0x00 to 0x07 of filter types can be designated therein. When the filter type information is one byte, up to 256 types (0x00 to 0xFF) of filter types, for example, may be designated.
The frequency information is information to identify the characteristic frequency of a filtering process. The characteristic frequency refers to a frequency that identifies a frequency characteristic of an output signal of a filtering process such as a cut-off frequency for a low-pass filter or a low-shelf filter, or a center frequency for a peaking filter or a band-pass filter. In the embodiment, the data length of the frequency information is two bytes and, for example, frequencies ranging from 20 Hz (0x0014) to 20,000 Hz (0x4E20) can be designated in hertz therein. When the frequency information is two bytes, for example, frequencies from 0 Hz (0x0000) to 65,535 Hz (0xFFFF) can be designated.
The selectivity information is information to identify a selectivity Q in a filtering process. In the embodiment, the data length of the selectivity information is one byte and, for example, an integer value obtained by multiplying by 10 the selectivity Q that can be taken every 0.1 from 0.4 to 10.0 is set therein. That is, a value ranging from 4 (0x04) to 100 (0x64) is set in the selectivity information. An integer value obtained by multiplying the selectivity Q that can be taken every 0.1 is set in the selectivity information of one byte, a selectivity Q ranging, for example, 0.0 (0x00) to 25.5 (0xFF) can be designated.
The gain information is information to identify the gain of an output signal of a filtering process. In the embodiment, the data length of the gain information is one byte and, for example, an integer value obtained by doubling a gain value that can be taken every 0.5 from −20 dB to 20 dB is set. That is, a value ranging from −40 (0xD8) to 40 (0x28) is set in the gain information. When an integer value obtained by doubling a gain value that can be taken every 0.5 is set in the gain information of one byte, a gain ranging, for example, from −64 dB (0x80) to 63.5 dB (0x7F) can be designated.
The microcomputer 16 outputs the filter type information (Type), the frequency information (Fc), the selectivity information (Q), the gain information (G), and sampling frequency information (Fs) through a system bus, etc. to the coefficient calculating unit 30 as the controlling data to determine the filter characteristic of the 2nd-order IIR filter. The sampling frequency information (Fs) is only outputted at the timing at which the sampling frequency needs to be changed.
The coefficient calculating unit 30 calculates the filter coefficients A[0] to B[2] in the 2nd-order IIR filter based on the controlling data inputted from the microcomputer 16, and stores the calculated filter coefficients into the register 41. The DSP 25 of the embodiment executes calculation of decimal fractions in the fixed point mode. Therefore, the coefficient calculating unit 30 outputs the filter coefficients after shifting the filter coefficients by a predetermined bits to the right to include the calculated filter coefficients A[0] to B[2] in −1 to 1. The filter unit 40 determines the amount to be shifted by in advance and may set the amount to be, for example, one bit or two bits.
Each of the delaying units 50 to 53 delays an inputted signal by one sampling time period and outputs the delayed signal. The adding unit 54 adds inputted signals and outputs the added signal. Multiplying units 55 to 59 multiply inputted signals by the filter coefficients A[0] to B[2] stored in the register 41, respectively, and output the multiplied signals. The shifting unit 60 outputs an inputted signal after shifting the signal to the left by the same number of bits as that of the shift in the coefficient calculating unit 30. The shift to the left in the shifting unit 60 is to correct the amount that has been shifted by to the right in the coefficient calculating unit 30.
That is, the DSP 25 executes a filtering process based on the filter coefficients A[0] to B[2] calculated by the coefficient calculating unit 30. The filter characteristic of the DSP 25 can be varied by transmitting the controlling data such as the filter type information (Type) and the frequency information (Fc) from the microcomputer 16 to the signal processing circuit 15.
Coefficient Calculating Process
Description will be given for a filter coefficient calculating process in the coefficient calculating unit 30.
Description will be given for the coefficient calculating process corresponding to the filter type. When the filter type (iType) is 0x00 (S403: 0x00), a coefficient calculating process to obtain a 1st-order IIR (primary IIR) low-shelf filter is executed (S404).
When the gain (dG) is positive (S503: Y), the coefficient calculating unit 30 calculates the filter coefficients A[0] to B[2] according to the following equations (S504).
X=1+SIG
A[0]=(1+SIG×2)/X
A[1]=(SIG×G2−1)/X
A[2]=0
B[1]=(SIG−1)/X
B[2]=0
When the gain (dG) is negative (S503: N), the coefficient calculating unit 30 calculates the filter coefficients A[0] to B[2] according to the following equations (S505).
X=1+SIG×G2
A[0]=(1+SIG)/X
A[1]=(SIG−1)/X
A[2]=0
B[1]=(SIG×G2−1)/X
B[2]=0
When the filter type (iType) is 0x01 (S403: 0x01), a coefficient calculating process (S405) to obtain a 1st-order IIR high-shelf filter is executed.
When the gain (dG) is positive (S603: Y), the coefficient calculating unit 30 calculates the filter coefficients A[0] to B[2] according to the following equations (S604).
X=1+SIG
A[0]=(SIG+G2)/X
A[1]=(SIG−G2)/X
A[2]=0
B[1]=(SIG−1)/X
B[2]=0
When the gain (dG) is negative (S603: N), the coefficient calculating unit 30 calculates the filter coefficients A[0] to B[2] according to the following equations (S605).
X=SIG+G2
A[0]=(1+SIG)/X
A[1]=(SIG−1)/X
A[2]=0
B[1]=(SIG−G2)/X
B[2]=0
When the filter type (iTYpe) is 0x02 (S403: 0x02), a coefficient calculating process (S406) to obtain a 2nd-order IIR (secondary IIR) peaking filter is executed.
When the gain (dG) is positive (S703: Y), the coefficient calculating unit 30 calculates the filter coefficients A[0] to B[2] according to the following equations (S704).
X=1+(SIG/dQ)+(SIG×SIG)
A[0]={1+(SIG×G2/dQ)+(SIG×SIG)}/X
A[1]={2×(SIG×SIG−1)}/X
A[2]={1−(SIG×G2/dQ)+(SIG×SIG)}/X
B[1]={2×(SIG×SIG−1)}/X
B[2]={1−(SIG/dQ)+(SIG×SIG)}/X
When the gain (dG) is negative (S703: N), the coefficient calculating unit 30 calculates the filter coefficients A[0] to B[2] according to the following equations (S705).
X=1+(SIG×G2/dQ)+(SIG×SIG)
A[0]={1+(SIG/dQ)+(SIG×SIG)}/X
A[1]={2×(SIG×SIG−1)}/X
A[2]={1−(SIG/dQ)+(SIG×SIG)}/X
B[1]={2×(SIG×SIG−1)}/X
B[2]={1−(SIG×G2/dQ)+(SIG×SIG)}/X
When the filter type (iThpe) is 0x03 (S403: 0x03), a coefficient calculating process (S407) to obtain a 1st-order IIR high-pass filter is executed.
X=1+SIG
A[0]=1/X
A[1]=(−1)/X
A[2]=0
B[1]=(SIG−1)/X
B[2]=0
When the filter type (iType) is 0x04 (S403: 0x04), a coefficient calculating process (S408) to obtain a second IIR high-pass filter is executed.
X=1+(SIG/dQ)+(SIG×SIG)
A[0]=1/X
A[1]=(−2)/X
A[2]=1/X
B[1]={2×(SIG×SIG−1)}/X
B[2]={1−(SIG/dQ)+(SIG×SIG)}/X
When the filter type (iType) is 0x05 (S403: 0x05), a coefficient calculating process (S409) to obtain a 1st-order IIR low-pass filter is executed.
X=1+SIG
A[0]=SIG/X
A[1]=SIG/X
A[2]=0
B[1]=(SIG−1)/X
B[2]=0
When the filter type (iType) is 0x06 (S403: 0x06), a coefficient calculating process (S410) to obtain a 2nd-order IIR low-pass filter is executed.
X=1+(SIG/dQ)+(SIG×SIG)
A[0]=(SIG×SIG)/X
A[1]={(2×(SIG×SIG)}/X
A[2]=(SIG×SIG)/X
B[1]={2×(SIG×SIG−1)}/X
B[2]={1−(SIG/dQ)+(SIG×SIG)}/X
When the filter type (iType) is 0x07 (S403: 0x07), a coefficient calculating process (S411) to obtain a filter that outputs an inputted signal without applying any processing thereto (passes through) is executed.
Description will be given for a normalizing process of filter coefficients.
A[0]=A[0]/iDiv
A[1]=A[1]/iDiv
A[2]=A[2]/iDiv
B[1]=−B[1]/iDiv
B[2]=−B[2]/iDiv
Other Configurations
The filter realized by the DSP 25 is not only limited to an IIR filter but also may be a filter having another configuration such as an FIR filter.
The microcomputer 16 outputs tap number information (Tap), the frequency information (Fc), and the sampling frequency information (Fs) as the controlling data to determine the filter characteristic of the FIR filter, through a system bus etc. to the coefficient calculating unit 30. The tap number information is information to identify the number of taps, that is, the number of stages of the delaying units in the FIR filter.
For example, the coefficient calculating unit 30 calculates filter coefficients h0 to h20 and stores the calculated filter coefficients into the register 41 to obtain a low-pass filter having a characteristic indicated by the controlling data based on the FIR filter. For example, when the tap number is 20, the cut-off frequency is 3 KHz, and the sampling frequency is 44.1 KHz, the coefficient calculating unit 30 can calculate the filter coefficients h0 to h20 based on fir1 (20, 3,000/(44,100/2)) using a function fir1 of MATLAB (a registered trademark).
As above, an embodiment of the present invention has been described. As described, the signal processing circuit 15 calculates the filter coefficients based on the frequency information inputted from the external microcomputer 16. Therefore, the characteristic frequency of an output signal in the filtering process can be varied with the controlling data having the data amount that is less than that of the filter coefficients used when the filter coefficients themselves are inputted from the microcomputer 16. Thereby, the communication traffic on a system bus etc. can be reduced and the influence on the processing performance of the system can be suppressed. The filter coefficients need not be stored in the microcomputer 16 and, therefore, increase of the memory capacity of the microcomputer 16 can be suppressed.
The signal processing circuit 15 further receives at least any one of the sampling frequency information, the gain information, and the selectivity information from the microcomputer 16 in addition to the frequency information, and can also calculate the filter coefficients based on the frequency information and the received piece(s) of information of the sampling frequency information, the gain information, and the selectivity information. That is, the signal processing circuit 15 can vary the characteristic frequency, the sampling frequency, the gain, and the selectivity of the output signal in the filtering process, with the controlling data having the data amount that is less than that of the filter coefficients.
The signal processing circuit 15 further can calculate the filter coefficients corresponding to the type of the filter by receiving the filter type information. That is, the signal processing circuit 15 can change the type of the filter (such as a high-pass filter and a low-pass filter) with the controlling data having the data amount that is less than that of the filter coefficients.
For example, in the case where the precision of the filter coefficients A[0] to B[2] for a 2nd-order IIR filter is three bytes (24 bits), when the filter coefficients themselves are transmitted from the microcomputer 16 to the signal processing circuit 15, transmitted data is 15 bytes. On the other hand, when the controlling data has a configuration shown in
The signal processing circuit 15 executes the right-shifting process of the filter coefficients such that the filter coefficients A[0] to B[2] each take values within the predetermined range (−1 to 1). Thereby, the filter coefficients can be handled as decimal fractions in the fixed point mode. That is, the shifted filter coefficients can be applied to a circuit that executes calculation of decimal fractions by the fixed point mode calculation.
When the filter coefficients are not values within the predetermined range (−1 to 1) even after shifting the filter coefficients to the right by predetermined bits, the signal processing circuit 15 notifies the microcomputer 16 of the parameter designation error. Though the filter coefficients can be adjusted to include values within the predetermined range by increasing the right-shift amount corresponding to the value of the filter coefficients, the precision thereof is degraded when the shift amount is too large. Therefore, as shown in the embodiment, the shift amount is fixed and, when the filter coefficients after being shifted are not values within the predetermined range (−1 to 1), an error is determined to have occurred. Thereby, the degradation of the precision of the filter coefficients can be suppressed.
The above embodiments of the present invention are simply for facilitating the understanding of the present invention and are not in any way to be construed as limiting the present invention. The present invention may variously be changed or altered without departing from its spirit and encompass equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
2006-192872 | Jul 2006 | JP | national |