Özet:
Radio spectrum is a finite resource and effective utilization of it in wireless networks is a key challenge as the number of users increase. Current wireless networks are expected to fail to satisfy increasing user demands due to inefficient spectrum management resulting from the fixed assignment policy in which each wireless network has its own running parameters. Current hardware-based technology does not allow dynamic usage and is very cumbersome. Dynamic spectrum allocation, which can be achieved by cognitive radio (CR) technology that is based on software defined radio (SDR) architecture is a promising solution for efficient spectrum utilization. CR is an intelligent device that automatically senses, recognizes, and makes wise use of idle parts of the spectrum dynamically. CR achieves dynamism by making handoffs to underutilized bands. Handoff is an expensive operation. Because, it requires suspending an ongoing communication, searching and selecting a new channel, and reconfiguring CR to switch that channel. Also, all of these operations should be performed in the shortest time to avoid communication problems. Decreasing number of handoffs is a key challenge for efficient operation of CR. Initial studies for handoff are based on sense-and-react approach where handoff is made solely based on current spectrum observations. This approach may lead to possible communication failures because users cannot foresee future channel status. Other handoff algorithms mostly focus on determining the handoff time, increasing bandwidth usage, achieving faster channel discovery, and minimizing disturbance to primary users but do not answer the question of ``how to minimize number of handoffs by considering user behavior?" In addition, existing channel selection algorithms provide only software simulation or hardware testbed results and neglect the software design and implementation details of their approach on a real SDR. In this thesis, two channel selection algorithms are proposed, and an infrastructure based SDR implementation is provided to answer these questions. Proposed channel selection algorithms aim to learn user behavior and use channel utilization histories for predicting the new candidate channel for handoff. In the implementation section of the thesis, software design challenges of a SDR based CR are discussed and several software design patterns are proposed, the layers of the software and components in each layer is explained, the results from a software engineering point of view are examined and finally, the lessons learned and troubles encountered during the implementation are presented.