Changeset 5463
- Timestamp:
- 10/20/07 21:33:18 (6 years ago)
- Location:
- experimental/components/SymbolSyncPoly/branches/SymbolSyncPoly-metadata/src
- Files:
-
- 3 modified
-
FrameSynchronizer.cpp (modified) (1 diff)
-
FrameSynchronizerDSP.cpp (modified) (10 diffs)
-
FrameSynchronizerDSP.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
experimental/components/SymbolSyncPoly/branches/SymbolSyncPoly-metadata/src/FrameSynchronizer.cpp
r5462 r5463 304 304 I_in, Q_in, N_in, num_read, 305 305 I_out, Q_out, buf_len, num_written); 306 //printf("fs cv = %f\n", cv/(2*PI)); 306 307 307 308 DEBUG(7, FrameSynchronizer, "Emptying port buffer...") -
experimental/components/SymbolSyncPoly/branches/SymbolSyncPoly-metadata/src/FrameSynchronizerDSP.cpp
r5462 r5463 51 51 q_hat_cl = 0.0f; 52 52 q_prime_cl = 0.0f; 53 UpdateCostasLoopFilterCoefficients(0.0 01f);53 UpdateCostasLoopFilterCoefficients(0.02f); 54 54 55 55 #ifdef FS_LOGGING … … 79 79 unsigned int &num_written) 80 80 { 81 unsigned int i; 81 alpha_s = 0.027f; 82 beta_s = 1.02f; 83 84 int i(0); 82 85 short I, Q; 83 86 num_read = 0; … … 85 88 //printf("nco CV = %f\n", cv/(2*PI)); 86 89 87 for (i=0; i<input_length; i++) {90 while ( i < (signed int) input_length ) { 88 91 v++; 89 92 … … 92 95 //I = I_in[i]; 93 96 //Q = Q_in[i]; 97 i++; 94 98 95 99 // push samples into buffer … … 100 104 101 105 // compute costas loop phase error on matched-filter outputs 102 //pd2_cl = GenerateCostasLoopPhaseError(mf_i, mf_q); 103 pd2_cl = GenerateCostasLoopPhaseError(I, Q); 106 ///\todo matched filter output won't work because of delay 107 //pd2_cl = GenerateCostasLoopPhaseError(I, Q); 108 pd2_cl = GenerateCostasLoopPhaseError(mf_i, mf_q); 104 109 pd2_cl /= Ac; 105 110 … … 109 114 // update nco 110 115 UpdateNCO(); 116 //I_out[num_written] = mf_i; 117 //Q_out[num_written] = mf_q; 118 //num_written++; 111 119 112 120 // decimate … … 117 125 Q_out[num_written] = mf_q; 118 126 num_written++; 127 //printf("I = %d, Q = %d\n", mf_i, mf_q); 119 128 120 129 // generate timing error … … 133 142 break; 134 143 case SKIP: 135 i++; 144 v--; 145 //printf("skip\n"); 136 146 lc = SHIFT; 137 147 break; 138 148 case STUFF: 139 i--; 149 v++; 150 //printf("stuff\n"); 140 151 lc = SHIFT; 141 152 break; … … 150 161 r_frame_sync = abs(r); 151 162 std::cout << "PN FRAME SYNC CODE FOUND!!!" << std::endl; 163 std::cout << " r = " << r_frame_sync << std::endl; 152 164 153 165 // check for phase inversion; if so inject pi radians into NCO … … 175 187 176 188 num_read = input_length; 189 return false; 190 } 191 192 // Find frame header 193 bool FrameSynchronizerDSP::ExtractFrameHeader( 194 short * I_in, 195 short * Q_in, 196 unsigned int input_length, 197 unsigned int &num_read, 198 short * I_out, 199 short * Q_out, 200 unsigned int output_length, 201 unsigned int &num_written) 202 { 203 unsigned int i; 204 short I, Q; 205 num_read = 0; 206 num_written = 0; 177 207 return false; 178 208 } -
experimental/components/SymbolSyncPoly/branches/SymbolSyncPoly-metadata/src/FrameSynchronizerDSP.h
r5462 r5463 68 68 short * I_in, 69 69 short * Q_in, 70 unsigned int N_in, 71 unsigned int &num_read); 70 unsigned int input_length, 71 unsigned int &num_read, 72 short * I_out, 73 short * Q_out, 74 unsigned int output_length, 75 unsigned int &num_written); 72 76 73 77 /// \brief Decodes the frame header information … … 139 143 alpha_cl = 2*XI*beta_cl; 140 144 141 //beta_cl /= Ac;142 //alpha_cl /= Ac;145 printf("\n\nbeta_cl = %f\n\n\n", beta_cl); 146 printf("\n\nalpha_cl = %f\n\n\n", alpha_cl); 143 147 148 ///\todo this is necessary because of the delay introduced by the filter 149 beta_cl /= 30.0f; 144 150 }; 145 151