MATLAB做RS碼


里德——索羅蒙碼(RS碼)是一類具有很強糾錯能力的多進制BCH碼。
RS碼是線性分組碼中的一種。相比其他線性分組碼而言,在同樣的編碼效率下,RS碼的糾錯能力是特別強的,特別在短的中等碼長下,其性能接近於理論值。
RS(n,k)碼可以由m、n、k3個參數表示,其中m表示碼元符號取自域\(GF(2^n)\),n為碼字長度,k為信息段長度。

%本例中輸入信息分為km比特一組,每組k個符號
%每個符號由m個比特組成


clear all;
m=4;%每個符號比特數
n=10;%碼字長度
k=8;%每組符號數
t=(n-k)/2;%碼的糾正能力
nw=1; %處理的碼字個數
x=[0,1,2,3,4,5,6,7]; %輸入的字符
msgw=gf(x,4);
c=rsenc(msgw,n,k);%RS編碼
%—————信道部分———————————
cnoisy=c;
%—————信道部分———————————
%RS譯碼
[dc,nerrs,corrcode]= rsdec(cnoisy,n,k);
isequal(dc,msgw) & isequal(corrcode,c)
disp(['nerrs=',num2str(nerrs)]);

吐個槽,《無線通信的MATLAB和FPGA實現》這里給的代碼太難看了,我給改成了上面這個樣子。
感興趣可以查函數文檔進一步學習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM