Changeset 4754

Show
Ignore:
Timestamp:
08/20/07 14:10:32 (6 years ago)
Author:
jgaeddert
Message:

adding test scripts to DigitalModem for modulating 16-QAM and 4-PAM

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • experimental/components/DigitalModem/trunk/DigitalModem/atsrc/DigitalModulator_testsuite.h

    r4746 r4754  
    167167 
    168168    void test_Modulate16QAM() { 
     169        char b[64] = {BIT0, BIT0, BIT0, BIT0, 
     170                      BIT0, BIT0, BIT0, BIT1, 
     171                      BIT0, BIT0, BIT1, BIT0, 
     172                      BIT0, BIT0, BIT1, BIT1, 
     173                      BIT0, BIT1, BIT0, BIT0, 
     174                      BIT0, BIT1, BIT0, BIT1, 
     175                      BIT0, BIT1, BIT1, BIT0, 
     176                      BIT0, BIT1, BIT1, BIT1, 
     177                      BIT1, BIT0, BIT0, BIT0, 
     178                      BIT1, BIT0, BIT0, BIT1, 
     179                      BIT1, BIT0, BIT1, BIT0, 
     180                      BIT1, BIT0, BIT1, BIT1, 
     181                      BIT1, BIT1, BIT0, BIT0, 
     182                      BIT1, BIT1, BIT0, BIT1, 
     183                      BIT1, BIT1, BIT1, BIT0, 
     184                      BIT1, BIT1, BIT1, BIT1}; 
     185         
     186        short * I_out = new short[16]; 
     187        short * Q_out = new short[16]; 
     188 
     189        SetModulationScheme( SigProc::QAM16 ); 
     190        ModulateSequence(b, 64, I_out, Q_out); 
     191 
     192        TS_ASSERT_EQUALS( I_out[0], -QAM16_LEVEL_2 ); 
     193        TS_ASSERT_EQUALS( Q_out[0],  QAM16_LEVEL_2 ); 
     194         
     195        TS_ASSERT_EQUALS( I_out[1], -QAM16_LEVEL_2 ); 
     196        TS_ASSERT_EQUALS( Q_out[1],  QAM16_LEVEL_1 ); 
     197         
     198        TS_ASSERT_EQUALS( I_out[2], -QAM16_LEVEL_2 ); 
     199        TS_ASSERT_EQUALS( Q_out[2], -QAM16_LEVEL_2 ); 
     200         
     201        TS_ASSERT_EQUALS( I_out[3], -QAM16_LEVEL_2 ); 
     202        TS_ASSERT_EQUALS( Q_out[3], -QAM16_LEVEL_1 ); 
     203         
     204        TS_ASSERT_EQUALS( I_out[4], -QAM16_LEVEL_1 ); 
     205        TS_ASSERT_EQUALS( Q_out[4],  QAM16_LEVEL_2 ); 
     206         
     207        TS_ASSERT_EQUALS( I_out[5], -QAM16_LEVEL_1 ); 
     208        TS_ASSERT_EQUALS( Q_out[5],  QAM16_LEVEL_1 ); 
     209         
     210        TS_ASSERT_EQUALS( I_out[6], -QAM16_LEVEL_1 ); 
     211        TS_ASSERT_EQUALS( Q_out[6], -QAM16_LEVEL_2 ); 
     212         
     213        TS_ASSERT_EQUALS( I_out[7], -QAM16_LEVEL_1 ); 
     214        TS_ASSERT_EQUALS( Q_out[7], -QAM16_LEVEL_1 ); 
     215         
     216        TS_ASSERT_EQUALS( I_out[8],  QAM16_LEVEL_2 ); 
     217        TS_ASSERT_EQUALS( Q_out[8],  QAM16_LEVEL_2 ); 
     218         
     219        TS_ASSERT_EQUALS( I_out[9],  QAM16_LEVEL_2 ); 
     220        TS_ASSERT_EQUALS( Q_out[9],  QAM16_LEVEL_1 ); 
     221         
     222        TS_ASSERT_EQUALS( I_out[10],  QAM16_LEVEL_2 ); 
     223        TS_ASSERT_EQUALS( Q_out[10], -QAM16_LEVEL_2 ); 
     224         
     225        TS_ASSERT_EQUALS( I_out[11],  QAM16_LEVEL_2 ); 
     226        TS_ASSERT_EQUALS( Q_out[11], -QAM16_LEVEL_1 ); 
     227         
     228        TS_ASSERT_EQUALS( I_out[12],  QAM16_LEVEL_1 ); 
     229        TS_ASSERT_EQUALS( Q_out[12],  QAM16_LEVEL_2 ); 
     230         
     231        TS_ASSERT_EQUALS( I_out[13],  QAM16_LEVEL_1 ); 
     232        TS_ASSERT_EQUALS( Q_out[13],  QAM16_LEVEL_1 ); 
     233         
     234        TS_ASSERT_EQUALS( I_out[14],  QAM16_LEVEL_1 ); 
     235        TS_ASSERT_EQUALS( Q_out[14], -QAM16_LEVEL_2 ); 
     236         
     237        TS_ASSERT_EQUALS( I_out[15],  QAM16_LEVEL_1 ); 
     238        TS_ASSERT_EQUALS( Q_out[15], -QAM16_LEVEL_1 ); 
     239         
     240        delete [] I_out; 
     241        delete [] Q_out; 
    169242    } 
    170243 
    171244    void test_Modulate4PAM() { 
     245        char b[8] = {BIT0, BIT0, 
     246                     BIT0, BIT1, 
     247                     BIT1, BIT0, 
     248                     BIT1, BIT1}; 
     249                      
     250        short * I_out = new short[4]; 
     251        short * Q_out = new short[4]; 
     252 
     253        SetModulationScheme( SigProc::PAM4 ); 
     254        ModulateSequence( b, 8, I_out, Q_out ); 
     255         
     256        TS_ASSERT_EQUALS( I_out[0],  PAM4_LEVEL_2 ); 
     257        TS_ASSERT_EQUALS( Q_out[0],  0            ); 
     258         
     259        TS_ASSERT_EQUALS( I_out[1],  PAM4_LEVEL_1 ); 
     260        TS_ASSERT_EQUALS( Q_out[1],  0            ); 
     261         
     262        TS_ASSERT_EQUALS( I_out[2], -PAM4_LEVEL_2 ); 
     263        TS_ASSERT_EQUALS( Q_out[2],  0            ); 
     264         
     265        TS_ASSERT_EQUALS( I_out[3], -PAM4_LEVEL_1 ); 
     266        TS_ASSERT_EQUALS( Q_out[3],  0            ); 
     267         
     268        delete [] I_out; 
     269        delete [] Q_out; 
    172270    } 
    173271