Changeset 9465
- Timestamp:
- 07/22/09 00:13:50 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
ossiedev/branches/hvolos/components/MIMODec/MIMODec.cpp
r9452 r9465 169 169 */ 170 170 171 cx_double r1 ;172 cx_double r2 ;171 cx_double r1,r1b; 172 cx_double r2,r2b; 173 173 cx_mat rx_symbols(((Data_length-NH)/2),1); 174 174 short int j=0; 175 175 //std::cout<<"Decode"<<std::endl; 176 176 std::cout<<"Hdec="<<H; 177 177 178 for (short int i=NH; i<Data_length;i+=4){ 178 179 r1=cx_double((*I_in)[i],(*Q_in)[i]); 180 r1b=cx_double((*I_in)[i+1],(*Q_in)[i+1]); 179 181 r2=cx_double((*I_in)[i+2],(*Q_in)[i+2]); 182 r2b=cx_double((*I_in)[i+3],(*Q_in)[i+3]); 180 183 // std::cout<<((Data_length-NH)/2)<<" i:"<<i<<" j"<<j<<std::endl; 181 184 rx_symbols(j,0)=r1*conj(H(0,0))+conj(r2)*H(0,1); 182 rx_symbols(j+1,0)=r1*conj(H(0,1))-conj(r2)*H(0,0); 185 rx_symbols(j+1,0)=r1*conj(H(0,1))-conj(r2)*H(0,0); 186 rx_symbols(j,0)+=r1b*conj(H(1,0))+conj(r2b)*H(1,1); 187 rx_symbols(j+1,0)+=r1b*conj(H(1,1))-conj(r2b)*H(1,0); 188 183 189 j+=2; 184 190 } 185 191 double scale=1; 186 192 for (short int i=0; i<((Data_length-NH)/2);i++){ 187 I_out[i]=(CORBA::Short)real(rx_symbols(i,0)); 188 Q_out[i]=(CORBA::Short)imag(rx_symbols(i,0)); 193 194 if ( (real(rx_symbols(i,0))>30000)||(imag(rx_symbols(i,0))>30000)) 195 scale=20; 196 else 197 scale=1; 198 199 200 I_out[i]=(CORBA::Short)(real(rx_symbols(i,0))/scale); 201 Q_out[i]=(CORBA::Short)(imag(rx_symbols(i,0))/scale); 189 202 std::cout<<"Symbol"<<rx_symbols(i,0)<<std::endl; 190 203 std::cout<<"I:"<<I_out[i]<<"Q:"<<Q_out[i]<<std::endl;