Cognitive radio for dynamic spectrum access enables opportunistic use of the radio-frequency (RF) spectrum, allowing unlicensed users to utilize licensed bands under the condition that they interfere as little as possible with the licensees. A cognitive radio transmits on bands detected as being free, leaving them whenever a primary user is sensed. This work focuses on the practical implementation of a cognitive radio for dynamic spectrum access. A power detector is chosen to sense the spectrum. The Receiver Operating Characteristic (ROC) of the detector is obtained experimentally. After sensing, the cognitive radio will transmit on one of the free channels. Detection and transmission are implemented in parallel at the cognitive transmitter. There is a tradeoff between transmission rate of the cognitive radio and interference created to the licensed user. This thesis also presents the implementation of a cognitive receiver, the counterpart to the cognitive transmitter. The cognitive receiver must change frequency of reception every time the cognitive transmitter changes band (in order to keep receiving packets). The transmitter sends warning packets when switching from one channel to another so that the receiver can get resynchronized. Performance of the cognitive radio system is evaluated using the minimum amount of time necessary for synchronization. A demonstration has been set up. Music samples are sent by the cognitive transmitter and a Graphical User Interface (GUI) shows the state of the channels (open or in use). Frequency switching is shown to be essentially unnoticeable to the end user.