首页 理论教育 脉冲调制的升余弦BPSK信号发生器设计

脉冲调制的升余弦BPSK信号发生器设计

时间:2023-06-23 理论教育 版权反馈
【摘要】:第2段Matlab仿真代码是一个脉冲调制的升余弦BPSK信号发生器,相关的代码见程序清单16.2。这个长度称为符号周期。第15行:使用Matlab rcosfir函数来设计升余弦滤波器。第28、29行:这些代码用于执行脉冲调制,IM就是一个FIR滤波器,其输入是一个或者多个脉冲,后面是大量零值。这个延时可以解释为什么第一个BPSK信号峰值发生在第一个信息脉冲后60个采样处。图16.15 脉冲调制的BPSK仿真输出的例子即使幅度归一化因子为30000,输出端系统的仿真结果也接近±45000。

脉冲调制的升余弦BPSK信号发生器设计

第2段Matlab仿真代码是一个脉冲调制的升余弦BPSK信号发生器,相关的代码见程序清单16.2。注意,本振(LO)频率在FS/4。

程序清单16.2:脉冲调制的升余弦BPSK信号发生器

978-7-111-33881-9-Part02-147.jpg

978-7-111-33881-9-Part02-148.jpg

程序清单16.2的解释如下。

(1)第2行:定义一个系统的采样频率为48kHz。这个采样频率和DSK音频编码速率是一致的。

(2)第3行:定义了数据速率为2400bit/s。

(3)第4行:定义一个升余弦滚降因子alpha。

(4)第5行:定义升余弦FIR滤波器的长度。滤波器的长度等于2×符号数+1。这个长度称为符号周期。

(5)第7行:归一化输出信号近似等于16位DAC的最大输出范围。

(6)第8行:定义本振(LO)的输出,关于本振的讨论参见程序清单16-1。

(7)第9行:用计数器变量来确定符号中当前位置。

(8)第15行:使用Matlab rcosfir函数来设计升余弦滤波器。

(9)第19~38行:这些代码用于仿真实时ISR。

(10)第19~25行:当计数器等于1时候产生一个新的数据比特

(11)第28、29行:这些代码用于执行脉冲调制,IM就是一个FIR滤波器,其输入是一个或者多个脉冲,后面是大量零值。在这个仿真中,具有数值30000的单一脉冲后面跟随19个采样值0(一个符号是20个采样)。在后面的部分使用了节省计算资源的一些方法。(www.xing528.com)

(12)第30行:对本振的输出相乘(混频),计算输出的数据数值。cosine变量使用Matlab mod命令来获得,它的序数从1到4。

(13)第33~35行:在符号的终端,计数器变量重置。

(14)第38行:计数器变量在仿真ISR的终端增加1。

图16.15给出了这个仿真例子的输出曲线(持续时间为4ms)。高阶FIR滤波器(120阶)导致较大的群延时(60个采样)。这个延时可以解释为什么第一个BPSK信号峰值发生在第一个信息脉冲后60个采样处。

978-7-111-33881-9-Part02-149.jpg

图16.15 脉冲调制的BPSK仿真输出的例子(这个信号的速率是2400bit/s,滚降因子是α=0.5,载波频率是12kHz)

即使幅度归一化因子为30000,输出端系统的仿真结果也接近±45000。这个数值比起DAC的最大输出数值+32767和-32768要大。这个结果强调了在使用实时的硬件来实现这一算法之前,需要使用Matlab仿真来确定这个归一化因子。仿真时间增加到2 s可以获得足够高的分辨率来估计归一化功率谱,如图16.16所示。

978-7-111-33881-9-Part02-150.jpg

图16.16脉冲调制BPSK的仿真频谱的例子(这个信号的速率是2400bit/s,滚降因子是α=0.5,载波频率是12kHz)

由于频谱紧凑,升余弦脉冲形状符号显得非常重要。在计算之前比较了升余弦信号和矩形信号的两个陷波点间的带宽,分别为3600Hz和4800Hz。综上所述有:

(1)升余弦信号具有更紧凑的频谱(更窄的有效带宽);

(2)升余弦信号具有更小的陷波点间带宽(更高的频谱效率);

(3)升余弦信号非常容易产生;

(4)比起矩形脉冲,对数字通信接收机而言,升余弦信号的接收并恢复成原始信息更为复杂。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈