0 Introduction
Wireless communication technology is in a stage of rapid development and has begun to be widely used in many fields such as personal, commercial, and military. With the increasing complexity of wireless communication systems, it has become very difficult to use traditional analysis methods to evaluate and design wireless communication systems; the method of using hardware prototype testing is often implemented in the later stage of system development due to its high implementation cost and difficulty; the software-based modeling and simulation method enables researchers and developers to obtain evaluation capabilities close to the real system with less manpower and financial resources, so it has become the main design and verification method in the early stage of communication system development. At present, the modeling and simulation of wireless communication systems are mainly implemented through software such as Matlab Simulink, SystemView, and SPW. However, for wireless transmission environments with fast characteristics changes and susceptible to interference, the above-mentioned pure software-based modeling and simulation methods are difficult to achieve fast and accurate testing, analysis, and evaluation of the system.
This paper proposes to use the software radio system composed of the software radio development platform GNU Radio and the universal software radio peripheral USRP (Universal Software Radio Peripheral) for modeling and simulation of wireless communication systems. First, the software characteristics and hardware structure of the system are analyzed; then, the communication link model based on the simulated channel and the actual channel is established for the MPSK modulation system, and the comparative experiment of the bit error rate test is carried out to verify the feasibility of this method to incorporate the actual wireless channel into the system simulation; finally, based on the link model of the actual channel, a wireless video stream transmission prototype system is further designed and implemented, which can realize video stream transmission in a wireless way. The analysis and experimental results show that compared with the commonly used software modeling and simulation methods, the new method combining software and hardware can quickly realize the system prototype and incorporate the actual wireless channel with complex characteristics and difficult simulation into the system simulation model.
1 Software Radio System Composed of GNU Radio and USRP
1.1 Software Radio
The concept of software radio was formally proposed by Joseph Mitola in 1992. The concept was proposed and developed in response to the situation in the field of wireless communications where multiple systems coexist and there is fierce competition among standards. The architecture of software radio breaks through the traditional design mode of wireless communication systems with dedicated hardware as the core. By placing broadband AD and DA devices as close to the RF antenna as possible, the analog signals obtained are converted into digital signals as early as possible, and using general-purpose hardware as the basic platform, as much wireless and communication functions as possible are implemented by software on general-purpose processors to achieve the upgradeability and reconfiguration of wireless communication systems. Applying software radio technology to the modeling and simulation of wireless communication systems can give full play to its flexible, open, hardware-software integration, and multi-level collaboration characteristics, and solve some limitations of traditional software tools.
Since the development of software radio, there are many open source and commercial systems that can be used for prototype design and communication system research, such as the Sora system launched by Microsoft Research and the OSSIE (Open Source SCA Implementation Embedded) project of Virginia Tech. Among them, the open source radio software GNU Radio and the universal software radio peripheral USRP form a PC-based software radio system, which is a good solution for modeling and simulation of wireless communication systems.
1.2 GNU Radio Software Features
GNU Radio is an open source platform developed based on the software radio concept. It runs on the Linux system and is distributed in accordance with the terms of GNU's GPL (General Public License). As a software radio development platform, GNU Radio has strong reconfigurability. Through the various practical signal processing modules it provides and the flow graph mechanism that connects these signal processing modules, different communication link models can be established to meet the needs of different types of communication systems. GNU Radio is mainly used for modeling and simulation of communication links. Its standard library is very rich, covering common signal processing modules such as modulation and demodulation, source encoding/decoding, channel encoding/decoding, multiple access, equalization, synchronization, filter design, wavelet analysis, etc., and has a graphical modeling environment similar to the block diagram structure of Matlab Simulink, which can easily and quickly establish a model of the link-level system. At the same time, for the sake of operating efficiency, GNU Radio adopts a two-level design with separate data channels and control channels, in which C++ is used to describe signal processing modules that require higher operating efficiency, and Python is used for configuration and connection between modules.
Since GNU Radio uses the general programming language Python as a dedicated control channel instead of a single module connection mechanism, in addition to being able to configure and manage signal processing modules more conveniently, with the help of Python's flexible characteristics, it is also possible to establish a network model at the upper layer of the communication link, customize and design the entire communication protocol, and even interact directly with the application. This makes it possible to implement cross-level design and joint optimization in GNU Radio.
Taking the built-in test program of GNU Radio as an example, it can be seen from the analysis of the code in the test program that GNU Radio specifies the frame structure format shown in Figure 1. The bottom frame structure provides the preamble and synchronization code for the frequency and timing synchronization of the receiving system; the frame header provides information such as frame length and Gaussian whitening bias; the upper structure of the frame provides CRC (Cyclic Redundancy Check) check and the function of counting the number of sent packets. In addition, GNU Radio also provides a carrier sense multiple access/collision detection mechanism in the MAC (Media Access Control) layer to detect signal conflicts on the current channel. When the amplitude of the signal received by USRP is greater than the set threshold value, the channel is considered to be occupied, and the binary exponential backoff retransmission algorithm is used to wait for retransmission. Through the timestamp of USRP data, the superframe structure of time-slot transmission can also be implemented in GNU Radio. At the same time, by importing the Socket module, Python can easily perform network programming. Calling the virtual Ethernet channel provided by TUN/TAP allows the application layer program based on TCP/IP to be directly loaded onto GNU Radio and communicate through the communication system provided by GNU Radio. In addition, the data in the upper-layer network model is asynchronous data and cannot be directly processed by the synchronous signal processing module on the communication link. To this end, GNU Radio uses a FIFO (First In First Out) cache between the network model and the link model to achieve the conversion of signals from asynchronous to synchronous, and from information bits to baseband waveforms, closely integrating the communication link and the upper-layer network.
By using the functions and features provided by GNU Radio, researchers and developers can easily build a more complete communication system consisting of communication links and upper-layer network models, and perform cross-level joint design and optimization of customized communication systems from a global performance perspective.
1.3 USRP Hardware Structure
In the software radio system composed of GNU Radio and USRP, GNU Radio is only responsible for processing low-rate baseband signals, while USRP plays the role of digital intermediate frequency and RF front end to process high-throughput signals. The hardware structure of USRP designed based on software radio concept is flexible and universal, and can be compatible with multiple protocol standards of current wireless communications, providing strong support for the establishment of customized protocols and multi-standard fusion system modeling and testing.
As shown in Figure 2, the structure of USRP mainly includes FPGA (Field Programmable Gate Array) responsible for digital intermediate frequency processing, ADC and DAC devices responsible for analog/digital and digital/analog conversion, and RF sub-board responsible for RF signal processing. In the specific transmission and reception process, the antenna at the receiving end captures the RF signal in the air, and the RF sub-board performs down-conversion in the analog domain, moving the signal from the RF to the intermediate frequency, and then entering the digital domain through the conversion of the A/D device; FPGA acts as a digital down-converter, further moving the signal from the digital intermediate frequency to the baseband, and at the same time completes the signal extraction work, so that the signal rate is reduced to the range that the general processor can handle; finally, the low-rate baseband signal is sent to the PC through the control chip. The sending end completes a roughly opposite signal processing process.
Previous article:Implementation of digital adjustable optical attenuator based on SFP package
Next article:High energy efficiency and low standby energy consumption solution based on NCP1937
Recommended ReadingLatest update time:2024-11-15 09:29
- Popular Resources
- Popular amplifiers
- Mission-oriented wireless communications for cooperative sensing in intelligent unmanned systems
- Simulation and Modeling of Chemical Sensors Volume 5 Electro-Optical Sensors Part 1 Photocopy
- In-depth analysis of Linux kernel source code
- RBF neural network control design, analysis and Matlab simulation (Liu Jinkun)
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- It is time to accumulate some knowledge on GaN power device design when developing switching power supplies
- Brief Introduction to the Principle and Design of Flyback Converter
- WIFI development software tool sharing
- 【Renovation of old things】Graffiti lamp 1 Material preparation
- [TI recommended course] #[High Precision Laboratory] Interface: RS-485#
- Crazy Shell AI Open Source Drone I2C (Laser Ranging)
- Is Apple’s 145-yuan polishing cloth a waste of money?
- Input overvoltage and quiescent current of TPS62150
- Raspberry Pi PICO Macro Keyboard
- EEWORLD University Hall----Live Replay: Qorvo, muRata, Keysight Collaboration- New Opportunities in UWB Market