信号解码
2024年5月24日大约 2 分钟
目的
使用差分解码器来消除相位歧义,将 Costas 循环后的信号进行解码,恢复原始发送的数据流。
系统架构文件:Qpsk_stage6.grc
步骤与说明
- 在
Costas Loop
之后,使用Constellation Decoder
将信号解码成 0~3 之间的符号。 - 使用差分解码器对符号进行解码。
- 将解码后的符号转换为原始传输的符号 0~3。
- 将最后解码出来的符号与延迟后的原始传输符号进行比较。
系统仿真
补充说明
差分解码器的作用
- 差分解码器通过相邻符号的相位变化来解码信号,避免了绝对相位的不确定性,特别适合处理 PSK 调制信号中的相位歧义问题。
比较接收比特流与输入比特流
- 发送端生成的是打包的字节 (packed byte) ,因此我们需要使用解包比特模块将每个字节解包为 8 个比特。
- 为了便于比较,将比特流转换为浮点数值 0.0 和 1.0,因为
Time Sink
仅接受浮点数和复数。
信号延迟补偿
- 由于接收端中的多个模块和滤波器会引起信号延迟,因此和原始信号比较之前,要先对原始的数据流进行同样的延迟补偿。
- 调整延迟值,直到接收信号和发送信号完全同步。
练习 7
- 在上述仿真中,找到合适的延迟值,让接收信号和发送信号完全同步。
- GNU Radio 在 3.10.9.0 版之后,建议使用
Symbol_Sync
来取代Polyphase_Clock_Sync
,新版的解码架构可 点此下载。请使用新版进行仿真,并调集成适的延迟值,让接收信号和发送信号完全同步。