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

近期下载者

相关文件


收藏者