00001 // SPUC - Signal processing using C++ - A DSP library 00002 /* 00003 * This program is free software; you can redistribute it and/or modify 00004 * it under the terms of the GNU General Public License as published by 00005 * the Free Software Foundation; either version 2, or (at your option) 00006 * any later version. 00007 * 00008 * This program is distributed in the hope that it will be useful, 00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 * GNU General Public License for more details. 00012 * 00013 * You should have received a copy of the GNU General Public License 00014 * along with this program; if not, write to the Free Software 00015 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00016 */ 00017 // $Id: qam_tx.h,v 1.2 2005/09/16 17:00:44 spuc Exp $ 00018 #include <stdio.h> 00019 #include <stdlib.h> 00020 #include <math.h> 00021 #include <complex.h> 00022 #include <max_pn.h> 00023 #include <fading_channel.h> 00024 #include <fir_interp.h> 00025 #include "qam_mod.h" 00026 namespace SPUC { 00033 // 00034 class qam_tx 00035 { 00036 public: 00037 00038 qam_mod ENC; 00039 max_pn preamble_source; 00040 max_pn training_source; 00041 fir_interp< complex<double> > tx_filter; 00042 complex<double> tx_data; 00043 double data_level; 00044 const long preamble_pn; // Number of symbols used for pre-amble PN 00045 const long training_interval; 00046 long tx_symbols; // Counter for transmitted symbols 00047 const long over; // Oversampling rate 00048 double training_scale; 00049 double alpha; 00050 long count; 00051 long rate; 00052 00053 qam_tx(long sym_span=5, long over=8, long rate=0, long c=0, double tx_filter_bw=0.25); 00054 void loop_init(long x, long y); 00055 complex<double> clock(); 00056 }; 00057 } 00058