the present invention is described with reference to the attached figures , wherein like reference numerals are used throughout the figures to designate similar or equivalent elements . the figures are not drawn to scale and they are provided merely to illustrate the instant invention . several aspects of the invention are described below with reference to example applications for illustration . it should be understood that numerous specific details , relationships , and methods are set forth to provide a full understanding of the invention . one having ordinary skill in the relevant art , however , will readily recognize that the invention can be practiced without one or more of the specific details or with other methods . in other instances , well - known structures or operations are not shown in detail to avoid obscuring the invention . the present invention is not limited by the illustrated ordering of acts or events , as some acts may occur in different orders and / or concurrently with other acts or events . furthermore , not all illustrated acts or events are required to implement a methodology in accordance with the present invention . referring now to fig1 , there is provided a block diagram of a communication system in accordance with an embodiment of the present invention . as shown in fig1 , the communication system 100 includes a transmitter 200 and a receiver 300 that communicate with one another via a communication channel 110 . although not illustrated in fig1 , typically the communication system 100 will be bi - directional , i . e ., each device connected to the communication system 100 will include both a transmitter and a receiver . the communication channel 110 is a wired or wireless medium that allows a signal transmitted by the transmitter 200 to propagate to , and be received by , the receiver 300 . the communication channel 110 may include both wireless and wired components . additionally , the communications channel can include active components , such as repeaters , hubs , and gateway devices . although described herein in the context of a wireless transmission from a transmitter to a receiver , it should be appreciated that the systems and methods described herein are also applicable to other types of communications systems . referring now to fig2 , a simplified high level block diagram of an ofdm transmitter in accordance with an embodiment of the present invention is provided . the transmitter 200 includes a data generation block 210 , a scrambler block 220 connected to the output of the data generation block 210 , a coder block 230 connected to the output of the scrambler block 220 , an interleaver block 240 connected to the output of the coder block 230 , a modulator block 250 connected to the output of the interleaver block 240 , a cyclic prefix block 255 connected to the output of the modulator block 250 , a subcarrier mapping block 260 connected to the output of the cyclic prefix block 255 , an orthogonal spreader block 270 connected to the output of the subcarrier mapping block 260 , an ifft block 280 connected to the output of the orthogonal spreader block 270 , a shaping filter block 285 connected to the output of the ifft block 280 , an rf modulator block 290 connected to the output of the shaping filter block 285 , and a transmit antenna 295 connected to the output of the rf modulator block 290 . although described as illustrated in fig2 , there are many different possible methods of implementing the ofdm transmitter 200 . for example , the order in which the functions provided for by the different illustrated blocks may be modified . additionally , not all of the functions provided by the described block are required . although fig2 illustrates only a single transmit antenna 295 , as is well known in the art , multiple transmit antennas may be used to provide for diversity transmission and / or beam - forming . the data to be transmitted is first generated in the data generation block 210 . the data may be provided by a user , generated by the transmitter 200 itself , or provided to the transmitter 200 by another device . the data is then provided to the scrambler block 220 . the scrambler block 220 replaces sequences of data with other data to reduce the probability that the output of the scrambler block 220 will contain repetitive data , such as all zeros or all ones . the scrambled data is then provided to a coder block 230 , which performs forward error correction ( fec ) coding and possibly puncturing . generally , redundant data is added in the coder block 230 such that a receiver may be able to detect and correct errors without the need for the transmitter 200 to resend the data . the coded data is then provided to the interleaver 240 , which interleaves the data to make the data more robust with respect to bursts of errors , i . e ., errors that occur closely with respect to time . the data is then mapped into symbols by the modulator block 250 . for example , the modulator block 250 may map the data according to quadrature amplitude modulation ( qam ) or quadrature phase shift keying ( qpsk ). thus , the output of the modulator block 250 may be a series of in - phase ( i ) and quadrature ( q ) values . each pair of i and q values represents a particular modulation symbol . in some embodiments , each pair of i and q values may be represented by a single complex number . thus , the output of the modulator may be a series of complex numbers representing modulation symbols . the modulation symbols are then provided to the subcarrier mapping block 260 . the subcarrier mapping block 260 takes as its input the modulation symbols produced by the modulator block 250 . the symbols are mapped to n subcarriers , for example , 64 subcarriers . each subcarrier has a symbol rate equal to the input symbol rate divided by n . thus , the data is split into multiple streams , each stream having a relatively low data rate . the values associated with each of the n subcarriers , i . e ., the subcarrier values , are then provided to the orthogonal spreader block 270 . the orthogonal spreader block 270 may perform a walsh transform on the input subcarrier values . walsh transforms are typically used in communications systems such as cdma for time - domain spreading and for creating orthogonal codes for multiple access schemes . the walsh transform can be used in the system , apparatus , and method of the present invention to spread subcarriers over the frequency domain . this can provide a significant reduction in the average power ( dbm / hz / sec ) allowing more transmit power within the same fcc spectral mask and reducing the effect of frequency selective fading by providing frequency - domain processing gain . spreading the subcarriers over the frequency domain also lessens the effects of spectrum nulls that might be caused by multipath or by a preceding removal of narrowband interference . because each subcarrier is spread over the frequency domain , the system is also less susceptible to interference from narrow band interferers . applying a walsh transform can lessen the effects of narrow band interference because each subcarrier is spread over the frequency domain such that a narrow band interferer or a notch in the frequency response of the communication channel 110 will not completely interfere with the information transmitted on a given subcarrier . additionally , if there are fewer subcarriers as compared to the ifft size and the spreading code length , more processing gain may be realized from frequency domain spreading . by adjusting the size of the ifft and spreading code length relative to the number of subcarriers , a trade - off can be made with respect to the number of carriers , the data rate , and the transmit power for the same fcc spectral mask . the orthogonal spreading block 270 may perform a matrix operation on the input subcarrier values . matrix operations are well known to persons skilled in the art , and therefore will not be described herein . however , it should be understood that any such matrix operation can be used without limitations . for example , a walsh matrix based operation can be performed by orthogonal spreading block 270 . the output of the orthogonal spreading block 270 , which is in the spread frequency domain , is provided to the ifft block 280 . in the ifft block 280 , the spread output of the orthogonal spreading block 270 , which is in the frequency domain , is converted to the time domain . a cyclic extension as a guard interval may also be added . the symbol outputs of the ifft block 280 are provided to the cyclic prefix block 283 . the cyclic prefix block 283 performs prefixing of each symbol output with a repetition of the its end . the prefixed symbols are then provided to the shaping filter block 285 . at the shaping filter block 285 , the prefixed symbols are processed to limit the effective bandwidth of the information to be transmitted . the rf modulator block 290 modulates the output of the shaping filter onto an analog rf carrier signal , which is transmitted via the transmit antenna 295 to the receiver 300 . referring now to fig3 , a simplified high level block diagram of a receiver in accordance with an embodiment of the present invention is provided . the receiver includes a receive antenna 305 that receives the ofdm signal sent by the transmitter 200 via the communication channel 110 . the ofdm signal , which is an rf carrier signal having information modulated onto the signal , is provided to the rf demodulator block 310 . the rf demodulator block 310 demodulates the information provided on the analog rf carrier and outputs digital baseband data samples representing the modulated data . the baseband data sample may be in the form of a stream of pairs of i and q data values . each pair of i and q values may be represented by a single complex number . the output of the rf demodulator block 310 contains the information that was modulated onto the rf carrier by the transmitter 200 . however , generally , the output of the modulator will also include interferers such as wideband noise and other narrowband interferers . additionally , due to the effects of the propagation of the rf signal from the transmitter 200 to the receiver 300 , the output of the rf modulator block 310 may not exactly match the information that was modulated onto the rf carrier by the transmitter 200 . for example , due to multipath fading , the received rf signal will be attenuated differently at different frequencies , i . e ., the frequency response will not be flat . additionally , received signal will have an rf phase offset associated with it . additionally , the frequency response may vary with time . the output of the rf demodulator block 310 may be provided to an interference rejection block 312 . the interference rejection block 312 detects narrowband interferers included in the output of the rf demodulator block and performs a filtering operation to remove or attenuate the detected interferers . for example , the interference rejection block 312 may implement a fast fourier transform ( fft ) to detect an interferer in the frequency domain and implement an adjustable finite impulse response ( fir ) or iir notch filter to selectively attenuate the interferer . the fft block 315 is generally configured to perform frequency modulation . the frequency modulation can be achieved by applying an fft to the output of interference rejection block 312 . notably , the fft applied by the ftt block 315 is performed at a lower resolution than the fft performed at block 312 . in this regard , it should be understood that the frequency separation performed at block 315 is performed at the ofdm symbol separation . in a conventional ofdm receiver , the output of the fft block 315 would correspond to subcarrier values encoded on the n subcarriers . however , in the system according to an embodiment of the present invention , the output of the fft block 315 is in the spread frequency domain , i . e ., the output corresponds to a frequency spread version of the subcarrier values encoded on the n subcarriers . the size of the fft operation performed in the fft block 315 , i . e ., the number of points , should generally match the size of the ifft performed in the transmitter 200 . the size of the ifft and the fft operations need not be equal to the number of subcarrier values . for example , if there are fewer subcarrier values as compared to the length of the spreading codes and the ifft and fft sizes , additional processing gain may be realized from frequency domain spreading . blocks 320 , 325 , 330 , 335 , and 340 collectively form a decision feedback equalizer . the decision feedback equalizer uses previous decisions made by the receiver 300 to equalize the information received at the receiver . for each sample , the output of the fft 315 is a series of values having a length m equal to the size of the fft , which represents the demodulated information in the un - equalized spread frequency domain . in the multiplier block 320 , each of the m values is multiplied by a respective value produced by the channel equalizer block 340 to thereby perform the channel equalization . if the outputs of the fft block 315 and the channel equalizer block 340 are each represented as vectors of length m , then the multiplier block 320 performs an element by element multiplication on the two vectors . for example , if the output of the fft block 315 is a vector equal to [ a b c ] and the output of the channel equalizer block 320 is a vector equal to [ d e f ] then the output of the multiplier block 320 would be a vector equal to [ a * d b * e c * f ]. for each sample , the output of the multiplier block 320 is a vector of length m in the equalized spread frequency domain . the equalized output of the multiplier 320 is provided to the orthogonal de - spreader 325 . the orthogonal de - spreader 325 de - spreads the input vector using the same orthogonal codes that were used in the transmitter 200 to spread the subcarriers . thus , the output of the orthogonal de - spreader 325 corresponds to the subcarrier values encoded on the n subcarriers by the transmitter 200 . the output of the orthogonal de - spreader block 325 , which is in the de - spread domain , is provided to the decision slicer block 330 . the decision slicer block 330 may include a hard slicer . alternatively , a soft slicer may be used . if the decision slicer block 330 includes a hard slicer , the decision slicer block 330 makes a decision as to what subcarrier value each sample of the input data corresponds to . if a soft slicer is used , the output of the decision slicer block 330 represents statistical expected values of the subcarrier values . in the following description , a hard slicer is assumed . as an example of the operation of the decision slicer block 330 , if 64 subcarriers were used in the transmitter to encode the data , for each sample or group of samples , the decision slicer will make 64 decisions with respect to what subcarrier value each sample or group of samples corresponds to . because noise and other interference is generally added to the rf signal as it propagates from the transmitter 200 to the receiver 300 , the number of bits used to represent the data up to the decision slicer block 330 will typically be larger than the number of bits actually required to represent a particular subcarrier value . for example , if the data was originally modulated using 16 qam modulation , a total of 4 bits ( 2 for the in - phase ( i ) component and 2 for the quadrature ( q ) component ) would be required to encode each subcarrier value . however , up to the decision slicer block 330 , more bits may be used to represent the received information . additionally , the sample rates used in the rf demodulator block 310 to convert the information demodulated from the received rf carrier signal from analog to digital form and in the fft block 315 to convert the information to the frequency domain may be selected such that the sample rate at the output of the fft block 315 is greater than the final ofdm symbol rate . thus , based on the higher resolution both with respect to time and amplitude , the decision slicer makes a decision with respect to what subcarrier value each sample or group of samples corresponds to . the output of the decision slicer block 330 corresponds to the subcarrier values encoded on the n subcarriers by the transmitter 200 at the ofdm symbol rate . the output of the decision slicer block 330 is provided to the subcarrier de - mapping block 342 and subsequently to the demodulator 345 , de - interleaver 350 , decoder 355 , and descrambler 360 blocks , which perform the inverse function of the previously described subcarrier mapping block 260 , modulator block 250 , interleaver block 240 , coder block 230 , and scrambler block 220 , respectively . the data output block 365 represents the output of the receiver 300 . the data output block 365 provides the received data to the device that contains the receiver 300 , to a separate device via a network connection to be further processed , or to a user . the output of the decision slicer block 330 is also provided to the orthogonal spreader block 335 . the orthogonal spreader block 335 spreads the output of the decision slicer block 330 in the frequency domain using the same orthogonal spreading codes used by the orthogonal spreader block 270 in the transmitter . thus , assuming the decision slicer block 330 made a correct decision , the output of the orthogonal spreader block 335 represents the expected received signal in the spread frequency domain , i . e ., the signal that would have been received by the receiver 300 if the transmission channel 110 had been perfectly equalized and there where no noise or interference present . the channel equalizer block 340 operates in the spread frequency domain to equalize the channel by comparing the output of the multiplier 320 in the equalized spread frequency domain with the expected received signal in the spread frequency domain . based on the comparison , the channel equalizer block 340 provides a series of values to the multiplier block 315 to be used to multiply the output of the fft block 315 to thereby equalize the channel by adjusting the phase and amplitude of the signal in the spread frequency domain . if the output of the fft block 315 and the channel equalizer block 340 are each represented as vectors of length m then the multiplier block 320 performs an element by element multiplication operation on the two vectors . there are many possible implementations of the channel equalizer block 340 . for example , the channel equalizer block 340 may implement an adaptive filter algorithm such as the least - mean - square ( lms ) algorithm or the normalized lms algorithm to perform the equalization function . alternatively , other known decision feedback equalization techniques may be used . referring now to fig4 , a high level block diagram of the decision feedback equalizer portion of an embodiment of an ofdm receiver 300 that employs the least - mean - square ( lms ) algorithm is illustrated . the equalizer block 340 employs a double equalization tracking loop . an inner loop employs the lms algorithm to track general channel variation over the frequency spread subcarriers . additionally , an outer phase locked loop ( pll ) is employed to track and compensate for a universal phase offset . additionally , the equalizer block 340 contains a weighting function . in an embodiment of the present invention , the inner loop employs the lms algorithm to track general channel variation over the frequency spread subcarriers and to compensate for the variation . specifically , the equalizer block uses a first order lms filter to provide equalization in the spread frequency domain . the lms algorithm can be summarized as follows for a first order filter , i . e ., a filter having a single tap : filter output : y ( n )= w *( n ) u ( n ) error estimate : e ( n )= d ( n )− y ( n ) next filter tap weight : w ( n + 1 )= w ( n )+ μu ( n ) e *( n ) where x * is the complex conjugate of x ; u ( n ) is the complex filter input for sample n ; w ( n ) is the complex current tap weight for sample n ; d ( n ) is the complex estimated expected filter output for sample n ; and μ is a real scaling value that controls the rate of adaptation of the filter . the complex conjugate of the next tap weight can be calculated as follows : w * ⁡ ( n + 1 ) = ⁢ ( w ⁡ ( n ) + μ ⁢ ⁢ u ⁡ ( n ) ⁢ e * ⁡ ( n ) ) * = ⁢ w * ⁡ ( n ) + ( μ ⁢ ⁢ n ⁡ ( n ) ⁢ e * ⁡ ( n ) ) * = ⁢ w * ⁡ ( n ) + μ * ⁢ u * ⁡ ( n ) ⁢ e ⁡ ( n ) in the lms algorithm , the correction applied to the filter tap weight , i . e ., μu *( n ) e ( n ), is proportional to the filter input u ( n ). thus , when u ( n ) is large the algorithm may experience a gradient noise amplification problem . to account for this , the real scaling value u can be redefined to depend upon the magnitude of the input u ( n ) such that : where μ ′ is a real scaling value that controls the rate of adaptation of the filter ; ( n ) is a time domain subscript ; u ( n ) is a vector in the frequency domain ; and | u ( n )| is a vector norm of the vector u ( n ) or the absolute value of a complex frequency component for sample n . referring again to fig4 , the receive antenna 305 receives the ofdm signal sent by the transmitter 200 via the communication channel 110 . the rf demodulator block 310 demodulates the information provided on the received analog rf carrier signal and outputs digital baseband data samples representing the modulated data . the output of the rf demodulator block 310 may be provided to the interference rejection block 312 . the interference rejection block 312 detects narrowband interferers included in the output of the rf demodulator block and filters the input data to remove or attenuate the detected interferers . for example , the interference rejection block 312 may implement a fast fourier transform ( fft ) to detect an interferer and implement an adjustable finite impulse response ( fir ) or iir notch filter to attenuate the interferer . a fast fourier transform ( fft ) is applied to the output of the interference rejection block 312 in the fft block 315 . for each sample , the output of the fft block 315 is a vector of length m representing the subcarriers in the spread frequency domain . if the received signal was encoded with n subcarriers , in a conventional ofdm receiver , the output of the fft block 315 would correspond to subcarrier values encoded on the n subcarriers . however , in the system according to an embodiment of the present invention , the output of the fft block 315 is in the spread frequency domain , i . e ., the output corresponds to a frequency spread version of the subcarrier values encoded on the n subcarriers . depending on the length of the spreading code used to spread the data in the transmitter 200 and the size of the ifft operation in the transmitter 200 , the length m of the vector representing the spread subcarriers may be larger than the number of subcarriers n . the multiplier block 410 is part of the outer phase tracking loop . at the multiplier block 410 , each of the m values in the vector that is output by the fft block 315 is multiplied by the same complex value having a unity gain and a particular phase . each of the m values in the vector is thereby adjusted by the same phase offset . the blocks that make up the inner loop of the channel equalizer block 340 effectively perform the lms algorithms in parallel m times to thereby equalize the channel in the spread frequency domain . as noted above , if | u ( n )| is a vector norm of the vector u ( n )), then the normalization is the same for all frequencies . if | u ( n )| is the absolute value of a complex frequency component for sample n , then the normalization is different for every frequency . the output of the multiplier 410 is provided to the input of the multiplier 320 . each of the m outputs of the multiplier 410 corresponds to one of the m inputs u ( n ) of the m parallel implementations of the lms algorithm described above . in the multiplier block 320 , an element by element multiplication operation is performed on the vector of m values provided by the multiplier 410 and a vector of length m output by the first order inner loop filter 465 . each of the values in the vector output by the inner loop filter 465 corresponds to the complex conjugate of the tap weight , i . e ., w *( n ), of the lms algorithm . the output of the multiplier 320 is a vector of length m . each of the m values corresponds to the filter output y ( n ) of the lms algorithm . the result of an element by element multiplication of the output of the multiplier 320 and a weighting vector of length m is provided to the orthogonal de - spreader 325 . the orthogonal de - spreader 325 de - spreads the input vector using the same orthogonal codes that were used in the transmitter 200 to spread the n subcarriers in the frequency domain . thus , the output of the orthogonal de - spreader 325 corresponds to the subcarrier values encoded on the n subcarriers by the transmitter 200 . the output of the orthogonal de - spreader block 325 , which is in the de - spread frequency domain , is provided to the decision slicer block 330 . the decision slicer block 330 makes a decision as to what value each sample of the input data corresponds to . for each sample , the output of the decision slicer block 330 is a vector of length n corresponding to the subcarrier values encoded on the n subcarriers by the transmitter 200 at the ofdm symbol rate . the output of the decision slicer block 330 is provided to the subcarrier de - mapping block 342 and subsequently to the demodulator 345 , de - interleaver 350 , decoder 355 , and descrambler 360 blocks , which perform the inverse function of the previously described subcarrier mapping block 260 , modulator block 250 , interleaver block 240 , coder block 230 , and scrambler block 220 , respectively . the data output block 365 represents the output of the receiver 300 . the data output block 365 provides the received data to the device that contains the receiver 300 , to a separate device via a network connection to be further processed , or to a user . the output of the decision slicer block 330 is also provided to the orthogonal spreader block 335 . the orthogonal spreader block 335 spreads the output of the decision slicer block 330 in the frequency domain using the same orthogonal spreading codes used by the orthogonal spreader block 270 in the transmitter . thus , assuming the decision slicer block 330 made a correct decision , the output of the orthogonal spreader block 335 represents the expected received signal in the spread frequency domain , i . e ., the signal that would have been received by the receiver 300 if the transmission channel 110 had been perfectly equalized and there where no noise or interference present . thus , each of the m values in the vector output by the orthogonal spreader 335 corresponds to the estimated expected value d ( n ) in the lms algorithm . the vector output by the multiplier 320 is subtracted from the vector of expected values in the subtractor block 425 to produce an output vector of length m . each of the values included in the vector output by the subtractor 425 corresponds to the error estimate e ( n ) of the lms algorithm , where e ( n )= d ( n )− y ( n ). the complex conjugate block 430 takes as an input the vector corresponding to the input to the filter u ( n ) of the lms algorithm and produces the complex conjugate of each of the vector elements . multiplier block 435 outputs the element by element multiplication of the vector corresponding to the error estimate e ( n ), which is output by the subtractor block 425 , and the output of the complex conjugate block 430 . each of the values included in the vector output by the multiplier block 435 corresponds to u *( n ) e ( n ) of the lms algorithm . the normalization block 455 takes as an input the output of the multiplier block 410 , which is a vector of m values , each of the m values corresponding to the input to the filter u ( n ) of the lms algorithm . the normalization block 455 produces as an output a vector of length m of real values that control the rate of adaptation of the m parallel filters . each of the m values in the scaling vector is normalized by | u ( n )|. as noted above , if | u ( n )| is a vector norm of the vector u ( n ), then the normalization is the same for all frequencies . if | u ( n )| is the absolute value of a complex frequency component for sample n , then the normalization is different for every frequency . the output of the multiplier block 450 is the element by element multiplication of the output of the multiplier block 435 and the output of the normalization block 455 . the output of the multiplier block 450 corresponds to the normalized correction factor of the lms algorithm , i . e ., μ ′ u *( n ) e ( n )/(| u ( n )|) and is provided to the inner loop filter block 465 . the inner loop filter block 465 may be a first order infinite impulse response ( iir ) filter that updates the complex conjugate of the tap weight w *( n + 1 ) for the next iteration of the lms algorithm , i . e ., for the next sample . the output of the inner loop filter 465 is a vector of m values , each of the m values corresponding to w *( n + 1 ) of the lms algorithm where : w *( n + 1 )= w *( n )+ μ ′ u *( n ) e ( n )/(| u ( n )|) the output of the inner loop filter 465 is used to equalize the next sample of demodulated information . thus , information demodulated by the receiver is equalized according to the error associated with previously received information . the inner loop filter block 465 also includes an input for initialization of the inner loop filter 465 . the initial channel synchronization block 495 produces and output that resets the inner loop filter block 465 to default values based on the output of the rf demodulator 310 . the channel equalizer block 340 may also include an outer phase locked loop ( pll ) to track and correct for a composite phase error for all of the frequency spread subcarriers . the pll operates by comparing the sum of the phase errors associated with the frequency spread subcarriers and adjusting the phase of all of the frequency spread subcarriers according to the average phase error . complex conjugate block 440 takes as its input a vector of m values that represents the estimated expected value d ( n ) of the frequency spread subcarriers and produces the complex conjugate of each of the values . multiplier block 445 produces the element by element multiplication of the output of the complex conjugate block 440 and the output of multiplier block 320 , which is a vector of m values in the equalized spread frequency domain . the output of the multiplier block 445 is a vector of m values representing the phase error in each of the m discrete frequencies in the spread frequency domain . in block 470 , the output of the multiplier block 445 , which represents the phase error in each of the m spread subcarriers , is multiplied by a weighting vector . in block 475 , the m values that represent the phase errors associated with the frequency spread subcarriers are summed together to produce an average phase offset . by summing the m spread subcarriers together , the resulting output will have a higher signal to noise ratio ( snr ) which allows for a faster outer pll loop . in block 480 , a real phase value is calculated from the single complex number output by block 475 . the outer loop filter 485 is a low pass filter that filters the real phase value . the outer loop filter 485 may be a second order low pass iir filter . the speed of the outer pll loop , i . e ., how quickly the loop achieves lock , may be adjusted by modifying the frequency response characteristics of the outer loop filter 485 . the outer loop filter 485 also includes an input for initialization of the outer loop filter 485 . the initial channel synchronization block 495 produces an output that sets the outer loop filter block 485 to values based on an initial synchronization procedure that depends on the particular communication system . for example , the synchronization procedure may depend on a known training sequence that is received by the rf demodulator 310 at the beginning of a transmission . block 490 converts the real filtered phase value produced by the outer loop filter 468 to a complex number , which typically has a unity gain associated with it . at the multiplier block 410 , each of the m values in the vector that is output by the fft block 315 is multiplied by the single complex value produced by block 490 . the phase of each of the m values in the vector is thereby adjusted by the same phase offset . the channel equalizer block 340 may also include a weighting block 460 . the weighting block 460 , takes as inputs the noise estimate output of a noise estimator 405 and the m outputs of the inner loop filter 465 . as noted above , each of the m outputs represents a tap weight . the weighting block 460 compares the noise estimate outputs with the tap weights to determine a signal to noise estimate for each frequency component . the output of the weighting block 460 is a vector of length m that is used to alter the weight given to each of the m discrete frequencies in the spread frequency domain . in one embodiment , the output of the weighting block 460 may be a weighting vector containing ones and zeros . by performing an element by element multiplication on the weighting vector and the information in the spread frequency domain , certain frequencies in the spread frequency domain can be canceled out . for example , if a narrow band interferer is determined to be within a frequency range k by the noise estimator block 405 , then the value or values in the weighting vector that correspond to the frequency range k may be set to zero so that values in this frequency range are effectively ignored in the inner and outer loops of the channel equalizer block 340 . certain frequencies in the spread frequency domain having weak signal components such as might occur from multipath nulls or from previous processing to remove narrowband interference may also be canceled out using the weighting vector . canceling such frequencies out prevents the subsequent linear lms process from generating excessive noise amplification . the weighting vector is provided to the multiplier 420 of the inner loop and to the multiplier 470 in the outer loop . alternatively , separate weighting vectors may be calculated for each of the inner and outer loops . referring now to fig5 , there is provided a block diagram of an ofdm communication device 500 in accordance with an embodiment of the present invention . the ofdm communication device 500 may be a small device , such as a portable device that can easily be carried by a user . alternatively , the ofdm communication device 500 may be installed in a fixed location . the ofdm communication device 500 may include a controller 510 . the controller 510 may include one or more microprocessors , microcontrollers , application - specific integrated circuits ( asics ) and programmable devices , such as a field programmable gate arrays ( fpgas ) or complex programmable logic devices ( cplds ). the controller 510 may also have access to memory 535 . the memory 535 may include volatile memory , such as static or dynamic ram , and non - volatile memory , such as ferroelectric memory , magnetoresistive memory , flash memory , or a hard disk drive . the memory 535 may be used to store program instructions ( e . g ., software code ), calibration information , and other information required by the controller 510 . the controller 510 may also connect to one or more external i / o interfaces 520 . examples of external i / o interfaces include ports for usb , serial , ethernet , and firewire , among others . such interfaces are well known to persons skilled in the art , and thus , will not be described in great detail herein . a user can interact with the controller 510 through the external i / o interfaces 520 to upgrade software code and to transfer information to and from the controller 510 . the memory 535 can include a computer - readable storage medium on which is stored one or more sets of instructions ( e . g ., software code ) configured to implement one or more of the methodologies , procedures , or functions described herein . a computer - readable medium containing instructions may also be connected to the controller 510 via one of the external i / o interfaces 520 . the instructions can also reside , completely or at least partially , within the controller 510 . the controller 510 may execute the program instructions to perform the functions assigned to the controller 510 . alternatively , the methods , procedures , or functions described herein can be implemented using dedicated hardware implementations . thus , the exemplary system is applicable to software , firmware , and hardware implementations . the ofdm communication device 500 may include a user interface 530 . the user interface 530 may include buttons , switches , knobs , and a keyboard that a user can use to interact with the controller 510 . the user interface may also include a display , which provides status information to the user . a speaker and a microphone may also be included in the user interface 530 for the transmission and reception of sound information . the controller 510 is connected to and communicates with a signal processing module ( spm ) 540 . like the controller , the spm 540 may include one or more microprocessors , microcontrollers , dedicated digital signal processors ( dsps ), asics , and programmable devices , such as fpgas and cplds . the spm 540 need not be separate from the controller . the functions of the spm 540 may be included in the controller 510 . the ofdm communication device 500 also includes an rf interface . there are many different possible methods of implementing the rf interface 585 . although fig5 illustrates separate transmit 295 and receive 305 antennas , as is well known in the art , a single antenna may be shared by the receiver and the transmitter . multiple transmit and / or receive antennas may also be used to provide for diversity transmission and reception and / or beam - forming . the rf interface 585 includes an rf modulator 290 and a local oscillator 551 . the function of the rf modulator 290 is to modulate data onto a carrier wave , i . e ., an rf signal , derived from the uplink local oscillator 551 . the data to be modulated is provided to the rf modulator 290 by the spm 540 . the rf signal , which carries the data , is amplified using an output power amplifier ( not shown ) and sent to the antenna 295 . the uplink signal is thereby broadcast to other ofdm communication devices . the rf interface 585 also includes an rf demodulator 290 and a downlink local oscillator 561 . the downlink signal is received from the antenna 295 and may be amplified by an input power amplifier ( not shown ). the amplified input signal is then demodulated by the rf demodulator 290 using the downlink local oscillator 561 . data is thereby extracted from the downlink signal . the extracted data may be provided to the spm 540 as digital samples . all of the methods disclosed and claimed herein may be executed using a variety of different hardware devices . the spm may execute the required functions to implement the described blocks of the transmitter 200 and the receiver 300 . however , the steps of the above described methods need not be executed by the spm 540 . many of the steps may instead be executed by a generic processor included in the ofdm communication device 500 . alternatively , portions of the disclosed methods may be performed by hardware that is not directly included in the ofdm communication device 500 . for example , a device connected to the ofdm communication device 500 via the external i / o interfaces 520 may perform some of the disclosed functions . moreover , it will be apparent to those of ordinary skill in the art that variations with respect to the order of the sequence of the disclosed function blocks may be applied without departing from the concept , spirit , and scope of the invention . further , function blocks may be combined with other function blocks to improve the efficiency of the described methods and additional function blocks may be added without departing from the concept , spirit , and scope of the invention . all of the apparatus , methods , and algorithms disclosed and claimed herein can be made and executed without undue experimentation in light of the present disclosure . while the invention has been described in terms of preferred embodiments , it will be apparent to those of ordinary skill in the art that variations may be applied to the apparatus , methods , and sequence of steps of the method without departing from the concept , spirit , and scope of the invention . more specifically , it will be apparent that certain components may be added to , combined with , or substituted for the components described herein while the same or similar results would be achieved . all such similar substitutes and modifications apparent to one of ordinary skill in the art are deemed to be within the spirit , scope , and concept of the invention as defined .