Over the last 20 years, we have seen a tremendous increase in demand for broadband internet access and cellular use. Many technological advances were made throughout this time period to increase internet access speeds and improve the voice service quality. But despite these advances, one of the current limitations in the current technology is that it cannot simultaneously provide both high-speed internet access equivalent to cable/DSL and coverage equivalent to the cellular networks.To overcome this limitation, WiMAX was developed to be the solution to this limitation. WiMAX is an emerging and powerful technology in broadband wireless communications in that it can provide high-speed broadband voice and data services over distances much greater than Wi-Fi.However, like in any wireless system, signal distortion due to channel fading, noise, and Doppler can limit the overall transmission data rate and coverage. To minimize the degradation in system performance caused by the channel, channel estimation must be performed to remove the effects of the channel. To aid the channel estimation process, known pilot subcarriers are embedded into each OFDM symbol and used by the receiver to measure the channel. Because the pilot arrangement depends on the mode or feature employed by WiMAX, different channel estimation algorithms must be developed to optimize performance.We first develop and present several channel estimation algorithms for the various modes and features supported by WiMAX. More specifically, we develop channel estimation algorithms that can be used in the PUSC and AMC subcarrier permutation and channel sounding feature. We then use analytical modeling and simulation to illustrate and analyze the performance of each algorithm under various channel conditions and compare them to an estimator with perfect channel knowledge. Our results show that channel delay spread and signal-to-noise ratio influence the performance of each algorithm and that some estimators perform better in certain channels and worse in others. With this knowledge, we can use a combination of our proposed algorithms and tune them according to the channel conditions to enhance the system's performance. By the end of this study, we will have a better understanding of the types of channels each algorithm performs best in and explain why each algorithm performs the way it does.