This directory contains examples for transmitting and receiving 802.11
style bpsk. The following are brief descriptions of the python scrips
in this directory.
bbn_80211b.py:
This module instantiates the gr-blocks that do the encoding and
decoding. For both the transmitter and receiver the user can choose
whether to use a raised-cosine baseband pulse, or the 802.11 Barker
baseband pulse. Currently, the transmitter does not work very well
with the Barker baseband pulse, however given a sufficient signal to
noise ratio (and processing power), the receiver can correctly decode
802.11 1 Mbps packets. Also, once in a while, the receiver can
correctly decode an 802.11 2 Mbps (qpsk) packet, however qpsk
tranmission is not yet supported (although it is possible to transmit
and receive at 2 Mbps using bpsk and 2 bits per symbol).
bbn_80211b_pkt.py:
This module is wraps the classes in bbn_80211b.py. The user should
instantiate the classes in this file, and not instantiate the classes
in bbn_80211b.py directly. The bbn_80211b_mod_pkts class instantiates
the transmit packet queue and provides the send_pkt function. The
send_pkt function takes a payload, prepends the 802.11 long preamble
and plcp header, appeands the payload crc, and queues the packet for
transmission. The bbn_80211b_demod_pkts class instantiates the
receive queue and creates a thread to watch for received packets.
bbn_80211b_transmit_path.py:
This file contains a class that connects an instance of
bbn_80211b_mod_pkts to the usrp.
bbn_80211b_test.py:
This class instantiates the transmitter and receiver and simulates
an additive white Gaussian noise channel. Its sends a few packets
across the simulated channel, and prints out their contents when they
are received.
bbn_80211_rx.py:
bbn_80211_tx.py:
These python scripts respectively receive and send packets over the
usrp. There are several different ways of running these scripts. The
transmit script uses a raised cosine baseband pulse, and the receive
script can be configured to look for either a raised cosine, or a
Barker pulse. To send some packets between two usrps at 500 kBps, on
one machine start the receiver:
./bbn_80211_rx.py
and on the other machine run the transmitter:
./bbn_80211_tx.py
If it works, the receiver will output a "PKT" message for each
packet it receives. By default, both the transmitter and receiver use
8 samples per symbol, run at 4 megasamples per second, and use 2.4Mhz
as the center frequency. The receiver configures the usrp to use 8
bits for each I and Q sample, and the transmitter uses 16 bits for
each I and Q sample. To send data at 1 Mpbs, you can configure the
receiver to use 4 samples per symbol:
./bbn_80211_rx.py --spb 4
and do the same for the transmitter:
./bbn_80211_tx.py --spb 4
On a fast machine, the receiver program should be able to capture
real 802.11 1 Mbps packets and a few 2 Mbps packets. Running in this
mode seems to max out the cpu on our 1.6 Ghz Pentium M. Despite the
fact that the symbol rate of 802.11 bpsk and qpsk is only 1
megasymbols per second, the energy in the 802.11 signal is spread over
11 Mhz (at baseband) using an 11-chip Barker spreading code.
Fortunately, under high signal-to-noise ratio conditions, it is not
necessary to sample the entire 11 Mhz bandwidge to recover the
symbols. We have succeeded in recovering 802.11 packets using an 8
Mhz sampling rate. To try to catch 802.11 1 Mpbs packets, use the
following command:
./bbn_80211b_rx.py -d 8 -f 2412e6 -b
The "-d 8" tells the receiver to run at 8 megasamples per second
(instead of 4), and "-f 2412e6" means to listen on 802.11 channel 1.
(The 802.11 channels are 5 Mhz apart, so channel 2 is at 2427, channel
3 is at 2422 etc..) The "-b" means to look for the Barker code. A
message will be printed out for each received packet that passes the
crc check. Use the "-p" option to disable crc checking. Note that
when crc checking is enabled the crc is sripped off the packet, so
disabling crc checking causes the received packet to be 4 bytes
longer.
bbn_80211_tap.py:
This script creates a tap interface that can used to send and
receive packets. On Linux a standard ethernet tap (called gr0) is
created, and on NetBSD an 802.11 (called tap0) interface is created.
Most of the options in the other scripts are available for the tap
script. However, the tap script has a "-z" option for transmit only
(disable the reciver), and the "-t" option to enable the transmitter
(while leaving the receiver enabled). If you use both -r and -t
options at the same time the transmitter will be enabled and the
reciver will be diabled. To run the tap in 802.11 channel 6 without
transmitting, use the following command:
./bbn_80211b_tap.py
The defaults are shown in this command
./bbn_80211b_tap.py -d 8 -f 2437e6 -b
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
USRP平台实现802.11 (1264个子文件)
output.0 587KB
output.0 586KB
libgnuradio-bbn.so.0.0.0 339KB
traces.0 146KB
traces.0 145KB
libgnuradio-bbn.so.0 56B
output.1 587KB
output.1 586KB
traces.1 61KB
traces.1 61KB
configure.ac 2KB
configure.ac 2KB
configure.ac 2KB
configure.ac 2KB
all-wcprops 5KB
all-wcprops 5KB
all-wcprops 5KB
all-wcprops 4KB
all-wcprops 4KB
all-wcprops 4KB
all-wcprops 3KB
all-wcprops 3KB
all-wcprops 3KB
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 893B
all-wcprops 766B
all-wcprops 740B
all-wcprops 677B
all-wcprops 657B
all-wcprops 657B
all-wcprops 653B
all-wcprops 653B
all-wcprops 637B
all-wcprops 620B
all-wcprops 611B
all-wcprops 602B
all-wcprops 556B
all-wcprops 552B
all-wcprops 548B
all-wcprops 548B
all-wcprops 544B
all-wcprops 540B
all-wcprops 532B
all-wcprops 532B
all-wcprops 528B
all-wcprops 516B
all-wcprops 512B
all-wcprops 495B
all-wcprops 405B
all-wcprops 381B
all-wcprops 354B
all-wcprops 353B
all-wcprops 346B
all-wcprops 346B
all-wcprops 310B
all-wcprops 310B
all-wcprops 138B
all-wcprops 136B
all-wcprops 134B
all-wcprops 129B
all-wcprops 119B
all-wcprops 113B
all-wcprops 112B
all-wcprops 88B
all-wcprops 83B
all-wcprops 80B
Makefile.am 3KB
Makefile.am 3KB
Makefile.am 3KB
Makefile.am 3KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 995B
Makefile.am 995B
Makefile.am 995B
Makefile.am 995B
Makefile.am 337B
Makefile.am 311B
Makefile.am 311B
Makefile.am 311B
Makefile.am 245B
Makefile.am 245B
Makefile.am 245B
共 1264 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
Aelily
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 老飞飞搭建基础通用数据库V19数据库.rar
- jquery.js
- 机械设计多工位ACF贴胶带&预压设备sw18可编辑非常好的设计图纸100%好用.zip
- 基于Pytorch复现Point-Transformer,用于ShapeNet数据集点云分割
- 【医学影像分析】2D超声图像的分割检测(Ultrasound Nerve Segmentation - Kaggle数据集)
- 嘎嘎香的五款神仙谷歌插件
- .arch书源导入教程.mp4
- 贪心算法介绍及代码示例讲解
- CR13SP35MSI64 Crystal 水晶报表运行组件最后版本64位
- 图像分类数据集:玉米叶是否感染分类数据集(2分类,包含训练集、验证集)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页