gnuradioproject
所属分类:C/C++基础
开发工具:Python
文件大小:2737KB
下载次数:0
上传日期:2017-11-19 23:18:58
上 传 者:
sh-1993
说明: 关于分组传输的GNU无线电项目。包含改进的分组编码器解码器、相关估计器和ta...
(GNU Radio project on packetized transmission. Contains improved packet encoder/decoeder, correlation estimator and tagged stream blocks.)
文件列表:
ProjectProposal (0, 2017-11-20)
ProjectProposal\EPFLheader.sty (4342, 2017-11-20)
ProjectProposal\ProjectProposal.log (20981, 2017-11-20)
ProjectProposal\ProjectProposal.tex (8464, 2017-11-20)
ProjectProposal\TCLsem.cls (7421, 2017-11-20)
ProjectProposal\a4tcl.sty (3311, 2017-11-20)
ProjectProposal\fig (0, 2017-11-20)
ProjectProposal\fig\EPFL_logo_color.pdf (21279, 2017-11-20)
ProjectProposal\fig\commchain.png (59202, 2017-11-20)
ProjectProposal\tcl.clo (1835, 2017-11-20)
Report (0, 2017-11-20)
Report\appendix_bytes.tex (1925, 2017-11-20)
Report\communicationchain.tex (22997, 2017-11-20)
Report\conclusion.tex (2638, 2017-11-20)
Report\examples.tex (3826, 2017-11-20)
Report\gnuradio.tex (2661, 2017-11-20)
Report\img_commchain (0, 2017-11-20)
Report\img_commchain\channel_spectrum.png (16400, 2017-11-20)
Report\img_commchain\corr_dataflow.png (65799, 2017-11-20)
Report\img_commchain\corr_est_2.png (5902, 2017-11-20)
Report\img_commchain\corr_est_false2.png (151493, 2017-11-20)
Report\img_commchain\overview.png (63475, 2017-11-20)
Report\img_commchain\phase_sync.png (16218, 2017-11-20)
Report\img_commchain\phase_sync2.png (17476, 2017-11-20)
Report\img_commchain\pulseshaper_block.png (5023, 2017-11-20)
Report\img_commchain\tag_marking_delay2.png (40901, 2017-11-20)
Report\img_commchain\unwhitened_channel.png (16275, 2017-11-20)
Report\img_commchain\whitened_spectrum.png (25832, 2017-11-20)
Report\img_commchain\whitener.png (44200, 2017-11-20)
Report\img_commchain\whitener_chain.png (13650, 2017-11-20)
Report\img_other (0, 2017-11-20)
Report\img_other\datatypes.png (5060, 2017-11-20)
Report\img_other\gnuradio_block.png (6002, 2017-11-20)
Report\img_other\tagged_streams.png (18624, 2017-11-20)
Report\img_packets (0, 2017-11-20)
Report\img_packets\fixstream.png (103118, 2017-11-20)
Report\img_packets\header.png (10799, 2017-11-20)
... ...
# GNU Radio Packetized transmissions
This repository contains my semester project of spring 2017, using GNU Radio 3.7.10.
A more flexible packet encoder and decoder block are implemented.
The packet encoder encapsulates the incoming stream into packets, consisting of a preamble, header (containing packet length),
payload and checksum. Soft-input error correction is also supported.
Also, better support for modulating the preamble with BPSK is be added,
since this is difficult with the current available blocks in the GNU Radio
framework. The synchronization can be modulated with BPSK, while a higher-
order modulation is used for other packet data to improve data throughput in
good channel conditions.
Some custom blocks were built, which can be useful for other cases. (see below)
# Custom blocks
## Packet encoder and decoder
### Packet encoder features:
* Supports GNU Radio’s constellation objects in order to support a wide range of PSK and
QAM mappings. Optional support for differential encoding.
* Possibility to use distinct constellation types for preamble, header and payload.
* GNU Radio’s header formatter objects in order to support headers with custom
lengths and fields.
* The start of the payload data for a packet is indicated in the incoming byte stream
with a tag that has the payload length as tag value.
* Optional support for data whitening, as discussed in section 4.4 of the report0
### Packet decoder features:
* Decoding of packets that are encoded with the Extended Packet Encoder block
* Support for both hard and soft outputs, in order to support forward error correction
* Support for differential decoding, when hard-decision decoding is used
## Other blocks
### Tagged stream fix:
A tagged stream with more samples between tags than what the packet_len tag indicates
gives problems in GNU Radio’s tagged stream blocks, such as the Extended Tagged FEC
Decoder. These blocks expect that the packets are perfectly sequential, i.e. there are no
extra samples between packets. This new helper block ’truncates’ a tagged data stream. It only keeps the samples belonging to a packet, and removes the other
samples.
### Correlation Estimator
The correlation estimator blocks in GNU Radio 3.7.10 are not working, buggy or do not have enough functionality. This improved
Correlation Estimator implementation tries to solve most of these problems. See report for more details on the
problems of the blocks and the fixes made.
### Data whitening
Blocks that withen/dewhiten tagged streams
# Test systems and implementation examples
There are a lot of exampels (.grc) files on packetization, FEC, whitening and correlation estimation in this repo.
See report for more detailed information
## Basic test examples (testing individual features)
### test_mapping:
tests mapping and constellation decoder for hard and soft decoding. Also demonstrates differential encoding/decoding.
### test_soft decoder:
tests soft constellation decoding
### test_fec:
tests FEC with soft and hard decoding
### test_tagged_stream_fix
tests the Tagged Stream Fixer block, which removes "unnecessary" padding samples in tagged streams, to make them compatible with tagged_stream blocks in GNU Radio
Tagged Stream Fix description: Fixes a stream where the packet length does not correspond to the number of samples. For example, if we have a stream with a packet length tag with value 50, and between each tag there are 52 samples,
the block will remove the last 2 samples from the output stream to make a stream with packet length tag of 50 and 50 samples between each tag.
### test_time_phase_sync
The symbols are shaped with a root raised cosine filter. A channel model is added to simulate
a time offset, frequency offset, phase offset and noise in the signal. Time and phase
synchronization is added with the Polyphase Clock Sync block and Costas Loop. A BER
output is also provided to analyze the effects.
### test_whitener
illustrates the use of the Tagged Stream Whitener blocks
## Packet encoder/decoder test examples
### encdec_basic
Implementes a basic packet encoder/decoder using separate GNU Radio blocks (for debugging)
### encdec_basic_differential
Same as above but now with differential encoding/decoding
### encdec_custom
Implements Extended Packet Encoder/Extended Packet Decoder blocks
### encdec_custom_fec
Same as above but in combination with FEC encoding/decoding blocks
## Communication chain examples
### chain_cusomt
Communication chain using the Extended Packet Encoder/Decoder blocks
### chain_rx_debug
Same as above but the packet decoder is made of individual blocks (for debugging purposes)
### chain_rx_debug_differential
Same as above but for differential decoding
近期下载者:
相关文件:
收藏者: