示例#1
0
  void TurboCode::SeparateReceivedSignal(const itpp::cvec &receivedSignal, itpp::cvec *in1, itpp::cvec *in2) const
  {
    int block = interleaver_.size();
    
    itpp::cvec r(block), parity1(block), parity2(block);

    for (int i = 0; i < block; ++i){
      r[i]       = receivedSignal[3*i];
      parity1[i] = receivedSignal[3*i + 1];
      parity2[i] = receivedSignal[3*i + 2];
    } // for i
    
    itpp::cvec interleaved_r = Interleave(r, interleaver_);
    
    in1->set_size(2*block);
    in2->set_size(2*block);
    for (int i = 0; i < block; ++i){
      (*in1)[2*i]     = r[i];
      (*in1)[2*i + 1] = parity1[i];

      (*in2)[2*i]     = interleaved_r[i];
      (*in2)[2*i + 1] = parity2[i];
    } // for i
    
  }
示例#2
0
文件: parity.cpp 项目: mmnair/Sandbox
int main (int argc, char *argv[])
{
	if (argc >= 2)
	{
		int num = atoi(argv[1]);
		std::cout << "Num is " << num << " and parity is "
			<< parity1(num) << "." << std::endl;
	}
}