一次弄懂香浓极限的含义(几种信噪比含义探讨)
信噪比、奈奎斯特采样定理、香浓定理定理与信噪比之间的关系的探讨
1 采样定理
1.1 奈奎斯特采样1
问:LTE中为什么使用30.72MHz的采样率去采样实际带宽为18MHz的信号?是否满足于“奈奎斯特采样定理”?
满足。
下图给出了白噪声信号的功率谱示意图,观察到带宽为W的白噪声在频谱图上占据了2W的宽度。
由于实信号具有共轭对称的频谱,从信息的角度来看,其负频谱部分是冗余的,将实信号的负频谱部分去掉,只保留正频谱部分的信号,其频谱不存在共轭对称性,所对应的时域信号应为复信号。复数信号处理的好处有:对于数字通信,在基带处理带通信号,可以使有效带宽减少一半,进而对于AD 的采样率要求,FFT的处理能力等都有改善。
解析信号的实部和虚部是正交的,是希尔伯特变换对,实部就是原信号或者说是实际存在的信号。由此我们可以利用希尔伯特变换得到解析信号。在雷达信号中,对于中频信号需要变换成零中频的复信号,称为视频信号(不一定解析,但是实部和虚部是正交的),有正交变换法,希尔伯特变换法,多相滤波法,插值法等多种方法,可以根据具体要求选取适当的方法。这些方法在雷达原理、软件无线电、通信理论等书籍和文献中都能找到很多。用复信号表示信号,构造解析信号减少一半频带是一个优点;用来表示实信号时,运算简便也是一个很重要的优点。2
另外,实际表示复数变量使用实部和虚部两个分量。复信号也一样,必须用实部和虚部两路信号来表示它,两路信号传输会带来麻烦,实际信号的传输总是用实信号,而在信号处理中则用复信号。3
信号处理引入复信号的原因只是一个——方便数学处理。实际信号不存在复信号,只存在实信号,将复信号按照数学规律叠加即可 得到实信号。
问:信号处理为什么引入复信号?4
对复数信号进行采样需要同时进行I、Q两路采样,但是这两路采样是相关的(相位相差pi/2),其中I路信号对应复信号的实部,即实际信号,Q信号对应复信号的虚部,引入Q信号即可进行复数计算处理。
复数信号与实数信号的关系如下:
coskwt=(exp(jkwt)+exp(−jkwt))/2;cos kwt = (exp(jkwt)+exp(-jkwt))/2 ; coskwt=(exp(jkwt)+exp(−jkwt))/2;
sinkwt=(exp(jkwt)−exp(−jkwt))/2j;sin kwt = (exp(jkwt)-exp(-jkwt))/2j ; sinkwt=(exp(jkwt)−exp(−jkwt))/2j;
a*cos kwt
与b*sin kwt
对应的exp(jkwt)与exp(-jkwt)的系数分别为(a/2+b/2j)、(a/2-b/2j),因此复信号的幅相系数是双边频谱(共轭对称)。复信号80M的带宽,对应的实际信号带宽只有40M。而且,要从复信号的频谱中提取实际信号的频谱(幅相),也需要进行一定的计算转换。对复信号进行采样需要满足 Fs>B,而对实信号进行采样需要满足Fs>2Fmax。(这个说法不太准确)
问:对I、Q信号两路进行采样,是不是采样一次相当于采样两次?
答:并非如此,I、Q信号是相参的,采样了I信号即能计算出相应的Q信号。但是这是建立在I路采样充分的基础上的(即Fs>2*Fmax)
,如果I路采样不充分,那么Q路的采样信号可以补充这种采样不充分。(那么,I、Q路同时采样只需要Fs>Fmax,就可以了吗?这一点需要进一步分析)
1.2 SNR与EbN0与香浓极限的推导
这一小节探讨香浓极限的计算过程。第一步给出香浓极限的结论。
信道容量为:
C=12log2(1+SN)C=\frac{1}{2} \log _{2}\left(1+\frac{S}{N}\right) C=21log2(1+NS)
由于信道的带宽为 B,所以如果要信号带宽也在 B 以内,则根据乃奎斯特采样定理,采样率必须满足:
Fs≤2BF_{s} \leq 2 B Fs≤2B
所以单位时间内的信道容量为:
Ct=2BC=Blog2(1+SN)C_{t}=2 B C=B \log _{2}\left(1+\frac{S}{N}\right) Ct=2BC=Blog2(1+NS)
对于AWGN信道,先推导出S/N与Eb/N0之间的关系:
SN=EbTbN02⋅2B=EbN0⋅RbB\frac{S}{N}=\frac{\frac{E_{b}}{T_{b}}}{\frac{N_{0}}{2} \cdot 2 B}=\frac{E_{b}}{N_{0}} \cdot \frac{R_{b}}{B} NS=2N0⋅2BTbEb=N0Eb⋅BRb
带入得到:
CB=log2(1+EbN0⋅RbB)\frac{C}{B}=\log _{2}\left(1+\frac{E_{b}}{N_{0}} \cdot \frac{R_{b}}{B}\right) BC=log2(1+N0Eb⋅BRb)
上图中的RbR_bRb可以表示成为Rb=fs∗CodeRate∗ModeR_b = fs*CodeRate*ModeRb=fs∗CodeRate∗Mode。假定R=CodeRate∗ModeR = CodeRate*ModeR=CodeRate∗Mode,那么有如下结果:
SN=2REbN0\frac{S}{N}=2 R \frac{E_{b}}{N_{0}}NS=2RN0Eb
因此我们知道AWGN波形信道容量为:
C=12log2(1+SN)=log2(1+2REbN0)\begin{aligned} C &=\frac{1}{2} \log _{2}\left(1+\frac{S}{N}\right) \\ &=\log _{2}\left(1+\frac{2 R E_{b}}{N_{0}}\right) \end{aligned} C=21log2(1+NS)=log2(1+N02REb)
如果C=R为常数,只需要求解上述方程,可得:
EbN0=22R−12R\frac{E_{b}}{N_{0}}=\frac{2^{2 R}-1}{2 R}N0Eb=2R22R−1
这个结论与通信之美中的结论是一致的。这个结论满足于没有调制只有编码的条件下,但是明显有个问题就是不满足信噪比之间的转换关系(EsN0于EbN0之间的关系)。究竟是哪里出了问题?
IMPORTANT
有前辈曾对我说BPSK调制有3dB的增益,然而BPSK其实相当于只有编码没有调制。如果加上3dB的增益,那么符合这里的结果。
对于纯编码,R代表码率。这里传输的实际上是实数信号,(fs=2B
)所以信噪比的关系如此。
EbN0=22R−12R\frac{E_{b}}{N_{0}}=\frac{2^{2 R}-1}{2 R}N0Eb=2R22R−1
SN=2REbN0\frac{S}{N}=2 R \frac{E_{b}}{N_{0}}NS=2RN0Eb
对于QPSK或者其他高阶的调制来说,有如下结论。这里传输的实际上是复数信号(fs = B),所以信噪比的关系是这样。而在通信链路中,均采用这样的方式去计算EbN0与EsN0之间的关系。
EbN0=2R−1R\frac{E_{b}}{N_{0}}=\frac{2^{R}-1}{R}N0Eb=R2R−1
SN=REbN0\frac{S}{N}=R \frac{E_{b}}{N_{0}}NS=RN0Eb
其中$R = CodeRate*Mode $。
由此,我们便得到了香浓极限的计算方法。
2 证明过程5
3 仿真结果
3.1 初步结果论证
仿真基于下面的代码。
% EsN0 = -5.50 , EbN0 = -0.73 , error = 25889 , NumBit = 102400 ,pe = 2.528223e-01
% EsN0 = -5.00 , EbN0 = -0.23 , error = 22104 , NumBit = 102400 ,pe = 2.158594e-01
% EsN0 = -4.50 , EbN0 = 0.27 , error = 11904 , NumBit = 102400 ,pe = 1.162500e-01
% EsN0 = -4.00 , EbN0 = 0.77 , error = 719 , NumBit = 102400 ,pe = 7.021484e-03
% EsN0 = -3.50 , EbN0 = 1.27 , error = 0 , NumBit = 1024000 ,pe = 0
% EsN0 = -3.00 , EbN0 = 1.77 , error = 0 , NumBit = 1024000 ,pe = 0
% EsN0 = -2.50 , EbN0 = 2.27 , error = 0 , NumBit = 1024000 ,pe = 0
% EsN0 = -2.00 , EbN0 = 2.77 , error = 0 , NumBit = 1024000 ,pe = 0
仿真结果表明,在AWGN 信道下,码率为1/2 的Turbo 码在达到误比特率(BER) ≤ 10−5时,Eb/N0仅为约0.7dB (这种情况下达到信道容量的理想Eb/N0值为0db),远远超过了其他的编码方式,一时在信息和编码理论界引起了轰动。6
这里结果与我们的仿真结果是很接近的,有理由相信计算方式是正确的。
3.2 进一步结果论证
4 示例代码
下面代码提供turbo编解码模版,未添加符号匹配和调制等内容。
clear
close all
rng('default')%% 系统参数
SlotBitLen = 1024;
EsN0_dBlist = [-3.5:0.5:0]-2;
% EsN0_dBlist = 100 ;
CodeRate = 1/3; % 码率
EbN0 = EsN0_dBlist - 10*log10( 1 * CodeRate) ; % 类似于BPSK调制必须有3dB的相差
Ns = 4;
sr = 8e6;
fs = Ns*sr;
M = 1;%% 编码参数
nloop_up = 1e3;
nloop_down = 1e2;
error_up = 200;
[f1, f2] = getf1f2(SlotBitLen);
InterTbl = zeros(1,SlotBitLen);
for ii = 0:SlotBitLen-1InterTbl(ii+1) = mod(f1*ii+f2*ii^2,SlotBitLen);
end
hTEnc = comm.TurboEncoder(poly2trellis(4, [13 15], 13), InterTbl + 1); % 简化方式
hTDec = comm.TurboDecoder(poly2trellis(4, [13 15], 13), InterTbl + 1, 10,'Algorithm','Max'); % 简化方式%%
tic;
for EsN0_index = 1:length(EsN0_dBlist)%% 统计errcod = 0; errmod = 0;lencod = 0; lenmod = 0;expnumber = 0;EsN0 = EsN0_dBlist(EsN0_index);snr = EsN0 - 10*log10(Ns);while( (errcod <error_up)&&(expnumber<nloop_up)||(expnumber<nloop_down) ) expnumber = expnumber + 1;% 生成 bitTCSrc = randi([0 1],1,SlotBitLen);% 编码TurboCodeOut = step(hTEnc, TCSrc.').';ModeBitIn = TurboCodeOut;Tx = 1-ModeBitIn*2;Tx = Tx.*(1+1j)/sqrt(2);% 加噪
% Rx = Tx + wgn(1,length(Tx),-EsN0);Rx = awgn(Tx,EsN0,'measured');TCDecSoftInfo = imag(Rx)+real(Rx);% 解码TCDDecOut = step(hTDec, -TCDecSoftInfo.').';% 统计误码errcod = errcod + biterr(TCSrc,TCDDecOut);errmod = errmod + biterr(TCDecSoftInfo>0,TurboCodeOut);lencod = lencod + SlotBitLen;lenmod = lenmod + length(TurboCodeOut);endfprintf('%% EsN0 = %4.2f , EbN0 = %4.2f , error = %4.0f , NumBit = %4.0f ,pe = %d\n',...EsN0 ,EbN0(EsN0_index), errcod ,lencod, errcod/lencod);err_rate_cod(EsN0_index ) = errcod/lencod; % 统计解码误码率err_rate_mod(EsN0_index ) = 1-errmod/lenmod; % 统计解调误码率
end
toc
信号采样、调制与搬移—对奈奎斯特定理的讨论 ↩︎
https://blog.csdn.net/u012923751/article/details/79643762?utm_source=blogxgwz5 ↩︎
《通信信号处理》张贤达 国防工业出版社 ↩︎
https://www.cnblogs.com/lylx0617/p/3776217.html ↩︎
参考—通信之美 ↩︎
https://baike.baidu.com/item/Turbo%E7%A0%81/7518982?fr=aladdin ↩︎
一次弄懂香浓极限的含义(几种信噪比含义探讨)相关推荐
- controller 用 map 接收值_一文弄懂apply、map和applymap三种函数的区别
CDA数据分析师 出品 在日常处理数据的过程中,会经常遇到这样的情况,对一个DataFrame进行逐行.逐列或者逐元素的操作,很多小伙伴也知道需要用到apply.map或者applymap,但是具体什 ...
- CAD2010 为了保护_一文弄懂,锂电池的充电电路,以及它的保护电路方案设计
原标题:一文弄懂,锂电池的充电电路,以及它的保护电路方案设计 锂电池特性 首先,芯片哥问一句简单的问题,为什么很多电池都是锂电池? 锂电池,工程师对它都不会感到陌生.在电子产品项目开发的过程中,尤其是 ...
- 彻底弄懂Python中的GIL锁
彻底弄懂Python中的GIL锁 转载:https://blog.csdn.net/yushuaigee/article/details/86537474 刚学习python时,我关注了许多介绍pyt ...
- 职称计算机证是继续教育的内容吗,豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~...
原标题:豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~ 大家好,我是豆腐网王老师,专注于南京工程师职称评审政策解读,关注我,让您轻松面对职称评审,少走弯路!!! 南京中高级职称申报已有段时间, ...
- 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)
<繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...
- 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述
<繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...
- 一文让你完全弄懂逻辑回归和分类问题实战《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(上)(DL笔记整理系列)
好吧,只好拆分为上下两篇发布了>_< 终于肝出来了,今天就是除夕夜了,祝大家新快乐!^q^ <繁凡的深度学习笔记>第 3 章 分类问题与信息论基础 (上)(逻辑回归.Softm ...
- 看完弄懂,明年至少加 5K
看完弄懂,明年至少加 5K
- java安装好了打不开机_劝告大家!早餐打豆浆,黄豆泡好直接打不对,教你1招,豆浆香浓更丝滑...
" 导语:打豆浆泡好直接打?难怪豆浆没有早餐店的好喝,教你正确做法 适当吃豆制品对于大人小孩都有好处,豆浆作为其中的一种,更是我家早餐常会喝的,香浓顺滑的豆浆,搭配油条或者是饼,美好的早餐便 ...
最新文章
- DNS Serv管理与维护
- jBPM4.4 no jBPM DB schema:
- 步入2021,大热的GNN会在哪些应用领域大展拳脚呢?
- Job make U funck Uself!!!
- php 通讯协议,通讯协议作用
- C语言和C++中如何编写交换两个整形变量值的函数
- python利用经纬度画地图_使用Python实现画一个中国地图
- 二维码中间嵌入logo
- App消息推送的原理
- 博尔顿大学介绍让学生们在9月重返校园的创新措施
- 第十二天内容《基础交换十二》
- Android程序员的十大转型之路
- ipad iphone开发_如何在iPhone或iPad上使用Adobe Flash
- 右键-打开方式里没有EXCEL,找到路径也打不开的解决方法
- 利用非靶向和靶向代谢组学鉴定鸡肉中肠炎沙门氏菌的代谢标志物
- CISSP考试的难点到底在哪里
- vue单应用在ios系统中实现微信分享功能
- VS中的工程文件组织
- LTE(4G) - NR(5G) NSA Transfer (RRC UL Information transfer)
- 虚拟光驱软件 daemon tools lite 4.4 下载 2011最新版