在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,在实际中可略大于计算值。