Autonomous vehicles use global navigation satellite systems (GNSS) to provide a position within a few centimeters of truth. Centimeter positioning requires accurate measurement of each satellite's direct path propagation time. Multipath corrupts the propagation time estimate by creating a time-varying bias. A GNSS receiver model is developed and the effects of multipath are investigated. MATLABtm code is provided to enable readers to run simple GNSS receiver simulations. More specifically, GNSS signal models are presented and multipath mitigation techniques are described for various multipath conditions. Appendices are included in the booklet to derive some of the basics on early minus late code synchronization methods. Details on the numerically controlled oscillator and its properties are also given in the appendix.