💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
以下是关于在高斯环境中使用16-QAM调制时,通过测量大量SNR值对应的BER(误码率)的研究文档。为了确保结果的准确性,每个BER测量都基于100个误差进行计算。
研究文档
一、研究背景
在高斯白噪声(AWGN)环境中,16-QAM(Quadrature Amplitude Modulation,正交幅度调制)是一种常用的调制技术。它通过将输入的数字数据分成4位一组,每组数据映射到一个4x4的星座图中的信号点,从而实现调制。每个信号点代表一个特定的幅度和相位组合,通过正交调制将两个载波信号叠加在一起,形成调制后的信号。
二、理论基础
-
SNR与BER的关系:
- 信噪比(SNR)是衡量信号强度与噪声强度之间关系的指标。
- 误码率(BER)是指在接收信号中出现的错误比特数占总比特数的比例。
- 在高斯白噪声信道中,16-QAM的理论误码率可以通过公式推导得到。误符号率(SER)的公式为:SER = 2 * (1 - 1/sqrt(M)) * Q(sqrt(3 * SNR / (M - 1))),其中M为调制阶数(对于16-QAM,M=16),Q函数为高斯误差函数。
- 误比特率(BER)可以表示为:BER = SER / log2(M)。
-
16-QAM的格雷映射:
- 格雷映射是一种特殊的映射方式,它使得相邻的符号在星座图上只有一位比特不同,从而减少了误码传播的可能性。
三、实验方法
-
生成随机二进制序列:
- 为了模拟实际的通信过程,需要生成大量的随机二进制序列作为输入数据。
-
16-QAM调制:
- 使用MATLAB等仿真工具,将生成的二进制序列按照格雷映射规则映射到16-QAM的星座图上,得到调制后的信号。
-
添加高斯白噪声:
- 在调制后的信号上添加不同强度的高斯白噪声,以模拟不同的SNR条件。
-
16-QAM解调:
- 在接收端,对接收到的信号进行解调,将其映射回原始的二进制序列。
-
计算BER:
- 对于每个SNR值,重复上述过程100次,并记录每次的误码数。然后计算平均BER作为该SNR值下的BER测量结果。
四、实验结果与分析
-
数据记录:
- 记录下每个SNR值对应的BER测量结果,以及每个测量过程中的误码数。
-
绘制曲线:
- 使用MATLAB等绘图工具,将SNR值与对应的BER绘制成曲线图。这有助于直观地观察SNR与BER之间的关系。
-
结果分析:
- 分析曲线图,可以发现随着SNR的增加,BER逐渐降低。这符合理论预期,因为SNR越高,信号与噪声的比值越大,信号更容易被正确解码。
- 通过比较不同SNR值下的BER测量结果,可以评估16-QAM调制在高斯白噪声环境中的性能表现。
五、结论
本研究通过在高斯环境中使用16-QAM调制,并测量大量SNR值对应的BER,得到了以下结论:
- 随着SNR的增加,BER逐渐降低。
- 16-QAM调制在高斯白噪声环境中表现出良好的性能。
- 通过优化调制和解调过程,以及采用更先进的纠错编码技术,可以进一步提高16-QAM调制的性能。
📚2 运行结果
部分代码:
% Frame Length 'Should be multiple of four or else padding is needed'
bit_count = 4*1000;
% Range of SNR over which to simulate
Eb_No = -6: 1: 10;
% Convert Eb/No values to channel SNR
% Consult BERNARD SKLAR'S book 'Digital Communications, Principles
% and Applications'.
SNR = Eb_No + 10*log10(4);
% Start the main calculation loop
for aa = 1: 1: length(SNR)
% Initiate variables
T_Errors = 0;
T_bits = 0;
% Keep going until you get 100 errors
while T_Errors < 100
% Generate some random bits
uncoded_bits = round(rand(1,bit_count));
% Split the stream into 4 substreams
B = reshape(uncoded_bits,4,length(uncoded_bits)/4);
B1 = B(1,:);
B2 = B(2,:);
B3 = B(3,:);
B4 = B(4,:);
% 16-QAM modulator
% normalizing factor
a = sqrt(1/10);
% bit mapping
tx = a*(-2*(B3-0.5).*(3-2*B4)-j*2*(B1-0.5).*(3-2*B2));
% Noise variance
N0 = 1/10^(SNR(aa)/10);
% Send over Gaussian Link to the receiver
rx = tx + sqrt(N0/2)*(randn(1,length(tx))+i*randn(1,length(tx)));
%---------------------------------------------------------------
% 16-QAM demodulator at the Receiver
a = 1/sqrt(10);
B5 = imag(rx)<0;
B6 = (imag(rx)<2*a) & (imag(rx)>-2*a);
B7 = real(rx)<0;
B8 = (real(rx)<2*a) & (real(rx)>-2*a);
% Merge into single stream again
temp = [B5;B6;B7;B8];
B_hat = reshape(temp,1,4*length(temp));
% Calculate Bit Errors
diff = uncoded_bits - B_hat ;
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
[1]高欢芹,酆广增,朱琦.AQAM系统最佳信噪比门限值的研究及其在IEEE802.16e中的应用[J].电子学报, 2009(7):5.
[2]刘善琪,李永兵,田会全,等.影响b值计算误差的MonteCarlo实验研究[J].地震, 2013, 33(4):10.
[3]于风云,张平.QAM调制与解调的全数字实现[J].现代电子技术, 2005, 28(3):3.
🌈4 Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取