Embodiment
Below in conjunction with drawings and Examples, the present invention is done further introduction in detail.
DMT system in the ADSL system comprises the modulation and demodulation both direction, as shown in Figure 1.In modulation direction, the data that needs send are carried out Bit Allocation in Discrete earlier, press on data allocations to 256 channel of transmission performance difference with different bits of channel, data after Bit Allocation in Discrete are being carried out constellation encoder, then to its adjustment that gains, again signal is modulated on 256 channels through I-DFT, sends through after adding processing such as Cyclic Prefix, slicing again; In the demodulation direction, signal that will receive removes Cyclic Prefix through behind the time domain equalization, the signal of 256 channels is handled demodulation through F-DFT come out, again to its demodulation of carrying out frequency domain equalization, constellation decoder, joining etc. the DMT that finishes dealing with than particular solution.From said process as can be seen, demodulation is the inverse process of modulation.
Fig. 2 and Fig. 3 are the structural representations of United States Patent (USP), introduce in detail in front, and as can be seen, this patent has adopted the mode of parallel processing to finish the processing procedure of IFFT (FFT), need more hardware resource.
Fig. 4 is the schematic diagram of the present invention in the DMT system, depositing gain successively in through the adjusted frequency domain data X of gain (k) adjusts among the RAM, after the data of 256 channels are all finished the gain adjustment, read X (k) successively, X (N-k) carries out 512 I-DFT computings, wherein N=512/2=256 represents the number of channel.Calculate resulting time-domain signal and export to and add buffer memory among the Cyclic Prefix RAM, finish the data-modulated of 256 channels.Modulation signal transmits through transmission channel.At receiver side, go a frame time domain data behind the Cyclic Prefix to be ready to after, the time domain data of reading successively among the Cyclic Prefix RAM carries out the F-DFT computing, last resulting frequency-region signal exports among the frequency domain equalization RAM, finishes the data demodulates of 256 channels.
Fig. 5 is the structure chart of discrete Fourier transform equipment of the present invention, comprises dual port RAM 12, twiddle factor module 14, time-sequence control module 10, read/write address generation module 11 and butterfly operation module 13.Because each butterfly computation of each grade all is applicable to this rule of location computing, so only need adopt 1 dual port RAM 12 just can finish read-write to the butterfly computation intermediate data.Twiddle factor module 14 is required twiddle factor W in the storage butterfly computation
2N ± k, under the control of read/write address generation module 11, export to butterfly operation module 13.Time-sequence control module 10 starts read/write address generation module 11 and begins to carry out reading and writing data behind the DSR of prime input dual port RAM A, also controls the work schedule of each module simultaneously.Read/write address generation module 11 is subjected to the control of time-sequence control module 10, reads corresponding twiddle factor in the data of different addresses among the different RAM and the twiddle factor module 14 constantly in difference, and the butterfly computation result is write among the corresponding RAM.Butterfly operation module 13 carries out butterfly computation according to data and twiddle factor.Read/write address generation module 11 also links to each other with dual port RAM C with the dual port RAM A of outside with butterfly operation module 13.
Dual port RAM A is the buffer memory of prime input data, is that RAM is adjusted in gain among Fig. 4 at modulation direction dual port RAM A, is to remove Cyclic Prefix RAM among Fig. 4 at demodulation direction dual port RAM A.Dual port RAM C is the storage DFT computing operation result of one-level to the end, is to add Cyclic Prefix RAM among Fig. 4 at modulation direction dual port RAM C, is frequency domain equalization RAM among Fig. 4 at demodulation direction dual port RAM C.
Because demodulation is the inverse process of modulation, so conciliating the F-DFT that calls, the I-DFT of modulation usefulness can adopt above-mentioned identical structure shown in Figure 5, just different on the flow process of handling.To specifically introduce the processing procedure of I-DFT and F-DFT below.
Require according to the processing sequential to 2N point DFT in the ADSL system: the DFT usable frequency is 35.328MHZ in the ADSL system, and maximum 512 DFT should finish in 68/69*250us.If adopt the FFT mode of 2N point DIF or DIT, then need through Nlog
2 2NInferior dish-shaped computing, 512 FFT computings just need 2304 times butterfly computation so.
The present invention adopts the hermitian symmetry algorithm according to the time-frequency domain data characteristics of system, can make operand reduce one times.The formula of hermitian symmetry algorithm is seen formula (1).
Wherein, x
c(n) be the time domain data sequence, its real part is continuously the even sequence x (2n) of the time domain data of input, and imaginary part is continuously the odd sequence x (2n+1) of the time domain data of input, wherein n=0,1,2,3...N-1; X (k) is the frequency domain data sequence, wherein k=0,1,2,3...N-1; N represents the total channel number modulated to equal 256; X
*Expression conjugation data; W
2N -kAnd W
N -nkIt is twiddle factor.
Can be when modulation direction be carried out the I-DFT processing by formula (1), X (k) converts X ' operational formula (2) and (3) (k) to:
In modulation direction, I-DFT handles and comprises two steps, preliminary treatment and IFFT butterfly computation, promptly earlier frequency domain data is carried out preliminary treatment, with X (k), X (N-k) carry out 128 butterfly computations obtain X ' (k), X ' (N-k), again it is carried out 8 grades of (128*8 time) butterfly computations of 256 IFFT, can obtain time-domain signal, finish 512 I-DFT like this and only need carry out 1152 times butterfly computation, finishing 512 I-DFT only needs 65us, well below the sequential requirement of ADSL system.
Fig. 6 promptly is the process chart of I-DFT device among Fig. 4, needs altogether through 9 grades of computings, i.e. stage=1,2,3,4,5,6,7,8,9.The 1st grade of (stage=1) computing is that 256 the data X (k) with frequency domain finish X (k) to X ' conversion (k) through preliminary treatment, i.e. 128 butterfly computations of perfect (2) and formula (3) successively; (stage=2~9) are eight grades of computings of 256 IFFT from the 2nd grade to the 9th grade, obtain data X after finishing the preliminary treatment that X (k) (k) changes to X '
1(m), enter the first order of IFFT computing, through obtaining X behind 128 butterfly computations
2(m), enter the second level of IFFT, enter the third level, the fourth stage successively, obtain time domain data X (n), so just finished the modulation of 256 channels until the 8th grade.
Equally, can obtain the demodulation direction by formula (1) and carry out F-DFT when handling, the operational formula that X ' (k) converts X (k) to is seen formula (4) and formula (5):
Like this, in the demodulation direction, F-DFT handles and also comprises two steps, FFT butterfly computation and reprocessing, promptly 8 grades of (128*8 time) butterfly computations that earlier time domain data carried out 256 FFT obtain X (k), X ' (N-k), according to formula (4) and formula (5) it are carried out reprocessing again and obtain X (k), X (N-k), and finishing 512 F-DFT so only needs 1152 dish-shaped computings, finishing 512 F-DFT equally only needs 65us, satisfies the sequential requirement of ADSL system.
Fig. 7 is the process chart of F-DFT device among Fig. 4, also need altogether through 9 grades of computings, be stage=1,2,3,4,5,6,7,8,9, at first the eight grades of computings (stage=1~8) through 256 FFT convert time domain data X (n) to X ' (k), i.e. x among the figure
8(m), carry out 128 butterfly computations of reprocessing perfect (4) and formula (5) then, (k) convert 256 data X ' to frequency domain data X (k), thereby finished the signal demodulation of 256 channels.
Fig. 8 is the schematic diagram of butterfly computation rule in the explanation preprocessing process.Preprocessing process is the computing of perfect (2) and formula (3), since X ' (k) and X ' value (N-k) be butterfly processing element computing gained of X (k) and X (N-k) composition, so during N=256, have X (0) and X (256), X (1) and X (255), X (2) and Z (254) ..., Z (128) and Z (128) totally 129 butterfly computations, wherein X (0) and X (256) are zero-frequency subchannel and nyquist frequency subchannel, its data and result all are 0, do not carry out butterfly computation, therefore only need 128 butterfly computations get final product the value of X ' (1)~X ' (255).
Identical in butterfly computation rule in the last handling process and the preprocessing process, just direction is opposite, and promptly the arrow among Fig. 8 is reverse.And reprocessing is the computing of perfect (4) and formula (5), (k) obtain X (k) from X ', in like manner each X ' (k) and X ' (N-k) form butterfly processing element, obtain the value of X (k) and X (N-k), X ' (0) and X ' (256), X ' (1) and X ' (255), X ' (2) and X ' (254) ..., up to X ' (128) and X ' (128) totally 129 butterfly computations, wherein the result of X ' (0) and X ' (256) does 0 processing, therefore also only needs 128 butterfly computations can obtain the value of X (0)~X (255).
Fig. 9 is to be 256 butterfly computation rules that IFFT is at different levels of example explanation with 16 IFFT.For N=2
MPoint IFFT (FFT), need altogether through M level butterfly computation, and each level has N/2 butterfly processing element, and the component law of butterfly processing element at different levels is: the inverted sequence sense data is carried out first order butterfly computation, wherein inverted sequence is meant data sequence number k=[a: b] convert k to
Instead=[b: a], k=0,1,2 ..., 127, with pretreated butterfly computation each time as a result inverted sequence write in the appropriate address of dual port RAM 12, each X ' is (2k)
Instead) and X ' ((2k+1)
Instead) promptly form a butterfly processing element, the operation result of gained is x
1(2k) and x
1Value (2k+1), promptly pass through X (0) and X (128), X (64) and X (192) ..., X (127) and X (255) totally 128 butterfly computations, and the result of each butterfly computation deposits in the appropriate address of dual port RAM 12 respectively in order; Also there are 128 butterfly processing elements the second level, is divided into 64 groups, and every group has two butterfly processing element: x
1(4k) and x
1(4k+2) and x
1(4k+1) and x
1(4k+3), wherein k=0,7,2 ..., 63, obtain the x as a result of butterfly computation respectively
2(4k) and x
2(4k+2) and x
2(4k+1) and x
2(4k+3), the result of each butterfly computation deposits in the appropriate address of dual port RAM 12 respectively in order; The third level also has 128 butterfly processing elements, is divided into 32 groups, and every group has 4 butterfly processing element: x
2(16k) and x
2(16k+4), x
2(16k+1) and x
2(16k+5), x
2(16k+2) and x
2(16k+6), x
2(16k+3) and x
2(16k+7), wherein k=0,7,2 ..., 31, obtain the x as a result of butterfly computation respectively
3(16k) and x
3(16k+4), x
3(16k+1) and x
3(16k+5), x
3(16k+2) and x
3(16k+6), x
3(16k+3) and x
3(16k+7), the result of each butterfly computation deposits in the appropriate address of dual port RAM 12 respectively in order; And the like, have only 1 group of 128 butterfly processing elements, i.e. x up to the 8th grade of 128 butterfly processing elements
8(k) and x
8(k+128), wherein k=0,1,2 ..., 127, obtain the time domain data x behind the butterfly computation respectively
c(n) and x
c(n+128), n=k wherein deposits the result of butterfly computation in the appropriate address that adds Cyclic Prefix RAM respectively in order.
256 FFT butterfly computation rule at different levels and 256 IFFT butterfly computation rule at different levels is identical, just because F-DFT is different with the handling process of I-DFT, and causes the first order read data of FFT and last the 8th grade of write data different.The first order computing of FFT is an inverted sequence sense data from remove Cyclic Prefix RAM, each x
c((2n)
Instead) and x
c((2n+1)
Instead) form a butterfly processing element, the gained operation result is x
1(2k) and x
1Value (2k+1) is promptly passed through x
c(0) and x
c(128), x
c(64) and x
c(192) ..., x
c(127) and x
c(255) totally 128 butterfly computations; The 8th grade of computing of FFT is that the result is deposited in the dual port RAM 12, and butterfly computation is x as a result
8(k) and x
8(k+128) (wherein k=0,1,2 ..., 127) promptly be data X ' (k) and X ' (k+128), the result of each butterfly computation is deposited in respectively in the appropriate address of dual port RAM 12, treat the reprocessing of next stage.Other computings at different levels are all identical with the IFFT computing.
Figure 10 has provided the structure chart of butterfly operation module 13, comprise selector 301, selector 302 and butterfly processing element 300, the data that selector 301 receives from dual port RAM A or dual port RAM 12, and export to butterfly processing element 300, twiddle factor in the twiddle factor module 14 is also delivered to butterfly processing element 300 and is calculated, and result of calculation is exported to dual port RAM C or dual port RAM 12 through selector 302.When beginning the first order (stage=1) computing of I-DFT or F-DFT, reading of data from dual port RAM A (gain is adjusted RAM or removed Cyclic Prefix RAM), other (stage=2~9) at different levels computing is reading of data from dual port RAM 12 then, through alternative selector 301 output X
l(m1) mouthful X
l(m2), X wherein
l(m1) mouthful X
l(m2) be the data of representing the l level, obtain l+1 level operation result X through the computing of butterfly processing element 300
L+1(m1) and X
L+1(m2), its result deposits data among dual port RAM 12 or the dual port RAM C in through an alternative selector 302 again, wherein the operation results at different levels of progression stage<9 o'clock deposit in the dual port RAM 12, the operation result of progression stage=9 deposits among the dual port RAM C (adding Cyclic Prefix RAM or frequency domain equalization RAM), wherein m1 and m2 be meant each grade butterfly processing element two the input data sequence number.
Figure 11 is the structure chart of butterfly processing element 300 among Figure 10, and butterfly processing element 300 comprises 3006,3009 and 1 complex multipliers 3002 of 3007,3008,2 subtracters of 3003,3004,3005,2 adders of 3001,3 selectors of 1 conjugator.Two data X of selector 301 outputs
l(m1) and X
l(m2), X wherein
l(m1) enter adder 3007 and subtracter 3009 respectively; X
l(m2) data and the X that exports through conjugator 3001 backs
l(m2) enter selector 3003, when stage=1, selector 3003 output X
l(m2) conjugation data, when stage>1, selector 3003 output X
l(m2).Data X
l(m1) and the dateout of selector 3003 simultaneously in adder 3007 and subtracter 3009, carry out plural plus and minus calculation, the difference of subtracter 3009 outputs multiplies each other in complex multiplier 3002 with corresponding twiddle factor, the multiplication of complex numbers of gained is carried out plural plus and minus calculation respectively with the output of adder 3007 again in adder 3008 and subtracter 3006, gained and deliver in the selector 3004 with the result of adder 3007 again, the result of the difference of gained and complex multiplier 3002 delivers in the selector 3005, when stage=1, selector 3005 output X
L+1(m1) equal the result of adder 3008, selector 3005 output X
L+1(m2) equal the result of subtracter 3006; When stage>1, selector 3004 output X
L+1(m1) equal the result of adder 3007, selector 3005 output X
L+1(m2) equal the result of complex multiplier 3002.