OSDN Git Service

テストプログラムの問題を修正することで、amの包絡線検波ができるようになった。
authorsuikan <suikan@users.sourceforge.jp>
Mon, 27 Jul 2015 22:40:40 +0000 (07:40 +0900)
committersuikan <suikan@users.sourceforge.jp>
Mon, 27 Jul 2015 22:40:40 +0000 (07:40 +0900)
ラジオとして動作した最初のバージョン

trx305/demodulator.c
trx305/framework.c

index f562a37..b9b611f 100644 (file)
@@ -60,13 +60,13 @@ void radio_demodulate_non_wide_FM( int idata, int qdata, short* left, short* rig
 
     case radio_mode_AM :    // AM復調
         {
-                // テスト用の擬似ダイオード検波
+                // テスト用の複素包絡線検波
             float i, q;
 
             q = qdata;
             i = idata;
 
-            *left = *right = sqrtf( q*q + i*i );
+            *left = *right = sqrtf( q*q + i*i )/65536;
 
         }
         break;
index 93877f6..3a244d4 100644 (file)
@@ -409,10 +409,6 @@ static void unpack_wide_fm ( unsigned int pri_ch, unsigned int sec_ch, int* idat
 
 static void unpack_non_wide_fm(  unsigned int pri_ch, unsigned int sec_ch, int* idata, int* qdata, int* valid_iq )
 {
-    static unsigned int debug_count = 0;
-    static unsigned int debug_izero = 0;
-    static unsigned int debug_qzero = 0;
-
         // インデックス分け
     if ( sec_ch & 0x02 )    // bit1が1ならindex = 1
     {
@@ -421,21 +417,6 @@ static void unpack_non_wide_fm(  unsigned int pri_ch, unsigned int sec_ch, int*
         *qdata = (sec_ch << 2) & 0xFFFFFFF0;
             // IQデータが有効であると通知する
         *valid_iq = TRUE;
-        if ( debug_count < 1000 )
-        {
-            debug_count++;
-            if ( *idata & 1 << 31 )
-                debug_izero++;
-            if ( *qdata & 1 << 31 )
-                debug_qzero++;
-        }
-        else
-        {
-            syslog(LOG_NOTICE, "number of sign bit =   %d, %d", debug_izero, debug_qzero);
-            debug_count = 0;
-            debug_izero = 0;
-            debug_qzero = 0;
-        }
     }
     else                    // index = 0
     {