Qucs-core
0.0.19
|
00001 /* 00002 * receiver.h - EMI receiver class definitions 00003 * 00004 * Copyright (C) 2009 Dirk Schaefer <schad@5pm.de> 00005 * Copyright (C) 2009 Stefan Jahn <stefan@lkcc.org> 00006 * 00007 * This is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2, or (at your option) 00010 * any later version. 00011 * 00012 * This software is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this package; see the file COPYING. If not, write to 00019 * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, 00020 * Boston, MA 02110-1301, USA. 00021 * 00022 * $Id$ 00023 * 00024 */ 00025 00026 #ifndef __RECEIVER_H__ 00027 #define __RECEIVER_H__ 00028 00029 #include <cstdint> 00030 00031 namespace qucs { 00032 00033 namespace emi { 00034 00035 // receiver setting 00036 struct settings { 00037 nr_double_t start; 00038 nr_double_t stop; 00039 nr_double_t stepsize; 00040 nr_double_t bandwidth; 00041 }; 00042 00043 // internal helper functions 00044 int32_t nearestbin32 (int); 00045 nr_double_t f_2ndorder (nr_double_t, nr_double_t, nr_double_t); 00046 nr_double_t f_gauss (nr_double_t, nr_double_t, nr_double_t); 00047 nr_double_t f_ideal (nr_double_t, nr_double_t, nr_double_t); 00048 qucs::vector * receiver (nr_double_t *, nr_double_t, int); 00049 00050 // external functionality 00051 qucs::vector * receiver (qucs::vector *, qucs::vector *, int len = -1); 00052 00053 } // namespace emi 00054 00055 } // namespace qucs 00056 00057 #endif /* __RECEIVER_H__ */