⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs_decoder_154a.m

📁 source Matlab traites the UWB
💻 M
字号:
%% function dec_data = rs_decoder_154a(rx_data,interleave_seed)%function dec_data = rs_decoder_154a(rx_data,interleaver_seed)if ~isempty(interleaver_seed)  fprintf('[RS decoder] deinterleaving\n');  rx_data = randdeintrlv(rx_data,interleaver_seed);end% We are in GF(2^6)m = 6;k = 55;n = k+8;% Note: rsgenpoly(n,k) and rsgenpoly(n,k,67) are the sameDATALENGTH = length(rx_data);nblock = ceil(DATALENGTH/378);fprintf('[RS decoder] Number of blocks = %d\n',nblock);dec_data = [];for l = 1:nblock  fprintf('[RS decoder] block = %d, (%d,%d)\n',...          l,1+(l-1)*378,min(l*378,DATALENGTH));  rx_data_block = rx_data(1+(l-1)*378:min(l*378,DATALENGTH));  BLOCKLENGTH = length(rx_data_block);  fprintf('[RS decoder] BLOCKLENGTH = %d\n',BLOCKLENGTH);  % Now, prepare for decoding  if rx_data_block < 378    fprintf('[RS decoder] zero padding\n');    rx_data_block = [zeros(1,378-BLOCKLENGTH) rx_data_block];  end  % Conversion from bit to symbol in GF(2^6)  rx_data_block = permute(reshape(rx_data_block,m,n),[2 1]);  rx_symbols = bi2de(rx_data_block,'left-msb');  % Actually decode  dec_symbols = rsdec(gf(rx_symbols',m),n,k);  % And convert back to bit  dec_symbols = dec_symbols(end-(BLOCKLENGTH/m-8)+1:end);  dec_data_block = de2bi(double(dec_symbols.x),m,'left-msb');  dec_data_block = ...      reshape(permute(dec_data_block,[2 1]),1,size(dec_data_block,1)*m);  dec_data = [dec_data dec_data_block];endreturn;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -