Wireshark is a network packet analyzer. A network packet analyzer presents captured packet data in as much detail as possible. You could think of a network packet analyzer as a measuring device for examining what’s happening inside a network cable, just like an electrician uses a voltmeter for examining what’s happening inside an electric cable (but at a higher level, of course).
I strongly recommend installing Anaconda Distribution.
conda list
conda install -c conda-forge tensorflow=1.13
There is some confusion about the Bluetooth. Generally speaking, Bluetooth 1.0 - 3.0 includes classic Bluetooth. Bluetooth 4.0 starts to use Bluetooth Low Energy (BLE). A brief introduction about their difference can be found at link1, link2 and link3.
New features of Bluetooth 5 can be found here. The full and latest specification, v5.2 (released in 2019) can be downloaded here.
Unless otherwise highlighted, the following descriptions apply to BLE, which might not be correct for classic Bluetooth.
Visit MATLAB Bluetooth Protocol Stack for a detailed introduction about the Bluetooth and BLE protocol, and a mapping between them and the OSI model.
Figure from https://uk.mathworks.com/help/comm/ug/bluetooth-protocol-stack.html.
Some brief introduction of the protocol can be found at the Microchip Developer Center. The BLE protocol stack consists of
Figure from https://microchipdeveloper.com/wireless:ble-introduction.
Some key features of the BLE physical layer
Figure from https://microchipdeveloper.com/wireless:ble-introduction.
The preamble defined in BLE v5.2:
Channel 37, 38 and 39
Channel 0-36
The same packet format for both
BLE Packet Type. Figure from https://microchipdeveloper.com/wireless:ble-link-layer-packet-types
Advertising and Scanning. Figure from https://microchipdeveloper.com/wireless:ble-link-layer-discovery
Connection establishment. Figure from https://microchipdeveloper.com/wireless:ble-link-layer-connections
Connected phase. Figure from https://microchipdeveloper.com/wireless:ble-link-layer-connections
Note: The module is still under development and its classes, functions, methods and constants are subject to change. It only supports the basic BLE functions.
Matlab has also provided simulation support for Bluetooth and BLE. Visit Communications Toolbox Library for the Bluetooth Protocol support package for more information.
]]>IEEE 802.15.4 defines the physical and MAC layers. ZigBee is based on IEEE 802.15.4 but also defines higher layer protocols.
IEEE 802.15.4 is also adopted by 6LoWPAN, WirelessHART, THREAD, etc.
Frequency Band
OQPSK PHY
Figure from https://uk.mathworks.com/help/comm/ug/end-to-end-ieee-802-15-4-phy-simulation.html.
All OQPSK PHYs map every 4 PPDU bits to one symbol. The 2.4 GHz OQPSK PHY spreads each symbol to a 32-chip sequence, while the other OQPSK PHYs spread it to a 16-chip sequence. Then, the chip sequences are OQPSK modulated and passed to a half-sine pulse shaping filter (or a normal raised cosine filter, in the 780 MHz band).
Run the Matlab End-to-End IEEE 802.15.4 PHY Simulation to have a deep understanding on the modulation.
Please refer to Section 1.1.1.2 O-QPSK PHY of the Rohde & Schwarz Application Note for a detailed introduction.
CSMA-CA
MAC Type
Check the first chapter of IEEE 802.15.4 Stack User Guide for a brief introduction of IEEE 802.15.4.
]]>Linux Test
cd, ls, mkdir, pwd, cat, grep,sudogedit file_name.extensionvim getting startedps -ef | grep loginname Or ps -ef | grep first_7_characters_of_your_loginname_if_it_is_longer_than_8_characterskill PIDCopy all the contents of ~/folder1 to ~/new_folder1: cp -r ~/folder1/. ~/new_folder1
module availmodule listmodule load apps/MATLAB/R2020amodule unload apps/MATLAB/R2020aStep 1: Load Matlab
module load apps/MATLAB/R2020aStep 2: Run Matlab without GUI and in the background
nohup matlab -r MatlabScriptName -nodisplay - nosplash -nojvm -nodesktop &The above command may output Bad file descriptor and Warning: “Error reading Character from command line” error. In this case, using the following command instead:
nohup matlab -nodesktop -nosplash -nodisplay < main.m >log.txt 2>&1 &
Explanation: https://www.programmersought.com/article/91451058498/
“>log.txt” refers to redirecting the output to log.txt. 2>&1 means to input the error information into log.txt, 2 Refers to the standard input and output error (stderr), 1 refers to the standard output (stdout), 2> & 1 means 2 is equivalent to 1 output, the last & is the meaning of background operation, combined with the nohup command.
Recommended Book
Getting Started with the LimeSDR
Strictly speaking, IEEE 802.11 is the standard by IEEE and WiFi is a trademark of the WiFi alliance. However, they are used interchangably in this post.
IEEE 802.11 standard defines the physcai layer and media access control (MAC) layer protocols. It has undergone a number of amendments in the last twenty years, since its first release in 1997. A complete list of the IEEE 802.11 amendments is summarized at wikipedia.
The main physical layer amendments include 802.11b (1999, DSSS), 802.11a (1999, OFDM, 5 GHz), 802.11g (2003, OFDM, 2.4 GHz), 802.11n (2009, MIMO OFDM, high throughput), 802.11ac (2013, MIMO OFDM, very high throughput), 802.11 ax(est late 2019, high efficiency).
OFDM Basics
IEEE 802.11 OFDM Receiver Design
WiFi use CSMA/CA as the MAC layer protocol.
Frame Types
How 802.11 Wireless Works 802.11 Association Process Explained
802.11 Wi-Fi Connection/Disconnection process
802.11 Wi-Fi Security Concepts
The commercial network interface cards (NICs) only provide received signal strength indicator (RSSI) but not channel state information (CSI). RSSI represents the received power which is averaged over a packet, thus it is a coarse grained parameter. On the other hand, CSI is a fine grained parameter, and offers detailed channel response over different frequencies/subcarriers, when OFDM-based technique is used. Since CSI is much more useful for innovative research, a (incomplete) list of testbed is given below.
There is an 802.11 reference design implemented for WARP boards, which is compatible with the commercial WiFi. An experimental framework is implemented by Python for the research development. The available variables/parameters can be found here, among which the CSI is made public.
WARP is being actively used for research in many areas like power management, architectures for wireless receivers, physical layer algorithms, access protocols, routing and cognitive radios.
A list of papers using WARP can be found at here.
Intel 5300 NIC
There is the Linux 802.11n CSI Tool for Intel 5300 NIC. This Intel NIC together with the CSI tool have been used extensively by researchers and led to many excellent research papers. A list of the relevant publications can be found at link.
Please note PCI-e interface is required for these NICs.
Atheros Chipsets
There is Atheros CSI Tool. A list of the relevant publications can be found at here.
Braodcom WiFi Chipsets
The Matlab WLAN Toolbox is very powerful. There are many useful functions and examples. Both PHY and MAC layers are supported. I strongly suggest to test your idea and algorithms using this Toolbox before you do it with real hardware.
Scapy official website defines
Scapy is a Python program that enables the user to send, sniff and dissect and forge network packets. This capability allows construction of tools that can probe, scan or attack networks.
There is a library supporting IEEE 802.11.
Code Examples:
Wireshark is a network packet analyzer. A network packet analyzer presents captured packet data in as much detail as possible. You could think of a network packet analyzer as a measuring device for examining what’s happening inside a network cable, just like an electrician uses a voltmeter for examining what’s happening inside an electric cable (but at a higher level, of course).
]]>Set the operating mode of the device, which depends on the network topology. The mode can be Ad-Hoc (network composed of only one cell and without Access Point), Managed (node connects to a network composed of many Access Points, with roaming), Master (the node is the synchronisation master or acts as an Access Point), Repeater (the node forwards packets between other wireless nodes), Secondary (the node acts as a backup master/repeater), Monitor (the node is not associated with any cell and passively monitor all packets on the frequency) or Auto.
Lego Robot
Each journal and conference will have information for authors, which will explain the requirements in terms of the number of pages, format, resubmission, page overlength charge, etc.
For example, the information for authors of IEEE Transactions on Wireless Communications can be found here.
Each journal and conference will usually have both Word and Latex templates. When possible, the Latex templates are always recommended. Please read this post for How to Use LaTex.
Please note that IEEE journals will have different templates. Download your right template from here.
There may be different rules for journals regarding extending a conference paper. Please refer to the website of the particular journal for detailed instruction.
For example, the policy of IEEE Transactions on Wireless Communications can be found here.
Making Your Article interesting to Read
- Write in paragraphs, not long blocks of text [12]. every paragraph should have a topic sentence, supporting sentences that build on that key message, and a summary sentence. Vary the length of your paragraphs to make your article easier to read. Think about the transition from one paragraph to the next. is there a logical progression?
- Write clear, simple sentences in the form of noun-verb-object. Varying sentence length can make an article more engaging. compound sentences add variety and are useful for comparing ideas [12]. every word in a sentence should contribute something; eliminate unnecessary words.
- avoid the passive voice, in which the subject is acted upon. in the active voice, the subject performs the action. “it was hypothesized,” is passive; “We hypothesized,” is active. The active voice is more interesting and less ambiguous. edit passive sentences to active sentences as much as possible.
- Write in the first person (“i,” “we”) to make it clear who has done the work and the writing. it is particularly helpful when you are comparing your work to someone else’s work [3].
- The abstract and the methods section will be written in the past tense, because they describe work that you have already done. The introduction and discussion section are usually written in the present tense, because they describe knowledge that currently exists.
Some suggestions from the Information for Authors IEEE Transactions on Artificial Intelligence Author Instructions Title
Avoid phrases such as “a novel methodology”, “a new algorithm”, and “a significant application” in the title. By default, papers in TAI offer novel contributions that are significant. One purpose of the paper is to convince the reader that the contribution is novel, scientifically sound, technically correct, and significant. As such, words such as ‘novel’ and ‘new’ are redundant.
Abstract
The “Abstract” should not exceed 250 words. Authors are encouraged to attempt to use the following guideline in writing their abstract:
- 1-2 sentences introducing the problem.
- 2-3 sentences summarizing the state-of-art. Be concise and offer an objective assessment of the current state of play in this area.
- 1-2 sentences clearly describing the research gap the paper is concerned with.
- 1-2 sentences summarizing the main methodological contribution.
- 1-2 sentences summarizing the main result.
- 2-3 sentences summarizing the implications of the findings on the wider field of AI.