gnuradio中接收端的信道滤波

在benchmark_rx中在接收端使用了FFT低通滤波器来得到感兴趣的频段,以滤除带外噪声,然而机器运行benchmark_rx时总是出现“段错误”,究其原因就是使用了信道滤波,当把信道滤波去掉之后运行起来就没有什么问题了。然而滤除带外噪声也是有必要的,所以对信道滤波部分进行了研究。

在软件无线电中,信道滤波实际就是低通滤波器,在benchmark_rx中是这样使用的:在filter.firdes.low_pass()中设定了滤波器的抽头系数,然后使用fft_filter()实现滤波器。在gnuradio-companion中按照benchmark中的方式进行了试验,同样也会出现不能运行的情况。

换一种思路,直接设计低通滤波器low_pass_filter,并使用相同的参数,实验结果比较理想,与benchmark的效果相差无几:

最后说一下带宽的确定。

先补充几个概念:

信息速率:Rb,单位时间内传输的二进制比特数。单位是比特率,用bit/s表示。
符号率:Rs,单位时间内传输的调制符号数。用symbol/s表示。
信息速率和符号率的单位不同,但在二进制中它们的数值相同。在M 进制调制中,信息速率Rb 和符号率Rs 之间关系为:
Rb = Rs log2M

在gnuradio中还涉及到一个sample rate,采样点速率,以升余弦脉冲成型为例,表示的就是脉冲波形采样点的速率。与符号速率的关系由samples per symbol决定。
奈奎斯特准则:数字波形在无噪声线性信道上传输时的无失真条件。其中奈奎斯特第一准则是抽样点无失真准则,或无码间串扰准则,是关于接收机不产生码间串扰的接受脉冲形状问题。对于基带信号,要达到无码间串扰,系统传输函数H(f)是单边带宽为1/2T的矩形函数,其时域波形为h(t0=sinc(t/T)。
理想奈奎斯特滤波系统的传输函数形状为矩形,其脉冲响应为无限长,显然在物理上是无法实现的,只能近似。奈奎斯特滤波器的频率传输函数可以表示为矩形函数和任意一个实偶对称函数的卷积。奈奎斯特脉冲可以表示为sin(t/T)函数与另一个时间函数的乘积,其中,常用的是升余弦成形滤波器。
滚降系数:实际带宽-理想带宽/理想带宽=滚降系数,α的范围为0.15~0.5。也称滚降因子,由于理想的滤波器具有矩形响应曲线,而实际上是达不到的,因此利用滚降因子在通带和阻带之间产生一个过渡带,滚降因子决定该过渡带的垂直程度,或者说与矩形响应的近似程度。

在无码间串扰条件下,所需带宽W与码间传输速率Rs的关系为:
W = (1+α)Rs/2   α为滚降系数。
当α=0时,就是理想奈奎斯特滤波器,此时的传输带宽是理想奈奎斯特滤波器的最小带宽。
当α>0时,Rs<=2W。
对于带通调制信号,例如幅移键控ASK、频移键控 PSK 和正交幅度调制 QAM,需要的传输带宽是相应基带信号的2倍,那么所需的双边带带宽BW 和码元传输速率Rs的关系为:
W = (1+α)Rs

实验所使用的调制方式为QPSK,sample rate设置为100k,sps设置为2,滚降因子设置为0.35,所以所需带宽为(1+0.35)*50e3/2=33.75kHz,在实际中可略大于计算值。

时间: 2024-10-14 07:25:00

gnuradio中接收端的信道滤波的相关文章

android开发中smd流信道和包信道区别

问题描述 android开发中smd流信道和包信道区别 最近在看android开发smd的一些东西,里面提到了流信道(smd_stream)和包信道(smd_packet),但是不明白这两个信道有什么区别,个人理解一个是用于数据流传递一个是用于数据包传递,那请问数据流和数据包有什么区别呢?

GSM中时隙、信道、突发序列、帧的解释

刚从论坛中看到有人问GSM中时隙.信道.突发序列.帧知识.今天我们数字通信正好上到这一块,我就根据我知道的和网上搜索的回答! 1.时分多路复用技术 FDMA:频分多址 TDMA:时分多址 CDMA:码分多址 为了提高通信道的利用率,使若干彼此独立信号沿同一信道传输,而不相互干扰的通信方式 多址技术介绍 目前应用的多址技术主要有三种: (1)频分多址(FDMA)技术:在传统的无线电广播中,均采用频分多址(FDMA方式,每个广播信道都有一个频点,如果你要收听某一广播信道,则必须把你的收音机调谐到这一

通过gr-modtool在gnuradio中编写自己的C++模块

虽然gnuradio给我们提供了近百种常用的功能模块block,但是在我们自己的系统设计中,需要不同的模块完成特定的功能,这样就需要我们自己来编写C++源代码,生成新的block以供系统调用.如果源代码.编译文件都要自己编写,需要很强的专业知识.利用模板写模块gnuradio3.7用的都是gr_modtool 在终端进入主文件夹,输入: $gr_modtool newmod howto(这里以howto为例),主文件夹下就生成一个gr-howto文件夹 接下来就是添加要编写的模块.先进入刚才生成

gnuradio 中USRP收发速率

pick_bitrate.py 中包含了计算发送或者接收数据比特率的函数,(在gnuradio3.7中没有这个文件) 根据以下参数设定来求解的 与AD,DA转换率 converter_rate 插值/抽取率 interp / decim 每符号样值数 samples_per_symbol 每符号比特数 bits_per_symbol 可以举一个例子 加入AD 的采样率为 converter_rate=64M 接收端进行decim=16倍抽取 抽取后的速率为 4M 而假设 samples_per_

gnuradio中把file_sink的二进制文件转换成文本文件

http://www.swigerco.com/gnuradio/plotting.html Plotting Signals Here are a few simple utilities to convert raw datafiles into a format you can read and plot w/ gnuplot. raw2num.c - converts a file of 16 bit shorts into a numerical human readable file

gnuradio中读取vector_sink数据

#!/usr/bin/env python from gnuradio import blocks from gnuradio import gr tb = gr.top_block() src = blocks.vector_source_f([1,2,3,4,5,6]) snk = blocks.vector_sink_f() tb.connect(src, snk) tb.run() print(snk.data())

3G中移动台主呼接入过程中安全问题

摘要 本文对当前3G反向链路呼叫及通话过程中的安全问题做了分析,并分别从MS和BS相互之间的AKA.信令完整性保护和数据保密.入侵检测等进行了讨论.另外,在讨论中适当地将安全与移动性管理相结合,并根据实际应用中的安全问题提出了一些新的设想和解决的方法. 1 前言 第三代移动通信系统是工作在2GHz频段的宽带移动通信系统,它与第二代移动通信系统的区别主要有:全球无隙漫游.支持高达2Mbit/s的多媒体业务等,特别在Internet上有更好更广的服务.而在这其中也会涉及到许多安全方面的隐患,因此有必

在深入学习gnuradio之前你需要知道的

原文网站:http://radioware.nd.edu 在深入学习gnuradio之前你需要知道的 学习GNU Radio需要有一定电脑基础和深入的通信与信号处理知识,本文列举了一些有用的资源,包括教程.网页链接和一些在线教程.本教程的目的是帮助GNU Radio爱好者们为这个令人兴奋的工具做一些准备.  目录 1.对gnuradio有一个清楚的认识 2.为gnuradio编写程序 3.数字信号处理(DSP) 4.通信系统 5.准备好了吗? 相信你已经发现gnuradio中的乐趣,并且已经开始

HEVC算法和体系结构:环路滤波技术

环路滤波(In-Loop Filtering)技术 类似于以往的视频编码标准,HEVC仍采用基于块的混合编码框架,一些失真效应仍然存在,如方块效应.振铃效应.颜色偏差以及图像模糊等等.为了解决这些问题,HEVC中采用了环路滤波技术,它其实是一种用于解码端的后处理滤波技术,主要包括去块滤波(Deblocking Filter,DBF)和样点自适应补偿(Sample Adaptive Offset,SAO).其中,DBF的作用与H.264类似,主要是去除块效应,但是相比于H.264,其决策与滤波过程