qpsk的映射过程_FPGA数字信号处理(28)QPSK星座映射与解映射
QPSK星座映射
星座图映射是指按一定规则(PSK或QAM)将输入比特对应到I/Q坐标系中的复数点。复数点越多,则频谱效率越高,抗噪声能力越强。
我们都知道QPSK调制每个符号有2-bits,用4种不同相位的载波分别表示00、01、10和11。QPSK星座映射是指将4种不同相位的载波信号用I路和Q路两条支路表示。有两种映射方式,一种用0、π/2、π、3π/2四个相位,另一种用π/4、3π/4、5π/4、7π/4四个相位。本文采用第二种映射方式,关系如下表:
实现时通常还会做归一化处理,即乘一个系数1/sqrt(2)。输出I支路和Q支路的数据位宽根据系统来设定。经过信道传输后,I/Q支路上的数据都会因各种干扰而发生变化。解映射时要计算每个I+jQ到4个标准星座点之间的距离,判断该数据原本属于哪个星座点,从而恢复原始bit流数据。
对bit流进行星座映射处理主要有两个好处:(1).规范数据格式,根据硬件平台与系统参数选择合适的数据格式;(2).bit数据转换为复数数据,适合于IFFT和FFT的处理。OFDM系统便是星座映射的一个典型应用。
MATLAB设计
使用MATLAB仿真QPSK星座映射和解映射的过程,可以使用MATLAB提供的现成函数pskmod和pskdemod,也可以自己编写。本设计仿真时和第26、27篇中的设计结合,数据流为:原始序列->加扰器->卷积编码->QPSK星座映射->信道->QPSK星座解映射->Viterbi译码->解扰器。与QPSK星座映射相关的核心代码如下:%%% --------- QPSK星座映射 --------- %%%
qpskData = zeros(1,1500);
for i = 1 : 1500 %要归一化
if (codeData(2*(i-1)+1)==0 && codeData(2*(i-1)+2)==0)
qpskData(i) = complex(sqrt(2)/2,sqrt(2)/2); %00 1+j
elseif (codeData(2*(i-1)+1)==1 && codeData(2*(i-1)+2)==0)
qpskData(i) = complex(-sqrt(2)/2,sqrt(2)/2); %10 -1+j
elseif (codeData(2*(i-1)+1)==1 && codeData(2*(i-1)+2)==1)
qpskData(i) = complex(-sqrt(2)/2,-sqrt(2)/2); %11 -1-j
elseif (codeData(2*(i-1)+1)==0 && codeData(2*(i-1)+2)==1)
qpskData(i) = complex(sqrt(2)/2,-sqrt(2)/2); %01 1-j
end
end
上述代码中使用i作为循环控制变量,因此构建复数时使用complex函数完成。与QPSK星座解映射相关的核心代码如下:%%% -------- QPSK星座解映射 -------- %%%
deqpskData_p = zeros(1,1500); %复数形式
deqpskData_s = zeros(1,3000); %bit流形式
a = complex(sqrt(2)/2,sqrt(2)/2); %00
b = complex(-sqrt(2)/2,sqrt(2)/2); %10
c = complex(-sqrt(2)/2,-sqrt(2)/2); %11
d = complex(sqrt(2)/2,-sqrt(2)/2); %01
for i = 1 : 1500
comp1 = receive(i) - a; comp2 = receive(i) - b;
comp3 = receive(i) - c; comp4 = receive(i) - d;
dis1 = abs(comp1); dis2 = abs(comp2); dis3 = abs(comp3); dis4 = abs(comp4);
if (dis1
deqpskData_p(i) = complex(sqrt(2)/2,sqrt(2)/2);
deqpskData_s(2*(i-1)+1:2*(i-1)+2) = [0,0];
elseif (dis2
deqpskData_p(i) = complex(-sqrt(2)/2,sqrt(2)/2);
deqpskData_s(2*(i-1)+1:2*(i-1)+2) = [1,0];
elseif (dis3
deqpskData_p(i) = complex(-sqrt(2)/2,-sqrt(2)/2);
deqpskData_s(2*(i-1)+1:2*(i-1)+2) = [1,1];
elseif (dis4
deqpskData_p(i) = complex(sqrt(2)/2,-sqrt(2)/2);
deqpskData_s(2*(i-1)+1:2*(i-1)+2) = [0,1];
end
end
使用awgn函数为信号添加噪声时要注意Eb/N0、Es/N0和SNR之间的关系。在MATLAB帮助中搜索“AWGN Channel”可以查阅到具体描述,转换公式如下:
使用Scatter绘制复数的散点图。标准QPSK星座图如下:
经过高斯白噪声信道传输后,接收到的信号如下图所示(左图Eb/N0=10dB,右图Eb/N0=4dB)
可以看到当噪声干扰太大时,某些点甚至已经跨越到了其它象限,必然会导致解映射出现错误。但据第27篇中讲述,卷积编译码可以对传输过程中受到的干扰具有一定纠错能力。因此在上面右图的情况下,据程序统计,星座映射与解映射有0.9%的误码率,但编译码、加扰与解扰的误码率为0,仍然可以正确恢复出原始数据。
FPGA设计
稍后补充
qpsk的映射过程_FPGA数字信号处理(28)QPSK星座映射与解映射相关推荐
- 数字信号处理的fpga实现_FPGA数字信号处理:通信类I/Q信号及产生
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...
- 《基于数字信号处理的相干光通信技术》读书笔记chapter II——单载波先进调制格式
文章目录 调制格式概述 光调制器 相位调制器(PM) 马赫-曾德调制器(MZM) 光IQ调制器 电吸收光调制器(EAM) 单载波高阶调制 QPSK实现方式 8PSK实现方式 8QAM实现方式 16QA ...
- 16apsk matlab,与低计算复杂度解映射相结合的16APSK星座优化
摘 要: 提出一种在新的简化的解映射方法下,以星座图上所有信号点距离解映射门限的最小距离的最大化为目标函数的星座图优化方法.仿真比较了在优化设计的星座映射下,传统的解映射算法和所提出的解映射的误码性 ...
- 【数字信号处理】相关函数 ( 卷积与交换性 | 相关函数不具有交换性 | 推导过程 )
文章目录 一.卷积与交换性 1.卷积概念 2.卷积交换律 二.相关函数交换性 一.卷积与交换性 1.卷积概念 对于 线性时不变系统 ( LTI - Linear time-invariant ) 来说 ...
- 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( 线性卷积起点定理推导过程 )
文章目录 一.线性卷积起点定理推导过程 推导 [数字信号处理]线性时不变系统 LTI " 输入 " 与 " 输出 " 之间的关系 ( 线性卷积起点定理 | 左边 ...
- qtcp多用户同时发信息的信号处理_FPGA进行数字信号处理的相关问题有哪些?来看数字信号处理系统架构分析!...
关注并标星大同学吧 每周1次,打卡阅读 快速获取行业最新资讯 经验犹如一盏明灯的光芒 它使早已存在于头脑中 朦胧的东西豁然开朗 全文共3031字,预计阅读6分钟 笔经面经(第22期) 在2000年之后 ...
- 通信数字信号处理基本知识
1.符号能量问题 请问各位大虾,像4QAM,16QAM,32QAM,64QAM调制每符号平均能量怎么求解?我看别人程序时,16QAM得每符号平均能为10,不知道怎么求出来的.我想知道对于这些调制方式, ...
- 语音数字信号处理系统设计(含matlab程序)
目录 1 概述 1.1.设计目的 1.2.设计要求 1.3.功能描述 1.3.1数字语音信号采集 1.3.2时域分析与频谱分析 1.3.3叠加噪声 1.3.4小波去噪 1.3.5数字滤波器处理 1.3 ...
- Digital Signal Processing 数字信号处理
DSP是什么 | 数字信号处理 | 数字信号处理器 | DSP处理器与通用处理器的比较 | Digital Signal Processing 数字信号处理 作为一 ...
最新文章
- 转换时间对象和字符串对象添加时间
- FATFS配置长文件名,为何跟编码转换有关
- 高并发和分布式中的幂等处理
- 计算机知识太多了,计算机基础知识对程序员来说有多重要?
- Java NIO(十六) Files
- github fork别人项目后如何同步更新原项目
- 生物素-磺酸-NHS 酯,119616-38-5,Biotin-Sulfo-NHS ester
- 网页设计课设【登录注册系统及增删改查】
- 【C++】C++基础语法
- Harmonious Graph (并查集 —父亲为最大值)
- 关于PEM, DER, CRT, CER,KEY等各类证书与密钥文件后缀的解释
- 【华为OD统一考试B卷 | 100分】5键键盘(C++ Java JavaScript Python)
- 鼠标点击控制div层展开收缩
- 国之重器 望穿秋水——北邮老师廖建新介绍
- Qt 界面加载卡顿或刷新问题
- RC滤波器:一阶无源、二阶无源、二阶有源
- c罗图片带字经典语言,c罗励志图片文字壁纸 c罗带字图片
- 普中C51烧录时芯片超时可能的原因
- web前端教程分享:常见 React 面试题
- thinkpad R61e 加装 atheros 5424 无线网卡经验谈