Q1:“似然”概念解析:
知乎上很多大神解释,个人学习总结了一下。”似然”与“概率“两个概念是相对的。
概率:已知概率模型,推测某个事件发生的概率;
似然:根据已得到的数据集合,推测符合的概率模型;
举个例子,下图是根据一组数据画出的概率密度曲线,你觉得这组数据符合什么概率分布?一眼看上去符合高斯分布。
这种推导过程对似然函数求解过程。根据已有的数据,推测该组数据符合的概率模型。
Q2:先验概率和后验概率
先验概率:根据字面记忆,先有的经验,推导事件发生概率;
后验概率:某个事件已发生,推导导致这个事件发生的各种原因的概率大小;
如何LLR概念对应起来呢?
举个不恰当的例子,假设发射机发射一个离散QPSK调制信号,信号经AWGN信道至接收机,采样后得到 r = 0.2 + 0.2i;
QPSK解调的目的,就是推导出发送端发出的原始调制符号,下图四个角上为标准调制信号。经过信道后,信号可能劣化,接收端可能接收到比较差的信号,LLR的目的根据接收到的信号,判断发送端发的是哪个调制信号的可能性大,可能性越大,判定的结果越可靠。LLR推导过程,还是有很多资料的。LLR最终在DSP上实现,是优化的、工程可实现的形式。
以QPSK为例,接收的信号若实部real(r) > 0,D0 = 0,反之 D0 = 1;虚部 imag(r) > 0,D1 = 0 ,反之D1 = 1;
%% Constants clc;clear;close all; FRM=2048; Trellis=poly2trellis(4, [13 15], 13); Indices=randperm(FRM); MaxNumErrs=200;MaxNumBits=1e7; EbNo_vector=0:10;BER_vector=zeros(size(EbNo_vector)); %% Initializations Modulator = comm.QPSKModulator('BitInput',true); AWGN = comm.AWGNChannel; DeModulator = comm.QPSKDemodulator('BitOutput',true,... 'DecisionMethod','Log-likelihood ratio',... 'VarianceSource', 'Input port'); BitError = comm.ErrorRate; TurboEncoder=comm.TurboEncoder(... 'TrellisStructure',Trellis,... 'InterleaverIndices',Indices); TurboDecoder=comm.TurboDecoder(... 'TrellisStructure',Trellis,... 'InterleaverIndices',Indices,... 'NumIterations',6); %% Outer Loop computing Bit-error rate as a function of EbNo % for EbNo = EbNo_vector % snr = EbNo + 10*log10(2); snr = 10; noise_var = 10.^(-snr/10); AWGN.EbNo=snr; numErrs = 0; numBits = 0;results=zeros(3,1); %% Inner loop modeling transmitter, channel model and receiver for each EbNo % while ((numErrs < MaxNumErrs) && (numBits < MaxNumBits)) % Transmitter u = randi([0 1], FRM,1); % Generate random bits % encoded = TurboEncoder.step(u); % Turbo Encoder mod_sig = step(Modulator, u); % QPSK Modulator scatterplot(mod_sig); % Channel rx_sig = step(AWGN, mod_sig); % AWGN channel % rx_sig = awgn(mod_sig,20,'measured'); % Receiver scatterplot(rx_sig); %%%%%% QPSK LLR优化后实现%%%%%%%% len = length(rx_sig); for i=1:len D0 = real(rx_sig(i)); D1 = imag(rx_sig(i)); llr_test(2*i-1:2*i) = [D1 D0]; end llr_test = llr_test.'; llr = DeModulator.step(rx_sig,noise_var); % QPSK Demodulator y = sign(-llr); % y = sign(-llr_test); y(find(y == -1)) = 0; results = BitError.step(u, y); % Update BER numErrs = results(2); numBits = results(3); % end % Compute BER ber = results(1); bits= results(3); %% Clean up & collect results reset(BitError); BER_vector(EbNo+1)=ber; % end
今天的文章 第三章 LLR(对数似然比)知识点补充分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/90390.html