• WDHHIT
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-08-14 09:21
    上传日期
基于MATLAB实现viterbi编译码过程
viterbi.zip
  • chap3_ex04_qpsk_viterbi_soft.m
    2.3KB
  • chap3_ex03_qpsk_viterbi.m
    1.6KB
内容介绍
function [ber, bits]=chap3_ex04_qpsk_viterbi_soft(EbNo, maxNumErrs, maxNumBits) %% Initializations persistent Modulator AWGN DeModulator BitError ConvEncoder Viterbi Quantizer if isempty(Modulator) Modulator = comm.QPSKModulator('BitInput',true); AWGN = comm.AWGNChannel; DeModulator = comm.QPSKDemodulator('BitOutput',true,... 'DecisionMethod','Log-likelihood ratio',... 'VarianceSource', 'Input port'); BitError = comm.ErrorRate; ConvEncoder=comm.ConvolutionalEncoder(... 'TerminationMethod','Terminated'); Viterbi=comm.ViterbiDecoder(... 'InputFormat','Soft',... 'SoftInputWordLength', 4,... 'OutputDataType', 'double',... 'TerminationMethod','Terminated'); Quantizer=dsp.ScalarQuantizerEncoder(... 'Partitioning', 'Unbounded',... 'BoundaryPoints', -7:7,... 'OutputIndexDataType','uint8'); end %% Constants FRM=2048; M=4; k=log2(M); codeRate=1/2; snr = EbNo + 10*log10(k) + 10*log10(codeRate); noise_var = 10.^(-snr/10); AWGN.EbNo=snr; %% Processsing loop modeling transmitter, channel model and receiver numErrs = 0; numBits = 0;results=zeros(3,1); while ((numErrs < maxNumErrs) && (numBits < maxNumBits)) % Transmitter u = randi([0 1], FRM,1); % Random bits generator encoded = ConvEncoder.step(u); % Convolutional encoder mod_sig = Modulator.step(encoded); % QPSK Modulator % Channel rx_sig = AWGN.step(mod_sig); % AWGN channel % Receiver demod = DeModulator.step(rx_sig, noise_var); % Soft-decision QPSK Demodulator llr = Quantizer.step(-demod); % Quantize Log-Likelihood Ratios decoded = Viterbi.step(llr); % Viterbi decoder with LLRs y = decoded(1:FRM); % Compute output bits results = BitError.step(u, y); % Update BER numErrs = results(2); numBits = results(3); end %% Clean up & collect results ber = results(1); bits= results(3); reset(BitError);
评论
    相关推荐
    • juanjimabiancheng.rar
      matlab卷积码编译程序,有详细的中文注释,希望对你有所帮助。
    • viterbi_encode_decode.rar
      经过验证的维特比编译码MATLAB程序,每行代码都有详细的备注
    • matlb_viterbi.zip
      (2,1,2)卷积链路仿真,采用viterbi译码算法,采用m语言编写,并非直接调用matlab内部函数,有助于对viterbi译码算法的理解
    • GSM-05.03.rar
      在高斯干扰和突发干扰下,对TCHFS信道作信噪误码性能的仿真
    • dsp.rar
      卷积维特比的编码及译码原理,MATLAB的仿真图。
    • 通信系统设计.zip
      A部分通过Matlab仿真对Viterbi译码性能进行研究,重点分析比较了不同码率、不同约束长度以及不同回溯长度对Viterbi译码性能的... B部分用Matlab实现了基本的信道编译码、调制解调通信模块,学习并实现了MIMO处理技术。
    • 卷积编码译码 维特比译码
      基于matlab的卷积码编码程序 可直接运行 并有维特比译码程序 可以实现信道卷积码编译码过程
    • LTE仿真程序
      m本代码是matlab代码 LTE的程序
    • USB-COM(HL340).rar
      usb转串口,找了很久才找到,现在别的地方很难下到,要不用不了,我这个可以用 HL340D 的
    • NAND FLASH的读写程序.rar
      Nand flash 读写程序 C语言代码,可以给U盘开发者参考 可以读写三星各种型号的Nand flash芯片