1.算法仿真效果
matlab2022a仿真结果如下:
2.算法涉及理论知识概要
基于16QAM软解调和LDPC信道编译码的通信链路包括以下主要步骤:
2.1 数据源编码
在数据源编码阶段,输入的二进制数据会被编码为纠错码,以提高数据传输的可靠性。常用的纠错码包括卷积码、LDPC码等。本文将采用LDPC码作为纠错码。
2.2 调制
在调制阶段,编码后的数据将被调制为模拟信号,以便于在传输媒介中传输。常用的调制方式包括PSK、QAM、FSK等。本文将采用16QAM调制方式。
2.3 信道传输
在信道传输阶段,调制后的信号将被传输到接收端。在传输过程中,信号会受到噪声、多径衰落等影响,从而导致信号失真。因此,需要在接收端进行信号处理,以恢复原始信号。本文将采用软解调方式。
2.4 解调
在解调阶段,接收端将对接收到的信号进行解调,以恢复原始信号。常用的解调方式包括硬解调和软解调。本文将采用软解调方式。
2.5 解码
在解码阶段,接收端将对解调后的信号进行解码,以恢复原始数据。解码过程中,需要采用与编码阶段相同的纠错码。本文将采用LDPC码作为纠错码。
3.MATLAB核心程序
rng('shuffle') for ij = 1:length(SNRs) errs = 0; sigma = sqrt(1./(2*10^(SNRs(ij)/10)*R)); for frame = 1:N_Frame if mod(frame,1000)==1 [ij,frame] end %产生信号 Tdats0 = randi([0,1],1,N_bits); Tdats = mod(Tdats0*G,2); %调制 Tmods = modulates(Tdats,K); %经过信道 Rmods = awgn(Tmods,SNRs(ij),'measured'); %解调 Rdats = soft_demodulates(Rmods,K); Rbits = zeros(size(Rdats)); idx = find(Rdats>=0); Rbits(idx) = 1; z_hat = func_Dec(2*Rbits-1,sigma,H,max_iter); x_hat = round(z_hat(size(G,2)+1-size(G,1):size(G,2))); Err1 = sum(Tdats0~=x_hat'); errs = errs + Err1; end ber(ij) = errs/(N_bits*N_Frame); end figure; semilogy(SNRs, ber ,'b-o') grid on; xlabel('SNR(dB)'); ylabel('BER'); if max_iter==15 save R21.mat SNRs ber end if max_iter==30 save R22.mat SNRs ber end
标签:误码率,解调,纠错码,SNRs,ij,LDPC,16QAM,调制 From: https://www.cnblogs.com/51matlab/p/17581908.html