mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-11-11 12:07:06 +00:00
update spandsp to use newest snapshot http://www.soft-switch.org/downloads/snapshots/spandsp/spandsp-20080910.tar.gz
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9493 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
1 parent
bc5cf34915
commit
ea964d8fe6
79 files changed
+2804
-1642
No files matched your search
@@ -22,7 +22,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v29_tests.c,v 1.102 2008/08/29 09:28:13 steveu Exp $
|
||||
* $Id: v29_tests.c,v 1.106 2008/09/07 12:45:17 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v29_tests_page V.29 modem tests
|
||||
@@ -134,33 +134,29 @@ static int v29_rx_status(void *user_data, int status)
|
||||
v29_rx_state_t *rx;
|
||||
int i;
|
||||
int len;
|
||||
#if defined(SPANDSP_USE_FIXED_POINT)
|
||||
complexi16_t *coeffs;
|
||||
#else
|
||||
complexf_t *coeffs;
|
||||
#endif
|
||||
|
||||
printf("V.29 rx status is %d\n", status);
|
||||
printf("V.29 rx status is %s (%d)\n", signal_status_to_str(status), status);
|
||||
rx = (v29_rx_state_t *) user_data;
|
||||
switch (status)
|
||||
{
|
||||
case PUTBIT_TRAINING_FAILED:
|
||||
printf("Training failed\n");
|
||||
break;
|
||||
case PUTBIT_TRAINING_IN_PROGRESS:
|
||||
printf("Training in progress\n");
|
||||
break;
|
||||
case PUTBIT_TRAINING_SUCCEEDED:
|
||||
case SIG_STATUS_TRAINING_SUCCEEDED:
|
||||
printf("Training succeeded\n");
|
||||
#if defined(SPANDSP_USE_FIXED_POINT)
|
||||
len = v29_rx_equalizer_state(rx, &coeffs);
|
||||
printf("Equalizer:\n");
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%3d (%15.5f, %15.5f)\n", i, coeffs[i].re/4096.0f, coeffs[i].im/4096.0f);
|
||||
#else
|
||||
len = v29_rx_equalizer_state(rx, &coeffs);
|
||||
printf("Equalizer:\n");
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%3d (%15.5f, %15.5f) -> %15.5f\n", i, coeffs[i].re, coeffs[i].im, powerf(&coeffs[i]));
|
||||
break;
|
||||
case PUTBIT_CARRIER_UP:
|
||||
printf("Carrier up\n");
|
||||
break;
|
||||
case PUTBIT_CARRIER_DOWN:
|
||||
printf("Carrier down\n");
|
||||
break;
|
||||
default:
|
||||
printf("Eh! - %d\n", status);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
@@ -187,18 +183,7 @@ static void v29putbit(void *user_data, int bit)
|
||||
|
||||
static int v29_tx_status(void *user_data, int status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case MODEM_TX_STATUS_DATA_EXHAUSTED:
|
||||
printf("V.29 tx data exhausted\n");
|
||||
break;
|
||||
case MODEM_TX_STATUS_SHUTDOWN_COMPLETE:
|
||||
printf("V.29 tx shutdown complete\n");
|
||||
break;
|
||||
default:
|
||||
printf("V.29 tx status is %d\n", status);
|
||||
break;
|
||||
}
|
||||
printf("V.29 tx status is %s (%d)\n", signal_status_to_str(status), status);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
@@ -213,7 +198,11 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
|
||||
{
|
||||
int i;
|
||||
int len;
|
||||
#if defined(SPANDSP_USE_FIXED_POINT)
|
||||
complexi16_t *coeffs;
|
||||
#else
|
||||
complexf_t *coeffs;
|
||||
#endif
|
||||
float fpower;
|
||||
v29_rx_state_t *rx;
|
||||
static float smooth_power = 0.0f;
|
||||
@@ -249,6 +238,16 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
|
||||
symbol_no++;
|
||||
if (--update_interval <= 0)
|
||||
{
|
||||
#if defined(SPANDSP_USE_FIXED_POINT)
|
||||
len = v29_rx_equalizer_state(rx, &coeffs);
|
||||
printf("Equalizer A:\n");
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%3d (%15.5f, %15.5f)\n", i, coeffs[i].re/4096.0f, coeffs[i].im/4096.0f);
|
||||
#if defined(ENABLE_GUI)
|
||||
if (use_gui)
|
||||
qam_monitor_update_int_equalizer(qam_monitor, coeffs, len);
|
||||
#endif
|
||||
#else
|
||||
len = v29_rx_equalizer_state(rx, &coeffs);
|
||||
printf("Equalizer A:\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@@ -256,6 +255,7 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
|
||||
#if defined(ENABLE_GUI)
|
||||
if (use_gui)
|
||||
qam_monitor_update_equalizer(qam_monitor, coeffs, len);
|
||||
#endif
|
||||
#endif
|
||||
update_interval = 100;
|
||||
}
|
||||
@@ -451,8 +451,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
/* Note that we might get a few bad bits as the carrier shuts down. */
|
||||
bert_result(&bert, &bert_results);
|
||||
fprintf(stderr, "Final result %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
|
||||
fprintf(stderr, "Last report %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
|
||||
fprintf(stderr, "Final result %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
|
||||
fprintf(stderr, "Last report %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
|
||||
/* See if bit errors are appearing yet. Also check we are getting enough bits out of the receiver. The last regular report
|
||||
should be error free, though the final report will generally contain bits errors as the carrier was dying. The total
|
||||
number of bits out of the receiver should be at least the number we sent. Also, since BERT sync should have occurred
|
||||
@@ -500,15 +500,13 @@ int main(int argc, char *argv[])
|
||||
line_model_monitor_line_spectrum_update(amp, samples);
|
||||
#endif
|
||||
v29_rx(&rx, amp, samples);
|
||||
if (decode_test_file == NULL && block%500 == 0)
|
||||
printf("Noise level is %d\n", noise_level);
|
||||
}
|
||||
if (!decode_test_file)
|
||||
{
|
||||
bert_result(&bert, &bert_results);
|
||||
fprintf(stderr, "At completion:\n");
|
||||
fprintf(stderr, "Final result %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
|
||||
fprintf(stderr, "Last report %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
|
||||
fprintf(stderr, "Final result %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
|
||||
fprintf(stderr, "Last report %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
|
||||
one_way_line_model_release(line_model);
|
||||
|
||||
if (signal_level > -43)
|
||||
|
||||
Reference in new issue
Block a user