diff options
Diffstat (limited to 'Transceiver52M')
-rw-r--r-- | Transceiver52M/DummyLoad.cpp | 146 | ||||
-rw-r--r-- | Transceiver52M/DummyLoad.h | 132 | ||||
-rw-r--r-- | Transceiver52M/Makefile.am | 26 | ||||
-rw-r--r-- | Transceiver52M/USRPping.cpp | 95 | ||||
-rw-r--r-- | Transceiver52M/rcvLPF_651.h | 28 | ||||
-rw-r--r-- | Transceiver52M/sendLPF_961.h | 27 | ||||
-rw-r--r-- | Transceiver52M/sigProcLib.cpp | 2 | ||||
-rw-r--r-- | Transceiver52M/sigProcLibTest.cpp | 161 |
8 files changed, 2 insertions, 615 deletions
diff --git a/Transceiver52M/DummyLoad.cpp b/Transceiver52M/DummyLoad.cpp deleted file mode 100644 index 38718a0..0000000 --- a/Transceiver52M/DummyLoad.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* -* Copyright 2008, 2009 Free Software Foundation, Inc. -* -* This software is distributed under the terms of the GNU Public License. -* See the COPYING file in the main directory for details. -* -* This use of this software may be subject to additional restrictions. -* See the LEGAL file in the main directory for details. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - - -/* - Compilation Flags - - SWLOOPBACK compile for software loopback testing -*/ - - -#include <stdint.h> -#include <string.h> -#include <stdlib.h> -#include "Threads.h" -#include "DummyLoad.h" - -#include <Logger.h> - - -using namespace std; - - - -int DummyLoad::loadBurst(short *wDummyBurst, int len) { - dummyBurst = wDummyBurst; - dummyBurstSz = len; -} - - -DummyLoad::DummyLoad (double _desiredSampleRate) -{ - LOG(INFO) << "creating USRP device..."; - sampleRate = _desiredSampleRate; -} - -void DummyLoad::updateTime(void) { - gettimeofday(&currTime,NULL); - double timeElapsed = (currTime.tv_sec - startTime.tv_sec)*1.0e6 + - (currTime.tv_usec - startTime.tv_usec); - currstamp = (TIMESTAMP) floor(timeElapsed/(1.0e6/sampleRate)); -} - -bool DummyLoad::make(bool wSkipRx) -{ - - samplesRead = 0; - samplesWritten = 0; - return true; -} - -bool DummyLoad::start() -{ - LOG(INFO) << "starting USRP..."; - underrun = false; - gettimeofday(&startTime,NULL); - dummyBurstCursor = 0; - return true; -} - -bool DummyLoad::stop() -{ - return true; -} - - -// NOTE: Assumes sequential reads -int DummyLoad::readSamples(short *buf, int len, bool *overrun, - TIMESTAMP timestamp, - bool *wUnderrun, - unsigned *RSSI) -{ - updateTime(); - underrunLock.lock(); - *wUnderrun = underrun; - underrunLock.unlock(); - if (currstamp+len < timestamp) { - usleep(100); - return 0; - } - else if (currstamp < timestamp) { - usleep(100); - return 0; - } - else if (timestamp+len < currstamp) { - memcpy(buf,dummyBurst+dummyBurstCursor*2,sizeof(short)*2*(dummyBurstSz-dummyBurstCursor)); - int retVal = dummyBurstSz-dummyBurstCursor; - dummyBurstCursor = 0; - return retVal; - } - else if (timestamp + len > currstamp) { - int amount = timestamp + len - currstamp; - if (amount < dummyBurstSz-dummyBurstCursor) { - memcpy(buf,dummyBurst+dummyBurstCursor*2,sizeof(short)*2*amount); - dummyBurstCursor += amount; - return amount; - } - else { - memcpy(buf,dummyBurst+dummyBurstCursor*2,sizeof(short)*2*(dummyBurstSz-dummyBurstCursor)); - int retVal = dummyBurstSz-dummyBurstCursor; - dummyBurstCursor = 0; - return retVal; - } - } - return 0; -} - -int DummyLoad::writeSamples(short *buf, int len, bool *wUnderrun, - unsigned long long timestamp, - bool isControl) -{ - updateTime(); - underrunLock.lock(); - underrun |= (currstamp+len < timestamp); - underrunLock.unlock(); - return len; -} - -bool DummyLoad::updateAlignment(TIMESTAMP timestamp) -{ - return true; -} - -bool DummyLoad::setTxFreq(double wFreq) { return true;}; -bool DummyLoad::setRxFreq(double wFreq) { return true;}; diff --git a/Transceiver52M/DummyLoad.h b/Transceiver52M/DummyLoad.h deleted file mode 100644 index 74a962d..0000000 --- a/Transceiver52M/DummyLoad.h +++ /dev/null @@ -1,132 +0,0 @@ -/* -* Copyright 2008 Free Software Foundation, Inc. -* -* This software is distributed under the terms of the GNU Public License. -* See the COPYING file in the main directory for details. -* -* This use of this software may be subject to additional restrictions. -* See the LEGAL file in the main directory for details. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "radioDevice.h" - - -#include <sys/time.h> -#include <math.h> -#include <string> -#include <iostream> - - -/** A class to handle a USRP rev 4, with a two RFX900 daughterboards */ -class DummyLoad: public RadioDevice { - -private: - - double sampleRate; ///< the desired sampling rate - unsigned long long samplesRead; ///< number of samples read from USRP - unsigned long long samplesWritten; ///< number of samples sent to USRP - - Mutex underrunLock; - - struct timeval startTime, currTime; - - TIMESTAMP currstamp; - short *dummyBurst; - int dummyBurstSz; - int dummyBurstCursor; - bool underrun; - - void updateTime(void); - - public: - - /** Object constructor */ - DummyLoad (double _desiredSampleRate); - - int loadBurst(short *wDummyBurst, int len); - - /** Instantiate the USRP */ - bool make(bool skipRx = false); - - /** Start the USRP */ - bool start(); - - /** Stop the USRP */ - bool stop(); - - /** - Read samples from the USRP. - @param buf preallocated buf to contain read result - @param len number of samples desired - @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough - @param timestamp The timestamp of the first samples to be read - @param underrun Set if USRP does not have data to transmit, e.g. data not being sent fast enough - @param RSSI The received signal strength of the read result - @return The number of samples actually read - */ - int readSamples(short *buf, int len, bool *overrun, - TIMESTAMP timestamp = 0xffffffff, - bool *underrun = NULL, - unsigned *RSSI = NULL); - /** - Write samples to the USRP. - @param buf Contains the data to be written. - @param len number of samples to write. - @param underrun Set if USRP does not have data to transmit, e.g. data not being sent fast enough - @param timestamp The timestamp of the first sample of the data buffer. - @param isControl Set if data is a control packet, e.g. a ping command - @return The number of samples actually written - */ - int writeSamples(short *buf, int len, bool *underrun, - TIMESTAMP timestamp = 0xffffffff, - bool isControl = false); - - /** Update the alignment between the read and write timestamps */ - bool updateAlignment(TIMESTAMP timestamp); - - /** Set the transmitter frequency */ - bool setTxFreq(double wFreq); - - /** Set the receiver frequency */ - bool setRxFreq(double wFreq); - - /** Returns the starting write Timestamp*/ - TIMESTAMP initialWriteTimestamp(void) { return 20000;} - - /** Returns the starting read Timestamp*/ - TIMESTAMP initialReadTimestamp(void) { return 20000;} - - /** returns the full-scale transmit amplitude **/ - double fullScaleInputValue() {return 13500.0;} - - /** returns the full-scale receive amplitude **/ - double fullScaleOutputValue() {return 9450.0;} - - /** Return internal status values */ - inline double getTxFreq() { return 0;} - inline double getRxFreq() { return 0;} - inline double getSampleRate() {return sampleRate;} - inline double numberRead() { return samplesRead; } - inline double numberWritten() { return samplesWritten;} - -}; - diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am index 15fe047..c1cfb1b 100644 --- a/Transceiver52M/Makefile.am +++ b/Transceiver52M/Makefile.am @@ -51,8 +51,7 @@ COMMON_SOURCES = \ radioVector.cpp \ radioClock.cpp \ sigProcLib.cpp \ - Transceiver.cpp \ - DummyLoad.cpp + Transceiver.cpp libtransceiver_la_SOURCES = \ $(COMMON_SOURCES) \ @@ -60,9 +59,7 @@ libtransceiver_la_SOURCES = \ radioInterfaceResamp.cpp noinst_PROGRAMS = \ - USRPping \ - transceiver \ - sigProcLibTest + transceiver noinst_HEADERS = \ Complex.h \ @@ -73,18 +70,10 @@ noinst_HEADERS = \ sigProcLib.h \ Transceiver.h \ USRPDevice.h \ - DummyLoad.h \ - rcvLPF_651.h \ - sendLPF_961.h \ Resampler.h \ common/convolve.h \ common/convert.h -USRPping_SOURCES = USRPping.cpp -USRPping_LDADD = \ - libtransceiver.la \ - $(COMMON_LA) $(SQLITE_LA) - transceiver_SOURCES = runTransceiver.cpp transceiver_LDADD = \ libtransceiver.la \ @@ -92,21 +81,10 @@ transceiver_LDADD = \ $(GSM_LA) \ $(COMMON_LA) $(SQLITE_LA) -sigProcLibTest_SOURCES = sigProcLibTest.cpp -sigProcLibTest_LDADD = \ - libtransceiver.la \ - $(ARCH_LA) \ - $(GSM_LA) \ - $(COMMON_LA) $(SQLITE_LA) - if USRP1 libtransceiver_la_SOURCES += USRPDevice.cpp transceiver_LDADD += $(USRP_LIBS) -USRPping_LDADD += $(USRP_LIBS) -sigProcLibTest_LDADD += $(USRP_LIBS) else libtransceiver_la_SOURCES += UHDDevice.cpp transceiver_LDADD += $(UHD_LIBS) -USRPping_LDADD += $(UHD_LIBS) -sigProcLibTest_LDADD += $(UHD_LIBS) endif diff --git a/Transceiver52M/USRPping.cpp b/Transceiver52M/USRPping.cpp deleted file mode 100644 index 3c6289c..0000000 --- a/Transceiver52M/USRPping.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* -* Copyright 2008, 2009 Free Software Foundation, Inc. -* -* This software is distributed under the terms of the GNU Public License. -* See the COPYING file in the main directory for details. -* -* This use of this software may be subject to additional restrictions. -* See the LEGAL file in the main directory for details. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - - - -#include <stdint.h> -#include <stdio.h> -#include <Logger.h> -#include <Configuration.h> -#include "radioDevice.h" - -ConfigurationTable gConfig; - -using namespace std; - -int main(int argc, char *argv[]) { - - // Configure logger. - if (argc>1) gLogInit(argv[1]); - else gLogInit("DEBUG"); - //if (argc>2) gSetLogFile(argv[2]); - - RadioDevice *usrp = RadioDevice::make(52.0e6/192.0, 1); - - usrp->open(); - - TIMESTAMP timestamp; - - usrp->setTxFreq(825.4e6); - usrp->setRxFreq(825.4e6); - - usrp->start(); - - usrp->setRxGain(57); - - LOG(INFO) << "Looping..."; - bool underrun; - - short data[]={0x00,0x02}; - - usrp->updateAlignment(20000); - usrp->updateAlignment(21000); - - int numpkts = 1; - short data2[512*2*numpkts]; - for (int i = 0; i < 512*numpkts; i++) { - data2[i<<1] = 10000;//4096*cos(2*3.14159*(i % 126)/126); - data2[(i<<1) + 1] = 10000;//4096*sin(2*3.14159*(i % 126)/126); - } - - for (int i = 0; i < 1; i++) - usrp->writeSamples((short*) data2,512*numpkts,&underrun,102000+i*1000); - - timestamp = 19000; - double sum = 0.0; - unsigned long num = 0; - while (1) { - short readBuf[512*2]; - int rd = usrp->readSamples(readBuf,512,&underrun,timestamp); - if (rd) { - LOG(INFO) << "rcvd. data@:" << timestamp; - for (int i = 0; i < 512; i++) { - uint32_t *wordPtr = (uint32_t *) &readBuf[2*i]; - printf ("%llu: %d %d\n", timestamp+i,readBuf[2*i],readBuf[2*i+1]); - sum += (readBuf[2*i+1]*readBuf[2*i+1] + readBuf[2*i]*readBuf[2*i]); - num++; - //if (num % 10000 == 0) printf("avg pwr: %f\n",sum/num); - } - timestamp += rd; - //usrp->writeSamples((short*) data2,512*numpkts,&underrun,timestamp+1000); - } - } - -} diff --git a/Transceiver52M/rcvLPF_651.h b/Transceiver52M/rcvLPF_651.h deleted file mode 100644 index c28eb9b..0000000 --- a/Transceiver52M/rcvLPF_651.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -* Copyright 2008, 2009, 2011 Free Software Foundation, Inc. -* -* This software is distributed under the terms of the GNU Affero Public License. -* See the COPYING file in the main directory for details. -* -* This use of this software may be subject to additional restrictions. -* See the LEGAL file in the main directory for details. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - - - - -float rcvLPF_651[] = { -0.000920,-0.000928,-0.000935,-0.000941,-0.000946,-0.000950,-0.000953,-0.000954,-0.000955,-0.000954,-0.000952,-0.000949,-0.000945,-0.000940,-0.000933,-0.000926,-0.000917,-0.000907,-0.000896,-0.000884,-0.000871,-0.000856,-0.000841,-0.000824,-0.000806,-0.000788,-0.000768,-0.000747,-0.000725,-0.000702,-0.000678,-0.000653,-0.000627,-0.000600,-0.000572,-0.000543,-0.000514,-0.000483,-0.000452,-0.000420,-0.000388,-0.000354,-0.000320,-0.000285,-0.000250,-0.000214,-0.000178,-0.000141,-0.000103,-0.000066,-0.000027,0.000011,0.000050,0.000089,0.000128,0.000167,0.000207,0.000246,0.000286,0.000326,0.000365,0.000404,0.000444,0.000483,0.000521,0.000560,0.000598,0.000636,0.000673,0.000710,0.000746,0.000782,0.000817,0.000851,0.000884,0.000917,0.000949,0.000981,0.001011,0.001040,0.001068,0.001096,0.001122,0.001147,0.001171,0.001194,0.001216,0.001236,0.001255,0.001273,0.001289,0.001304,0.001318,0.001330,0.001341,0.001350,0.001358,0.001364,0.001368,0.001371,0.001373,0.001372,0.001370,0.001367,0.001362,0.001355,0.001346,0.001336,0.001324,0.001311,0.001295,0.001278,0.001260,0.001239,0.001217,0.001194,0.001168,0.001141,0.001113,0.001083,0.001051,0.001017,0.000982,0.000946,0.000908,0.000869,0.000828,0.000785,0.000742,0.000697,0.000650,0.000603,0.000554,0.000504,0.000453,0.000401,0.000347,0.000293,0.000238,0.000182,0.000125,0.000067,0.000008,-0.000051,-0.000111,-0.000171,-0.000232,-0.000293,-0.000354,-0.000416,-0.000479,-0.000541,-0.000603,-0.000666,-0.000728,-0.000790,-0.000852,-0.000914,-0.000976,-0.001037,-0.001097,-0.001157,-0.001217,-0.001276,-0.001334,-0.001391,-0.001447,-0.001502,-0.001556,-0.001609,-0.001661,-0.001712,-0.001761,-0.001808,-0.001855,-0.001899,-0.001942,-0.001983,-0.002023,-0.002060,-0.002096,-0.002130,-0.002161,-0.002191,-0.002218,-0.002243,-0.002266,-0.002286,-0.002304,-0.002319,-0.002332,-0.002343,-0.002350,-0.002355,-0.002358,-0.002357,-0.002354,-0.002348,-0.002339,-0.002327,-0.002312,-0.002294,-0.002273,-0.002249,-0.002222,-0.002191,-0.002158,-0.002121,-0.002082,-0.002039,-0.001993,-0.001944,-0.001891,-0.001835,-0.001777,-0.001714,-0.001649,-0.001581,-0.001509,-0.001434,-0.001356,-0.001275,-0.001191,-0.001104,-0.001013,-0.000920,-0.000823,-0.000724,-0.000622,-0.000517,-0.000409,-0.000298,-0.000184,-0.000068,0.000051,0.000173,0.000297,0.000424,0.000553,0.000684,0.000818,0.000954,0.001092,0.001232,0.001374,0.001518,0.001664,0.001812,0.001961,0.002112,0.002265,0.002419,0.002574,0.002731,0.002888,0.003047,0.003207,0.003367,0.003529,0.003691,0.003853,0.004016,0.004180,0.004343,0.004507,0.004671,0.004835,0.004999,0.005162,0.005325,0.005488,0.005650,0.005811,0.005972,0.006132,0.006290,0.006448,0.006604,0.006759,0.006913,0.007065,0.007216,0.007364,0.007511,0.007656,0.007799,0.007940,0.008079,0.008215,0.008349,0.008481,0.008609,0.008736,0.008859,0.008980,0.009097,0.009212,0.009323,0.009432,0.009537,0.009638,0.009737,0.009832,0.009923,0.010011,0.010095,0.010175,0.010252,0.010325,0.010394,0.010459,0.010520,0.010577,0.010630,0.010678,0.010723,0.010764,0.010800,0.010832,0.010860,0.010884,0.010903,0.010918,0.010929,0.010935,0.010937,0.010935,0.010929,0.010918,0.010903,0.010884,0.010860,0.010832,0.010800,0.010764,0.010723,0.010678,0.010630,0.010577,0.010520,0.010459,0.010394,0.010325,0.010252,0.010175,0.010095,0.010011,0.009923,0.009832,0.009737,0.009638,0.009537,0.009432,0.009323,0.009212,0.009097,0.008980,0.008859,0.008736,0.008609,0.008481,0.008349,0.008215,0.008079,0.007940,0.007799,0.007656,0.007511,0.007364,0.007216,0.007065,0.006913,0.006759,0.006604,0.006448,0.006290,0.006132,0.005972,0.005811,0.005650,0.005488,0.005325,0.005162,0.004999,0.004835,0.004671,0.004507,0.004343,0.004180,0.004016,0.003853,0.003691,0.003529,0.003367,0.003207,0.003047,0.002888,0.002731,0.002574,0.002419,0.002265,0.002112,0.001961,0.001812,0.001664,0.001518,0.001374,0.001232,0.001092,0.000954,0.000818,0.000684,0.000553,0.000424,0.000297,0.000173,0.000051,-0.000068,-0.000184,-0.000298,-0.000409,-0.000517,-0.000622,-0.000724,-0.000823,-0.000920,-0.001013,-0.001104,-0.001191,-0.001275,-0.001356,-0.001434,-0.001509,-0.001581,-0.001649,-0.001714,-0.001777,-0.001835,-0.001891,-0.001944,-0.001993,-0.002039,-0.002082,-0.002121,-0.002158,-0.002191,-0.002222,-0.002249,-0.002273,-0.002294,-0.002312,-0.002327,-0.002339,-0.002348,-0.002354,-0.002357,-0.002358,-0.002355,-0.002350,-0.002343,-0.002332,-0.002319,-0.002304,-0.002286,-0.002266,-0.002243,-0.002218,-0.002191,-0.002161,-0.002130,-0.002096,-0.002060,-0.002023,-0.001983,-0.001942,-0.001899,-0.001855,-0.001808,-0.001761,-0.001712,-0.001661,-0.001609,-0.001556,-0.001502,-0.001447,-0.001391,-0.001334,-0.001276,-0.001217,-0.001157,-0.001097,-0.001037,-0.000976,-0.000914,-0.000852,-0.000790,-0.000728,-0.000666,-0.000603,-0.000541,-0.000479,-0.000416,-0.000354,-0.000293,-0.000232,-0.000171,-0.000111,-0.000051,0.000008,0.000067,0.000125,0.000182,0.000238,0.000293,0.000347,0.000401,0.000453,0.000504,0.000554,0.000603,0.000650,0.000697,0.000742,0.000785,0.000828,0.000869,0.000908,0.000946,0.000982,0.001017,0.001051,0.001083,0.001113,0.001141,0.001168,0.001194,0.001217,0.001239,0.001260,0.001278,0.001295,0.001311,0.001324,0.001336,0.001346,0.001355,0.001362,0.001367,0.001370,0.001372,0.001373,0.001371,0.001368,0.001364,0.001358,0.001350,0.001341,0.001330,0.001318,0.001304,0.001289,0.001273,0.001255,0.001236,0.001216,0.001194,0.001171,0.001147,0.001122,0.001096,0.001068,0.001040,0.001011,0.000981,0.000949,0.000917,0.000884,0.000851,0.000817,0.000782,0.000746,0.000710,0.000673,0.000636,0.000598,0.000560,0.000521,0.000483,0.000444,0.000404,0.000365,0.000326,0.000286,0.000246,0.000207,0.000167,0.000128,0.000089,0.000050,0.000011,-0.000027,-0.000066,-0.000103,-0.000141,-0.000178,-0.000214,-0.000250,-0.000285,-0.000320,-0.000354,-0.000388,-0.000420,-0.000452,-0.000483,-0.000514,-0.000543,-0.000572,-0.000600,-0.000627,-0.000653,-0.000678,-0.000702,-0.000725,-0.000747,-0.000768,-0.000788,-0.000806,-0.000824,-0.000841,-0.000856,-0.000871,-0.000884,-0.000896,-0.000907,-0.000917,-0.000926,-0.000933,-0.000940,-0.000945,-0.000949,-0.000952,-0.000954,-0.000955,-0.000954,-0.000953,-0.000950,-0.000946,-0.000941,-0.000935,-0.000928, 0.0}; diff --git a/Transceiver52M/sendLPF_961.h b/Transceiver52M/sendLPF_961.h deleted file mode 100644 index cd4d098..0000000 --- a/Transceiver52M/sendLPF_961.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -* Copyright 2008, 2011 Free Software Foundation, Inc. -* -* This software is distributed under the terms of the GNU Affero Public License. -* See the COPYING file in the main directory for details. -* -* This use of this software may be subject to additional restrictions. -* See the LEGAL file in the main directory for details. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - - - -float sendLPF_961[] = { -0.000422,-0.000408,-0.000394,-0.000379,-0.000364,-0.000348,-0.000332,-0.000315,-0.000298,-0.000280,-0.000262,-0.000243,-0.000224,-0.000205,-0.000185,-0.000165,-0.000145,-0.000125,-0.000104,-0.000083,-0.000062,-0.000040,-0.000019,0.000003,0.000025,0.000047,0.000069,0.000091,0.000113,0.000135,0.000157,0.000179,0.000200,0.000222,0.000244,0.000265,0.000286,0.000307,0.000328,0.000348,0.000368,0.000388,0.000407,0.000426,0.000445,0.000463,0.000481,0.000498,0.000515,0.000531,0.000547,0.000562,0.000576,0.000590,0.000604,0.000616,0.000628,0.000640,0.000650,0.000660,0.000669,0.000678,0.000686,0.000693,0.000699,0.000704,0.000709,0.000712,0.000715,0.000717,0.000719,0.000719,0.000718,0.000717,0.000715,0.000712,0.000708,0.000703,0.000698,0.000691,0.000684,0.000676,0.000667,0.000657,0.000646,0.000634,0.000622,0.000609,0.000595,0.000580,0.000565,0.000548,0.000531,0.000513,0.000495,0.000476,0.000456,0.000435,0.000414,0.000392,0.000370,0.000347,0.000323,0.000299,0.000275,0.000250,0.000224,0.000199,0.000172,0.000146,0.000119,0.000091,0.000064,0.000036,0.000008,-0.000020,-0.000048,-0.000077,-0.000105,-0.000134,-0.000163,-0.000191,-0.000220,-0.000248,-0.000277,-0.000305,-0.000333,-0.000361,-0.000388,-0.000415,-0.000442,-0.000469,-0.000495,-0.000521,-0.000546,-0.000571,-0.000595,-0.000619,-0.000642,-0.000665,-0.000687,-0.000708,-0.000729,-0.000749,-0.000768,-0.000786,-0.000803,-0.000820,-0.000836,-0.000851,-0.000865,-0.000878,-0.000890,-0.000901,-0.000911,-0.000920,-0.000928,-0.000935,-0.000941,-0.000946,-0.000950,-0.000953,-0.000954,-0.000955,-0.000954,-0.000952,-0.000949,-0.000945,-0.000940,-0.000933,-0.000926,-0.000917,-0.000907,-0.000896,-0.000884,-0.000871,-0.000856,-0.000841,-0.000824,-0.000806,-0.000788,-0.000768,-0.000747,-0.000725,-0.000702,-0.000678,-0.000653,-0.000627,-0.000600,-0.000572,-0.000543,-0.000514,-0.000483,-0.000452,-0.000420,-0.000388,-0.000354,-0.000320,-0.000285,-0.000250,-0.000214,-0.000178,-0.000141,-0.000103,-0.000066,-0.000027,0.000011,0.000050,0.000089,0.000128,0.000167,0.000207,0.000246,0.000286,0.000326,0.000365,0.000404,0.000444,0.000483,0.000521,0.000560,0.000598,0.000636,0.000673,0.000710,0.000746,0.000782,0.000817,0.000851,0.000884,0.000917,0.000949,0.000981,0.001011,0.001040,0.001068,0.001096,0.001122,0.001147,0.001171,0.001194,0.001216,0.001236,0.001255,0.001273,0.001289,0.001304,0.001318,0.001330,0.001341,0.001350,0.001358,0.001364,0.001368,0.001371,0.001373,0.001372,0.001370,0.001367,0.001362,0.001355,0.001346,0.001336,0.001324,0.001311,0.001295,0.001278,0.001260,0.001239,0.001217,0.001194,0.001168,0.001141,0.001113,0.001083,0.001051,0.001017,0.000982,0.000946,0.000908,0.000869,0.000828,0.000785,0.000742,0.000697,0.000650,0.000603,0.000554,0.000504,0.000453,0.000401,0.000347,0.000293,0.000238,0.000182,0.000125,0.000067,0.000008,-0.000051,-0.000111,-0.000171,-0.000232,-0.000293,-0.000354,-0.000416,-0.000479,-0.000541,-0.000603,-0.000666,-0.000728,-0.000790,-0.000852,-0.000914,-0.000976,-0.001037,-0.001097,-0.001157,-0.001217,-0.001276,-0.001334,-0.001391,-0.001447,-0.001502,-0.001556,-0.001609,-0.001661,-0.001712,-0.001761,-0.001808,-0.001855,-0.001899,-0.001942,-0.001983,-0.002023,-0.002060,-0.002096,-0.002130,-0.002161,-0.002191,-0.002218,-0.002243,-0.002266,-0.002286,-0.002304,-0.002319,-0.002332,-0.002343,-0.002350,-0.002355,-0.002358,-0.002357,-0.002354,-0.002348,-0.002339,-0.002327,-0.002312,-0.002294,-0.002273,-0.002249,-0.002222,-0.002191,-0.002158,-0.002121,-0.002082,-0.002039,-0.001993,-0.001944,-0.001891,-0.001835,-0.001777,-0.001714,-0.001649,-0.001581,-0.001509,-0.001434,-0.001356,-0.001275,-0.001191,-0.001104,-0.001013,-0.000920,-0.000823,-0.000724,-0.000622,-0.000517,-0.000409,-0.000298,-0.000184,-0.000068,0.000051,0.000173,0.000297,0.000424,0.000553,0.000684,0.000818,0.000954,0.001092,0.001232,0.001374,0.001518,0.001664,0.001812,0.001961,0.002112,0.002265,0.002419,0.002574,0.002731,0.002888,0.003047,0.003207,0.003367,0.003529,0.003691,0.003853,0.004016,0.004180,0.004343,0.004507,0.004671,0.004835,0.004999,0.005162,0.005325,0.005488,0.005650,0.005811,0.005972,0.006132,0.006290,0.006448,0.006604,0.006759,0.006913,0.007065,0.007216,0.007364,0.007511,0.007656,0.007799,0.007940,0.008079,0.008215,0.008349,0.008481,0.008609,0.008736,0.008859,0.008980,0.009097,0.009212,0.009323,0.009432,0.009537,0.009638,0.009737,0.009832,0.009923,0.010011,0.010095,0.010175,0.010252,0.010325,0.010394,0.010459,0.010520,0.010577,0.010630,0.010678,0.010723,0.010764,0.010800,0.010832,0.010860,0.010884,0.010903,0.010918,0.010929,0.010935,0.010937,0.010935,0.010929,0.010918,0.010903,0.010884,0.010860,0.010832,0.010800,0.010764,0.010723,0.010678,0.010630,0.010577,0.010520,0.010459,0.010394,0.010325,0.010252,0.010175,0.010095,0.010011,0.009923,0.009832,0.009737,0.009638,0.009537,0.009432,0.009323,0.009212,0.009097,0.008980,0.008859,0.008736,0.008609,0.008481,0.008349,0.008215,0.008079,0.007940,0.007799,0.007656,0.007511,0.007364,0.007216,0.007065,0.006913,0.006759,0.006604,0.006448,0.006290,0.006132,0.005972,0.005811,0.005650,0.005488,0.005325,0.005162,0.004999,0.004835,0.004671,0.004507,0.004343,0.004180,0.004016,0.003853,0.003691,0.003529,0.003367,0.003207,0.003047,0.002888,0.002731,0.002574,0.002419,0.002265,0.002112,0.001961,0.001812,0.001664,0.001518,0.001374,0.001232,0.001092,0.000954,0.000818,0.000684,0.000553,0.000424,0.000297,0.000173,0.000051,-0.000068,-0.000184,-0.000298,-0.000409,-0.000517,-0.000622,-0.000724,-0.000823,-0.000920,-0.001013,-0.001104,-0.001191,-0.001275,-0.001356,-0.001434,-0.001509,-0.001581,-0.001649,-0.001714,-0.001777,-0.001835,-0.001891,-0.001944,-0.001993,-0.002039,-0.002082,-0.002121,-0.002158,-0.002191,-0.002222,-0.002249,-0.002273,-0.002294,-0.002312,-0.002327,-0.002339,-0.002348,-0.002354,-0.002357,-0.002358,-0.002355,-0.002350,-0.002343,-0.002332,-0.002319,-0.002304,-0.002286,-0.002266,-0.002243,-0.002218,-0.002191,-0.002161,-0.002130,-0.002096,-0.002060,-0.002023,-0.001983,-0.001942,-0.001899,-0.001855,-0.001808,-0.001761,-0.001712,-0.001661,-0.001609,-0.001556,-0.001502,-0.001447,-0.001391,-0.001334,-0.001276,-0.001217,-0.001157,-0.001097,-0.001037,-0.000976,-0.000914,-0.000852,-0.000790,-0.000728,-0.000666,-0.000603,-0.000541,-0.000479,-0.000416,-0.000354,-0.000293,-0.000232,-0.000171,-0.000111,-0.000051,0.000008,0.000067,0.000125,0.000182,0.000238,0.000293,0.000347,0.000401,0.000453,0.000504,0.000554,0.000603,0.000650,0.000697,0.000742,0.000785,0.000828,0.000869,0.000908,0.000946,0.000982,0.001017,0.001051,0.001083,0.001113,0.001141,0.001168,0.001194,0.001217,0.001239,0.001260,0.001278,0.001295,0.001311,0.001324,0.001336,0.001346,0.001355,0.001362,0.001367,0.001370,0.001372,0.001373,0.001371,0.001368,0.001364,0.001358,0.001350,0.001341,0.001330,0.001318,0.001304,0.001289,0.001273,0.001255,0.001236,0.001216,0.001194,0.001171,0.001147,0.001122,0.001096,0.001068,0.001040,0.001011,0.000981,0.000949,0.000917,0.000884,0.000851,0.000817,0.000782,0.000746,0.000710,0.000673,0.000636,0.000598,0.000560,0.000521,0.000483,0.000444,0.000404,0.000365,0.000326,0.000286,0.000246,0.000207,0.000167,0.000128,0.000089,0.000050,0.000011,-0.000027,-0.000066,-0.000103,-0.000141,-0.000178,-0.000214,-0.000250,-0.000285,-0.000320,-0.000354,-0.000388,-0.000420,-0.000452,-0.000483,-0.000514,-0.000543,-0.000572,-0.000600,-0.000627,-0.000653,-0.000678,-0.000702,-0.000725,-0.000747,-0.000768,-0.000788,-0.000806,-0.000824,-0.000841,-0.000856,-0.000871,-0.000884,-0.000896,-0.000907,-0.000917,-0.000926,-0.000933,-0.000940,-0.000945,-0.000949,-0.000952,-0.000954,-0.000955,-0.000954,-0.000953,-0.000950,-0.000946,-0.000941,-0.000935,-0.000928,-0.000920,-0.000911,-0.000901,-0.000890,-0.000878,-0.000865,-0.000851,-0.000836,-0.000820,-0.000803,-0.000786,-0.000768,-0.000749,-0.000729,-0.000708,-0.000687,-0.000665,-0.000642,-0.000619,-0.000595,-0.000571,-0.000546,-0.000521,-0.000495,-0.000469,-0.000442,-0.000415,-0.000388,-0.000361,-0.000333,-0.000305,-0.000277,-0.000248,-0.000220,-0.000191,-0.000163,-0.000134,-0.000105,-0.000077,-0.000048,-0.000020,0.000008,0.000036,0.000064,0.000091,0.000119,0.000146,0.000172,0.000199,0.000224,0.000250,0.000275,0.000299,0.000323,0.000347,0.000370,0.000392,0.000414,0.000435,0.000456,0.000476,0.000495,0.000513,0.000531,0.000548,0.000565,0.000580,0.000595,0.000609,0.000622,0.000634,0.000646,0.000657,0.000667,0.000676,0.000684,0.000691,0.000698,0.000703,0.000708,0.000712,0.000715,0.000717,0.000718,0.000719,0.000719,0.000717,0.000715,0.000712,0.000709,0.000704,0.000699,0.000693,0.000686,0.000678,0.000669,0.000660,0.000650,0.000640,0.000628,0.000616,0.000604,0.000590,0.000576,0.000562,0.000547,0.000531,0.000515,0.000498,0.000481,0.000463,0.000445,0.000426,0.000407,0.000388,0.000368,0.000348,0.000328,0.000307,0.000286,0.000265,0.000244,0.000222,0.000200,0.000179,0.000157,0.000135,0.000113,0.000091,0.000069,0.000047,0.000025,0.000003,-0.000019,-0.000040,-0.000062,-0.000083,-0.000104,-0.000125,-0.000145,-0.000165,-0.000185,-0.000205,-0.000224,-0.000243,-0.000262,-0.000280,-0.000298,-0.000315,-0.000332,-0.000348,-0.000364,-0.000379,-0.000394,-0.000408}; diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index aa35647..595efa3 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -24,8 +24,6 @@ #include "sigProcLib.h" #include "GSMCommon.h" -#include "sendLPF_961.h" -#include "rcvLPF_651.h" using namespace GSM; diff --git a/Transceiver52M/sigProcLibTest.cpp b/Transceiver52M/sigProcLibTest.cpp deleted file mode 100644 index 32661f4..0000000 --- a/Transceiver52M/sigProcLibTest.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/* -* Copyright 2011 Free Software Foundation, Inc. -* Copyright 2008, 2010 Kestrel Signal Processing, Inc. -* -* This software is distributed under the terms of the GNU Affero Public License. -* See the COPYING file in the main directory for details. -* -* This use of this software may be subject to additional restrictions. -* See the LEGAL file in the main directory for details. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -/* -Contributors: -Harvind S. Samra, hssamra@kestrelsp.com -*/ - - -#include "sigProcLib.h" -//#include "radioInterface.h" -#include <Logger.h> -#include <Configuration.h> -#include <GSMCommon.h> - -using namespace std; -using namespace GSM; - -ConfigurationTable gConfig; - -int main(int argc, char **argv) { - - gLogInit("sigProcLibTest","DEBUG"); - - int samplesPerSymbol = 1; - - int TSC = 2; - - sigProcLibSetup(samplesPerSymbol); - - BitVector RACHBurstStart = "01010101"; - BitVector RACHBurstRest = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; - - BitVector RACHBurst(BitVector(RACHBurstStart,gRACHSynchSequence),RACHBurstRest); - - - signalVector *RACHSeq = modulateBurst(RACHBurst, - 9, - samplesPerSymbol); - - complex a; float t; - detectRACHBurst(*RACHSeq, 5, samplesPerSymbol,&a,&t); - - //cout << *RACHSeq << endl; - //signalVector *autocorr = correlate(RACHSeq,RACHSeq,NULL,NO_DELAY); - - //cout << *autocorr; - - //exit(1); - - - /*signalVector x(6500); - x.fill(1.0); - - frequencyShift(&x,&x,0.48*M_PI); - - signalVector *y = polyphaseResampleVector(x,96,65,NULL); - - cout << *y << endl; - - exit(1);*/ - - //CommSig normalBurstSeg = "0000000000000000000000000000000000000000000000000000000000000"; - - BitVector normalBurstSeg = "0000101010100111110010101010010110101110011000111001101010000"; - - BitVector normalBurst(BitVector(normalBurstSeg,gTrainingSequence[TSC]),normalBurstSeg); - - generateMidamble(samplesPerSymbol,TSC); - - signalVector *modBurst = modulateBurst(normalBurst,0,samplesPerSymbol); - - - //delayVector(*rsVector2,6.932); - - complex ampl = 1; - float TOA = 0; - - //modBurst = rsVector2; - //delayVector(*modBurst,0.8); - - /* - signalVector channelResponse(4); - signalVector::iterator c=channelResponse.begin(); - *c = (complex) 9000.0; c++; - *c = (complex) 0.4*9000.0; c++; c++; - *c = (complex) -1.2*0; - - signalVector *guhBurst = convolve(modBurst,&channelResponse,NULL,NO_DELAY); - delete modBurst; modBurst = guhBurst; - */ - - signalVector *chanResp; - /* - double noisePwr = 0.001/sqrtf(2); - signalVector *noise = gaussianNoise(modBurst->size(),noisePwr); - */ - float chanRespOffset; - analyzeTrafficBurst(*modBurst,TSC,8.0,samplesPerSymbol,&l,&TOA,1,true,&chanResp,&chanRespOffset); - //addVector(*modBurst,*noise); - - cout << "ampl:" << ampl << endl; - cout << "TOA: " << TOA << endl; - //cout << "chanResp: " << *chanResp << endl; - SoftVector *demodBurst = demodulateBurst(*modBurst,samplesPerSymbol,(complex) ampl, TOA); - - cout << *demodBurst << endl; - - /* - COUT("chanResp: " << *chanResp); - - signalVector *w,*b; - designDFE(*chanResp,1.0/noisePwr,7,&w,&b); - COUT("w: " << *w); - COUT("b: " << *b); - - - SoftSig *DFEBurst = equalizeBurst(*modBurst,TOA-chanRespOffset,samplesPerSymbol,*w,*b); - COUT("DFEBurst: " << *DFEBurst); - - delete gsmPulse; - delete RACHSeq; - delete modBurst; - delete sendLPF; - delete rcvLPF; - delete rsVector; - //delete rsVector2; - delete autocorr; - delete chanResp; - delete noise; - delete demodBurst; - delete w; - delete b; - delete DFEBurst; - */ - - sigProcLibDestroy(); - -} |