diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/COPYING b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/COPYING deleted file mode 100644 index 818433ecc0e094a4db1023c68b33f24344643ad8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - 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/>. - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - <program> Copyright (C) <year> <name of author> - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -<http://www.gnu.org/licenses/>. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/Makefile b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/Makefile deleted file mode 100644 index adca6587b3e25816fd19000ea96c240d7ab7136f..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -updatefw: updatefw.c - $(CC) updatefw.c -o updatefw -I../../../targets/ARCH/EXMIMO - -clean: - rm -f updatefw - diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/elf.h b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/elf.h deleted file mode 100644 index 35084dcbc9dbe37c0d2b216f634abc6085bb120b..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/elf.h +++ /dev/null @@ -1,605 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/*============================================================================ - File: elf.h - Include file for ELF file. Defines both 32-/64-bit files. - Copyright Hewlett-Packard Co. 1996. All rights reserved. -============================================================================*/ - -#ifndef ELF_INCLUDED -#define ELF_INCLUDED - -#include "elftypes.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*============================================================================ - Constant values for the sizes of fundamental types -============================================================================*/ - -#define ELF64_FSZ_ADDR 8 -#define ELF64_FSZ_HALF 2 -#define ELF64_FSZ_OFF 8 -#define ELF64_FSZ_SWORD 4 -#define ELF64_FSZ_WORD 4 -#define ELF64_FSZ_SXWORD 8 -#define ELF64_FSZ_XWORD 8 - -#define ELF32_FSZ_ADDR 4 -#define ELF32_FSZ_HALF 2 -#define ELF32_FSZ_OFF 4 -#define ELF32_FSZ_SWORD 4 -#define ELF32_FSZ_WORD 4 -#define ELF32_FSZ_XWORD 4 - -/*============================================================================ - The EI_* macros define indices into the e_ident[] array of the - ElfXX_Ehdr structure. -============================================================================*/ - -#define EI_MAG0 0 /* File identification */ -#define EI_MAG1 1 /* File identification */ -#define EI_MAG2 2 /* File identification */ -#define EI_MAG3 3 /* File identification */ -#define EI_CLASS 4 /* File class */ -#define EI_DATA 5 /* Data encoding */ -#define EI_VERSION 6 /* File version */ -#define EI_OSABI 7 /* OS/ABI identification */ -#define EI_ABIVERSION 8 /* ABI version */ -#define EI_PAD 9 /* Start of padding bytes */ - -#define EI_NIDENT 16 /* Size of e_ident[] */ - - -/*============================================================================ - ElfXX_Ehdr - ELF file header structure. -============================================================================*/ - -typedef struct { - unsigned char e_ident[EI_NIDENT]; /* ELF identification */ - Elf64_Half e_type; /* Object file type */ - Elf64_Half e_machine; /* Machine type */ - Elf64_Word e_version; /* Object file version */ - Elf64_Addr e_entry; /* Entry point address */ - Elf64_Off e_phoff; /* Program header offset */ - Elf64_Off e_shoff; /* Section header offset */ - Elf64_Word e_flags; /* Processor-specific flags */ - Elf64_Half e_ehsize; /* ELF header size */ - Elf64_Half e_phentsize; /* Size of program header entry */ - Elf64_Half e_phnum; /* Number of program header entries */ - Elf64_Half e_shentsize; /* Size of section header entry */ - Elf64_Half e_shnum; /* Number of section header entries */ - Elf64_Half e_shstrndx; /* Section name string table index */ -} Elf64_Ehdr; - -typedef struct { - unsigned char e_ident[EI_NIDENT]; /*16/ ELF "magic number" */ - Elf32_Half e_type; /* 2/ Identifies object file type */ - Elf32_Half e_machine; /* 2/ Specifies required architecture */ - Elf32_Word e_version; /* 4/ Identifies object file version */ - Elf32_Addr e_entry; /* 4/ Entry point virtual address */ - Elf32_Off e_phoff; /* 4/ Program header table file offset */ - Elf32_Off e_shoff; /* 4/ Section header table file offset */ - Elf32_Word e_flags; /* 4/ Processor-specific flags */ - Elf32_Half e_ehsize; /* 2/ ELF header size in bytes */ - Elf32_Half e_phentsize; /* 2/ Program header table entry size */ - Elf32_Half e_phnum; /* 2/ Program header table entry count */ - Elf32_Half e_shentsize; /* 2/ Section header table entry size */ - Elf32_Half e_shnum; /* 2/ Section header table entry count */ - Elf32_Half e_shstrndx; /* 2/ Section header string table index */ -} Elf32_Ehdr; - - -/*============================================================================ - The ELFCLASS* macros are the defined values of e_ident[EI_CLASS]. -============================================================================*/ - -#define ELFCLASSNONE 0 /* Invalid class */ -#define ELFCLASS32 1 /* 32-bit objects */ -#define ELFCLASS64 2 /* 64-bit objects */ - -#define ELFCLASS64_A 200 /* 64-bit objects (interim definition) */ - - -/*============================================================================ - The ELFDATA* macros are the allowed values of e_ident[EI_DATA]. -============================================================================*/ - -#define ELFDATANONE 0 /* Invalid data encoding */ -#define ELFDATA2LSB 1 /* 2's complement, LSB at lowest byte address */ -#define ELFDATA2MSB 2 /* 2's complement, MSB at lowest byte address */ - - -/*============================================================================ - The ELFOSIABI* macros are the allowed values of e_ident[EI_OSABI]. -============================================================================*/ - -#define ELFOSABI_SYSV 0 /* System V ABI, third edition, no checking */ -#define ELFOSABI_HPUX 1 /* HP-UX operating system */ - -#define ELFOSABI_STANDALONE 255 /* STANDALONE operating system */ - - -/*============================================================================ - The ELFABIVERSION* macros are the allowed values of e_ident[EI_ABIVERSION]. -============================================================================*/ - -#define ELFABI_HPUX_NONE 0 /* None specified */ -#define ELFABI_HPUX_REL11 1 - - -/*============================================================================ - The ET_* macros define the values of the e_type field of the ElfXX_Ehdr - structure. -============================================================================*/ - -#define ET_NONE 0 /* No file type */ -#define ET_REL 1 /* Relocatable file */ -#define ET_EXEC 2 /* Executable file */ -#define ET_DYN 3 /* Shared object file */ -#define ET_CORE 4 /* Core file */ - -#define ET_LOOS 0xfe00 /* OS-specific lowest value */ -#define ET_HIOS 0xfeff /* OS-specific highest value */ - -#define ET_LOPROC 0xff00 /* Processor-specific lowest value */ -#define ET_HIPROC 0xffff /* Processor-specific highest value */ - - -/*============================================================================ - The EV_* macros are the allowed values of the e_version field of - ElfXX_Ehdr; -============================================================================*/ - -#define EV_NONE 0 /* Invalid version */ -#define EV_CURRENT 1 /* Current version */ - - -/*============================================================================ - The ELFMAG* macros are the values of e_ident[EI_MAG0-4] -============================================================================*/ - -#define ELFMAG0 0x7f /* magic number, byte 0 */ -#define ELFMAG1 'E' /* magic number, byte 1 */ -#define ELFMAG2 'L' /* magic number, byte 2 */ -#define ELFMAG3 'F' /* magic number, byte 3 */ -#define ELFMAG "\177ELF" /* magic string */ -#define SELFMAG 4 /* magic string length */ - - -/*============================================================================ - ElfXX_Phdr - program header structure. Element of the array of - program headers. -============================================================================*/ - -typedef struct { - Elf64_Word p_type; /* Type of segment */ - Elf64_Word p_flags; /* Segment attributes */ - Elf64_Off p_offset; /* Offset in file */ - Elf64_Addr p_vaddr; /* Virtual address in memory */ - Elf64_Addr p_paddr; /* Reserved */ - Elf64_Xword p_filesz; /* Size of segment in file */ - Elf64_Xword p_memsz; /* Size of segment in memory */ - Elf64_Xword p_align; /* Alignment of segment */ -} Elf64_Phdr; - -typedef struct { - Elf32_Word p_type; /* Type of segment */ - Elf32_Off p_offset; /* Offset in file */ - Elf32_Addr p_vaddr; /* Virtual address in memory */ - Elf32_Addr p_paddr; /* Reserved */ - Elf32_Xword p_filesz; /* Size of segment in file */ - Elf32_Xword p_memsz; /* Size of segment in memory */ - Elf32_Word p_flags; /* Segment attributes */ - Elf32_Xword p_align; /* Alignment of segment */ -} Elf32_Phdr; - - -/*============================================================================ - The PF_* macros are the segment flag bits in p_flags of ElfXX_Phdr. -============================================================================*/ - -#define PF_X 0x1 /* Execute */ -#define PF_W 0x2 /* Write */ -#define PF_R 0x4 /* Read */ - -#define PF_MASKOS 0x0ff00000 /* OS-specific */ - -#define PF_MASKPROC 0xf0000000 /* Processor-specific */ - - -/*============================================================================ - The PT_* macros are the values of p_type in ElfXX_Phdr. -============================================================================*/ - -#define PT_NULL 0 /* Array element is unused. Ignore. */ -#define PT_LOAD 1 /* Loadable segment. */ -#define PT_DYNAMIC 2 /* Dynamic Section */ -#define PT_INTERP 3 /* Section is a path to an interpreter */ -#define PT_NOTE 4 /* Note Section */ -#define PT_SHLIB 5 /* Currently unspecified semantics */ -#define PT_PHDR 6 /* Program header table. */ - -#define PT_LOOS 0x60000000 /* Lowest OS-specific type */ -#define PT_HIOS 0x6fffffff /* Highest OS-specific type */ - -#define PT_LOPROC 0x70000000 /* Lowest Processor-specific type */ -#define PT_HIPROC 0x7fffffff /* Highest Processor-specific type */ - - -/*============================================================================ - ElfXX_Shdr - structure for an ELF section header. Element of the array - of section headers. -============================================================================*/ - -typedef struct { - Elf64_Word sh_name; /* Section name */ - Elf64_Word sh_type; /* Section type */ - Elf64_Xword sh_flags; /* Section attributes */ - Elf64_Addr sh_addr; /* Virtual address in memory */ - Elf64_Off sh_offset; /* Offset in file */ - Elf64_Xword sh_size; /* Size of section */ - Elf64_Word sh_link; /* Link to other section */ - Elf64_Word sh_info; /* Miscellaneous information */ - Elf64_Xword sh_addralign; /* Address alignment boundary */ - Elf64_Xword sh_entsize; /* Entry size, if section has table */ -} Elf64_Shdr; - -typedef struct { - Elf32_Word sh_name; /* Section name */ - Elf32_Word sh_type; /* Section type */ - Elf32_Xword sh_flags; /* Section attributes */ - Elf32_Addr sh_addr; /* Virtual address in memory */ - Elf32_Off sh_offset; /* Offset in file */ - Elf32_Xword sh_size; /* Size of section */ - Elf32_Word sh_link; /* Link to other section */ - Elf32_Word sh_info; /* Miscellaneous information */ - Elf32_Xword sh_addralign; /* Address alignment boundary*/ - Elf32_Xword sh_entsize; /* Entry size, if section has table */ -} Elf32_Shdr; - - -/*============================================================================ - The ELF_STRING_xxx macros are names of common sections -============================================================================*/ - -#define ELF_STRING_bss ".bss" -#define ELF_STRING_hbss ".hbss" -#define ELF_STRING_sbss ".sbss" -#define ELF_STRING_tbss ".tbss" -#define ELF_STRING_data ".data" -#define ELF_STRING_hdata ".hdata" -#define ELF_STRING_sdata ".sdata" -#define ELF_STRING_fini ".fini" -#define ELF_STRING_init ".init" -#define ELF_STRING_interp ".interp" -#define ELF_STRING_rodata ".rodata" -#define ELF_STRING_text ".text" -#define ELF_STRING_comment ".comment" -#define ELF_STRING_dynamic ".dynamic" -#define ELF_STRING_dynstr ".dynstr" -#define ELF_STRING_dynsym ".dynsym" -#define ELF_STRING_dlt ".dlt" -#define ELF_STRING_note ".note" -#define ELF_STRING_opd ".opd" -#define ELF_STRING_plt ".plt" -#define ELF_STRING_bss_rela ".rela.bss" -#define ELF_STRING_hbss_rela ".rela.hbss" -#define ELF_STRING_data_rela ".rela.data" -#define ELF_STRING_dlt_rela ".rela.dlt" -#define ELF_STRING_plt_rela ".rela.plt" -#define ELF_STRING_sdata_rela ".rela.sdata" -#define ELF_STRING_strtab ".strtab" -#define ELF_STRING_symtab ".symtab" -#define ELF_STRING_hash ".hash" -#define ELF_STRING_shstrtab ".shstrtab" -#define ELF_STRING_shsymtab ".shsymtab" -#define ELF_STRING_rela ".rela" -#define ELF_STRING_rel ".rel" - - -/*============================================================================ - The SHF_* macros are the allowed values of the sh_flags field of - ElfXX_Shdr. These 1-bit flags define attributes of a section. -============================================================================*/ - -#define SHF_WRITE 0x1 /* Writable during execution */ -#define SHF_ALLOC 0x2 /* Occupies memory during execution */ -#define SHF_EXECINSTR 0x4 /* Contains executable instructions */ - -#define SHF_MASKPROC 0xf0000000 /* mask for processor-specific bits */ - - -/*============================================================================ - SHN_* macros are reserved section header indices. An object file will - not have sections for these special indices. -============================================================================*/ - -#define SHN_UNDEF 0 /* undefined, e.g. undefined symbol */ - -#define SHN_LORESERVE 0xff00 /* Lower bound of reserved indices */ - -#define SHN_LOPROC 0xff00 /* Lower bound processor-specific index */ -#define SHN_HIPROC 0xff1f/* Upper bound processor-specific index */ - -#define SHN_LOOS 0xff20 /* Lower bound OS-specific index */ -#define SHN_HIOS 0xff3f /* Upper bound OS-specific index */ - -#define SHN_ABS 0xfff1 /* Absolute value, not relocated */ -#define SHN_COMMON 0xfff2/* FORTRAN common or unallocated C */ - -#define SHN_HIRESERVE 0xffff /* Upper bound of reserved indices */ - - -/*============================================================================ - SHT_* macros are the values of sh_type in ElfXX_Shdr -============================================================================*/ - -#define SHT_NULL 0 /* Inactive section header */ -#define SHT_PROGBITS 1 /* Information defined by the program */ -#define SHT_SYMTAB 2 /* Symbol table - not DLL */ -#define SHT_STRTAB 3 /* String table */ -#define SHT_RELA 4 /* Explicit addend relocations, Elf64_Rela */ -#define SHT_HASH 5 /* Symbol hash table */ -#define SHT_DYNAMIC 6 /* Information for dynamic linking */ -#define SHT_NOTE 7 /* A Note section */ -#define SHT_NOBITS 8 /* Like SHT_PROGBITS with no data */ -#define SHT_REL 9 /* Implicit addend relocations, Elf64_Rel */ -#define SHT_SHLIB 10 /* Currently unspecified semantics */ -#define SHT_DYNSYM 11 /* Symbol table for a DLL */ - -#define SHT_LOOS 0x60000000 /* Lowest OS-specific section type */ -#define SHT_HIOS 0x6fffffff /* Highest OS-specific section type */ - -#define SHT_LOPROC 0x70000000 /* Lowest processor-specific section type */ -#define SHT_HIPROC 0x7fffffff /* Highest processor-specific section type */ - - -/*============================================================================ - ElfXX_Sym - ELF symbol structure. -============================================================================*/ - -typedef struct { - Elf64_Word st_name; /* Symbol name */ - unsigned char st_info; /* Type and Binding attributes */ - unsigned char st_other; /* Reserved */ - Elf64_Half st_shndx; /* Section table index */ - Elf64_Addr st_value; /* Symbol value */ - Elf64_Xword st_size; /* Size of object (e.g., common) */ -} Elf64_Sym; - -typedef struct { - Elf32_Word st_name; /* Symbol name */ - Elf32_Addr st_value; /* Symbol value */ - Elf32_Xword st_size; /* Size of object (e.g., common) */ - unsigned char st_info; /* Type and Binding attributes */ - unsigned char st_other; /* Reserved */ - Elf32_Half st_shndx; /* Section table index */ -} Elf32_Sym; - - -/*============================================================================ - The ELFXX_ST_* macros operate on the st_info field of ElfXX_Sym - to extract binding attributes, type information and how to build - an st_info value from binding and type information. -============================================================================*/ - -#define ELF64_ST_BIND(val) ((val) >> 4) -#define ELF64_ST_TYPE(val) ((val) & 0xf) -#define ELF64_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xf)) - -#define ELF32_ST_BIND(val) ((val) >> 4) -#define ELF32_ST_TYPE(val) ((val) & 0xf) -#define ELF32_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xf)) - - -/*============================================================================ - STN_UNDEF (zero) designeates the first entry in the symbol table and serves - as the undefined symbol index. -============================================================================*/ - -#define STN_UNDEF 0 - - -/*============================================================================ - The STB_* macros are the defined values of the binding information part - of st_info in ElfXX_Sym. -============================================================================*/ - -#define STB_LOCAL 0 /* Local symbols */ -#define STB_GLOBAL 1 /* Globally visible symbols */ -#define STB_WEAK 2 /* Global symbols with lower precedence */ - -#define STB_LOOS 10 /* Lowest OS-specific value */ -#define STB_HIOS 12 /* Highest OS-specific value */ - -#define STB_LOPROC 13 /* Lowest processor-specific value */ -#define STB_HIPROC 15 /* Highest processor-specific value */ - - -/*=========================================================================== - The STT_* macros are the allowed values of the type information part of - st_info in ElfXX_Sym. -============================================================================*/ - -#define STT_NOTYPE 0 /* Undefined symbol type */ -#define STT_OBJECT 1 /* A data object, variable, array, etc. */ -#define STT_FUNC 2 /* A function or other executable code */ -#define STT_SECTION 3 /* Symbol associated with a section */ -#define STT_FILE 4 /* Typically the name of the source file */ - -#define STT_LOOS 10 /* Lowest OS-specific symbol type */ -#define STT_HIOS 12 /* Highest OS-specific symbol type */ - -#define STT_LOPROC 13 /* Lowest processor-specific symbol type */ -#define STT_HIPROC 15 /* Highest processor-specific symbol type */ - - -/*============================================================================ - ElfXX_Rel - ELF relocation without an explicit addend. -============================================================================*/ - -typedef struct { - Elf64_Addr r_offset; /* Address of reference */ - Elf64_Xword r_info; /* Symbol index, relocation type */ -} Elf64_Rel; - -typedef struct { - Elf32_Addr r_offset; /* Address of reference */ - Elf32_Xword r_info; /* Symbol index, reloc. type */ -} Elf32_Rel; - -/*============================================================================ - ElfXX_Rela - ELF relocation with an explicit addend. -============================================================================*/ - -typedef struct { - Elf64_Addr r_offset; /* Address of reference */ - Elf64_Xword r_info; /* Symbol index, relocation type */ - Elf64_Sxword r_addend; /* Constant part of expression */ -} Elf64_Rela; - -typedef struct { - Elf32_Addr r_offset; /* Address of reference */ - Elf32_Xword r_info; /* Symbol index, reloc. type */ - Elf32_Sword r_addend; /* Constant part of expression */ -} Elf32_Rela; - - -/*============================================================================ - The ELFXX_R_* macros show how to extract the type and index parts - of r_info in ElfXX_Rel and ElfXX_Rela and how to build r_info - from a symbol index and type. -============================================================================*/ - -#define ELF64_R_INFO(sym,type) \ - ((((Elf64_Addr) (sym)) << 32) + ((Elf64_Addr) (type))) -#define ELF64_R_SYM(info) \ - ((Elf64_Sword) (((Elf64_Addr) (info)) >> 32)) -#define ELF64_R_TYPE(info) \ - ((Elf64_Word) (((Elf64_Addr) (info)) & 0xffffffffLL)) - -#define ELF32_R_INFO(sym,type) (((sym) << 8) + ((unsigned char) (type))) -#define ELF32_R_SYM(info) ((info) >> 8) -#define ELF32_R_TYPE(info) ((unsigned char) (info)) - - -/*============================================================================ - ElfXX_Dyn - dynamic array entry. -============================================================================*/ - -typedef struct { - Elf32_Sword d_tag; - union { - Elf32_Word d_val; /* unsigned word */ - Elf32_Addr d_ptr; /* address */ - } d_un; -} Elf32_Dyn; - -extern Elf32_Dyn _DYNAMIC32[]; - -typedef struct { - Elf64_Sxword d_tag; - union { - Elf64_Xword d_val; /* unsigned word */ - Elf64_Addr d_ptr; /* address */ - } d_un; -} Elf64_Dyn; - -extern Elf64_Dyn _DYNAMIC[]; - - -/*============================================================================ - The DT_* defines are the allowed values of d_tag in ElfXX_dyn. - These are the Dynamic Array types. -============================================================================*/ - -/* (i)gnore (m)andatory (o)ptional */ -/* d_un Exec DLL */ -/* ---- ---- --- */ -#define DT_NULL 0 /* ignored m m */ -#define DT_NEEDED 1 /* d_val o o */ -#define DT_PLTRELSZ 2 /* d_val o o */ -#define DT_PLTGOT 3 /* d_ptr o o */ -#define DT_HASH 4 /* d_ptr m m */ -#define DT_STRTAB 5 /* d_ptr m m */ -#define DT_SYMTAB 6 /* d_ptr m m */ -#define DT_RELA 7 /* d_ptr m o */ -#define DT_RELASZ 8 /* d_val m o */ -#define DT_RELAENT 9 /* d_val m o */ -#define DT_STRSZ 10 /* d_val m m */ -#define DT_SYMENT 11 /* d_val m m */ -#define DT_INIT 12 /* d_ptr o o */ -#define DT_FINI 13 /* d_ptr o o */ -#define DT_SONAME 14 /* d_val i o */ -#define DT_RPATH 15 /* d_val o i */ -#define DT_SYMBOLIC 16 /* ignored i o */ -#define DT_REL 17 /* d_ptr m o */ -#define DT_RELSZ 18 /* d_val m o */ -#define DT_RELENT 19 /* d_val m o */ -#define DT_PLTREL 20 /* d_val o o */ -#define DT_DEBUG 21 /* d_ptr o i */ -#define DT_TEXTREL 22 /* ignored o o */ -#define DT_JMPREL 23 /* d_ptr o o */ -#define DT_BIND_NOW 24 /* ignored */ -#define DT_INIT_ARRAY 25 /* d_ptr o o */ -#define DT_FINI_ARRAY 26 /* d_ptr o o */ -#define DT_INIT_ARRAYSZ 27 /* d_val o o */ -#define DT_FINI_ARRAYSZ 28 /* d_val o o */ - -#define DT_LOOS 0x60000000 /* unspecified - OS specific */ -#define DT_HIOS 0x6fffffff /* unspecified - OS specific */ - -#define DT_LOPROC 0x70000000 /* unspecified - processor specific */ -#define DT_HIPROC 0x7fffffff /* unspecified - processor specific */ - - -#ifndef _HP_NO_ELF_DEPRICATED - -/* These defines have been depricated and will be removed in a future release.*/ - -#define ELFOSABI_NONE 0 /* None specified */ -#define ELFOSABI_NT 2 /* NT operating system */ -#define ELFOSABI_SCOUNIX 3 /* SCO UNIX operating system */ -#define SHF_COMDAT 0x8 /* Is a member of a COMDAT group */ -#define SHT_COMDAT 12 /* COMDAT group directory -> SHT_HP_COMDAT */ - -#endif /* ifndef _HP_NO_ELF_DEPRICATED */ - -#ifdef __cplusplus -} -#endif /* ifndef _HP_NO_ELF_DEPRICATED */ - -#if defined(ELF_TARGET_ALL) || defined(ELF_TARGET_PARISC) -#include <elf_parisc.h> -#endif - -#endif /* ELF_INCLUDED */ diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/elftypes.h b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/elftypes.h deleted file mode 100644 index 715435f9a1342ed3ed5e9ffddbd230c63401d7f8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/elftypes.h +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/*============================================================================ - File: elftypes.h - Include file for Elf types. Define elf types for Elf structures. - Copyright Hewlett-Packard Co. 1995. All rights reserved. -============================================================================*/ - -#ifndef ELFTYPES_INCLUDED -#define ELFTYPES_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __LP64__ -typedef unsigned int Elf32_Addr; /* Unsigned program address */ -typedef unsigned int Elf32_Off; /* Unsigned file offset */ -typedef int Elf32_Sword; /* Signed large integer */ -typedef unsigned int Elf32_Xword; /* Unsigned large integer */ -#else -typedef unsigned long Elf32_Addr; /* Unsigned program address */ -typedef unsigned long Elf32_Off; /* Unsigned file offset */ -typedef long Elf32_Sword; /* Signed large integer */ -typedef unsigned long Elf32_Xword; /* Unsigned large integer */ -#endif - -typedef unsigned int Elf32_Word; /* Unsigned large integer */ -typedef unsigned short Elf32_Half; /* Unsigned medium integer */ -typedef unsigned char Elf32_Char; /* Unsigned tiny integer */ -typedef unsigned char Elf32_Byte; /* Unsigned tiny integer */ - -#ifdef __LP64__ -typedef unsigned long Elf64_Addr; -typedef unsigned long Elf64_Off; -typedef unsigned long Elf64_Xword; -typedef long Elf64_Sxword; -#else -typedef unsigned long long Elf64_Addr; -typedef unsigned long long Elf64_Off; -typedef unsigned long long Elf64_Xword; -typedef long long Elf64_Sxword; -#endif - -typedef unsigned short Elf64_Half; -typedef int Elf64_Sword; -typedef unsigned int Elf64_Word; -typedef unsigned char Elf64_Byte; /* Unsigned tiny integer */ - -#ifdef __cplusplus -} -#endif - -#endif /* ELFTYPES_INCLUDED */ diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/main b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/main deleted file mode 100755 index 974fb46a33b9410c8243c5c40090ecfc3f8924fc..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/main and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/updatefw.c b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/updatefw.c deleted file mode 100644 index 633eb1fecd83c6111677a8300ac03c6a0934d7b7..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/updatefw.c +++ /dev/null @@ -1,657 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* - C Header file <updatefw.h> for updatefw tool. - - K. Khalfallah, Aug, 2007 - kkhalfallah@free.fr -*/ - -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <fcntl.h> -#include <getopt.h> -#include <string.h> -#include <unistd.h> - -#include <sys/ioctl.h> -#include <openair_device.h> - -#include "elf.h" -#include "elftypes.h" -#define EM_SPARC 2 -#define MAX_SIZE_STRING_TABLE 1024 -#define MAX_SIZE_SECTION_NAME 32 - -#include "updatefw.h" - -/* Interface with OpenAirInterface driver */ -#define DEVICE_NAME "/dev/openair0" -#define ACCESS_MODE O_RDONLY - -#define SWITCH_IS_OFF 0 -#define SWITCH_IS_ON 1 -static unsigned int helpflag = SWITCH_IS_OFF; -static unsigned int pflag = SWITCH_IS_OFF; -static unsigned int fflag = SWITCH_IS_OFF; -static unsigned int sflag = SWITCH_IS_OFF; -static unsigned int rebootflag = SWITCH_IS_OFF; -static FILE* p_elfimage; -static Elf32_Ehdr elf_Ehdr; -static Elf32_Shdr elf_Shdr; -long Shdr_pos, StringSec_pos, StringSec_size; -//char section_name[MAX_SIZE_SECTION_NAME]; -char SecNameStnTable[MAX_SIZE_STRING_TABLE]; -unsigned int ioctl_params[4]; - -#define LONGOPTIONS_NB 5 -struct option updatefw_longopts[LONGOPTIONS_NB+1] = { - { .name = "help", .has_arg = no_argument, .flag = &helpflag, .val = SWITCH_IS_ON }, - { .name = "firmware", .has_arg = required_argument, .flag = NULL, .val = 'f' }, - { .name = "pretend", .has_arg = no_argument, .flag = &pflag, .val = SWITCH_IS_ON }, - { .name = "stackptr", .has_arg = required_argument, .flag = NULL, .val = 's' }, - { .name = "forcereboot", .has_arg = no_argument, .flag = &rebootflag, .val = SWITCH_IS_ON }, - {0, 0, 0, 0} -}; -#define TRUE 1 -#define FALSE 0 - -void show_usage(char* pgname) -{ - unsigned int i; - fprintf(stderr, " %s : Tool to update firmware of Cardbus-MIMO-1/Leon3 card through the PCI interface,\n", pgname); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " that is, even without using the Xilinx parallel cable. The tool performs sequentially\n"); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " the 5 following operations:\n"); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " 1) Ask card driver to reboot (optionally)\n"); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " 2) Ask card driver to transfer .text section\n"); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " 3) Ask card driver to transfer .data section\n"); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " 4) Ask card driver to clear .bss section\n"); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " 5) Ask card driver to have Leon processor set stack-pointer\n"); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, " and jump to firmware entry.\n"); - fprintf(stderr, "Usage:\n"); - fprintf(stderr, " %s [-f|--firmware 'filename'] [-s|--stackptr value] [-b|--forcereboot]\n",pgname); - fprintf(stderr, " "); - - for (i=0; i<strlen(pgname); i++) fprintf(stderr, " "); - - fprintf(stderr, "[-v|-vv|-vvv|-vvvv] [-h|--help] [-p|--pretend]\n\n"); - fprintf(stderr, " [-f|--firmware ] Mandatory option, to set the name of the executable file\n"); - fprintf(stderr, " of the firmware to update the remote card with.\n"); - fprintf(stderr, " The file should be an executable file in the Sparc32 ELF binary\n"); - fprintf(stderr, " format, containing at least the 3 mandatory sections .text, .data & .bss\n"); - fprintf(stderr, " [-s|--stackptr] Mandatory option, to set the value of the stack pointer before\n"); - fprintf(stderr, " giving hand to the firmware. The specified value must be an integer\n"); - fprintf(stderr, " number of 8 hexadecimal digits preceded by token '0x'.\n"); - fprintf(stderr, " [-b|--forcereboot] Force reboot of Leon processor before updating the firmware.\n"); - fprintf(stderr, " [-p|--pretend] Just pretend to transfer commands (ioctls) to driver, don't do it\n"); - fprintf(stderr, " actually. Useful together with verbose -vv switch.\n"); - fprintf(stderr, " [-v|-vv|-vvv|-vvvv] Verbose modes.\n"); - fprintf(stderr, " [-h|--help] Displays this help.\n"); -} - -int get_elf_header(Elf32_Ehdr* p_Elf32_hdr, FILE* p_file) -{ - int nbread; - nbread = fread(p_Elf32_hdr, sizeof(elf_Ehdr), 1, p_file); - - if (nbread != 1) { - fprintf(stderr, "Error : while reading ELF header (fread() returned %d)\n", nbread); - exit(-1); - } - - invert2(p_Elf32_hdr->e_type); /* $$$$KMK: bad code !!! Endianess dependant ! */ - invert2(p_Elf32_hdr->e_machine); - invert4(p_Elf32_hdr->e_version); - invert4(p_Elf32_hdr->e_entry); - invert4(p_Elf32_hdr->e_phoff); - invert4(p_Elf32_hdr->e_shoff); - invert4(p_Elf32_hdr->e_flags); - invert2(p_Elf32_hdr->e_ehsize); - invert2(p_Elf32_hdr->e_phentsize); - invert2(p_Elf32_hdr->e_phnum); - invert2(p_Elf32_hdr->e_shentsize); - invert2(p_Elf32_hdr->e_shnum); - invert2(p_Elf32_hdr->e_shstrndx); - return (p_Elf32_hdr->e_type == ET_EXEC) - && (p_Elf32_hdr->e_machine == EM_SPARC) - && (p_Elf32_hdr->e_version == EV_CURRENT) - && (p_Elf32_hdr->e_ident[EI_CLASS] == ELFCLASS32) - && (p_Elf32_hdr->e_ident[EI_DATA] == ELFDATA2MSB) - && (p_Elf32_hdr->e_ident[EI_VERSION] == EV_CURRENT); -} - -int get_elf_section_header(Elf32_Shdr* p_Elf32_Shdr, FILE* p_file, unsigned int section_ndx) -{ - int nbread; - /* retrieve the position of the section header table */ - fseek(p_file, Shdr_pos + (section_ndx * elf_Ehdr.e_shentsize), 0); - /* set file pointer to the position of the section header section_ndx */ - // seekrst = fseek(p_file, (long), 0); - nbread = fread(p_Elf32_Shdr, sizeof(elf_Shdr), 1, p_file); - - if (nbread != 1) { - fprintf(stderr, "Error : while reading elf section header (fread() returned %d)\n", nbread); - exit(-1); - } - - invert4(p_Elf32_Shdr->sh_name); /* $$$$KMK: bad code !!! Endianess dependant ! */ - invert4(p_Elf32_Shdr->sh_type); - invert4(p_Elf32_Shdr->sh_flags); - invert4(p_Elf32_Shdr->sh_addr); - invert4(p_Elf32_Shdr->sh_offset); - invert4(p_Elf32_Shdr->sh_size); - invert4(p_Elf32_Shdr->sh_link); - invert4(p_Elf32_Shdr->sh_info); - invert4(p_Elf32_Shdr->sh_addralign); - invert4(p_Elf32_Shdr->sh_entsize); - //fseek(p_file, StringSec_pos + p_Elf32_Shdr->sh_name, 0); - //fread(); - //strcpy(sname, ); - return nbread; -} - -void find_and_transfer_section(char* section_name, unsigned int verboselevel) -{ - /* Interface with driver */ - int ioctlretval; - int ifile; - char* section_content; - int nbread; - unsigned int secnb = 0; - - for (secnb = 0 ; secnb < elf_Ehdr.e_shnum; secnb++) { - get_elf_section_header(&elf_Shdr, p_elfimage, secnb); - - if (!strcmp(SecNameStnTable + elf_Shdr.sh_name, section_name)) { - if (verboselevel >= VERBOSE_LEVEL_SECTION_DETAILS) - printf("Info: ok, found section %s (as section nb. %d)\n", SecNameStnTable + elf_Shdr.sh_name, secnb); - - /* Check that section size is a multiple of 4 bytes. */ - if (elf_Shdr.sh_size % 4) { - fprintf(stderr, "Error: section %s has a non-multiple-of-4-bytes size (%d).\n", - SecNameStnTable + elf_Shdr.sh_name, elf_Shdr.sh_size); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_SECTION_DETAILS) { - printf("Info: ok, section %s has size %d bytes (multiple of 4 bytes).\n", - SecNameStnTable + elf_Shdr.sh_name, elf_Shdr.sh_size); - } - - /* Dynamically allocate a chunk of memory to store the section into. */ - section_content = (char*)malloc(elf_Shdr.sh_size); - - if (!section_content) { - fprintf(stderr, "Error: could not dynamically allocate %d bytes for section %s.\n", - elf_Shdr.sh_size, SecNameStnTable + elf_Shdr.sh_name); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, dynamically allocated a %d bytes buffer for section %s.\n", - elf_Shdr.sh_size, SecNameStnTable + elf_Shdr.sh_name); - } - - /* Position the file cursor at the begining of proper section. */ - fseek(p_elfimage, (long)(elf_Shdr.sh_offset), 0); - /* Copy the section's content into this temporary buffer. */ - nbread = fread(section_content, elf_Shdr.sh_size, 1, p_elfimage); - - if (nbread != 1) { - fprintf(stderr, "Error: could not read %d bytes from ELF file into dynamic buffer.\n", elf_Shdr.sh_size); - free(section_content); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, copied content of section %s into dynamic buffer (%d bytes copied).\n", - SecNameStnTable + elf_Shdr.sh_name, elf_Shdr.sh_size); - } - - /* Open the special device file. */ - if (!pflag) { - ifile = open(DEVICE_NAME, ACCESS_MODE, 0); - - if (ifile<0) { - fprintf(stderr, "Error: could not open %s (open() returned %d, errno=%u)\n", DEVICE_NAME, ifile, errno); - free(section_content); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successfully opened %s.\n", DEVICE_NAME); - } - - /* Collect control data for ioctl. */ - ioctl_params[0] = UPDATE_FIRMWARE_TRANSFER_BLOCK; - ioctl_params[1] = elf_Shdr.sh_addr; - ioctl_params[2] = elf_Shdr.sh_size / 4; - ioctl_params[3] = (unsigned int)((unsigned int*)section_content); - //invert4(ioctl_params[1]); - //invert4(ioctl_params[2]); - /* Call ioctl driver */ - ioctlretval = ioctl(ifile, openair_UPDATE_FIRMWARE, ioctl_params); - - if (ioctlretval) { - fprintf(stderr, "Error: ioctl on %s failed.\n", DEVICE_NAME); - close(ifile); - free(section_content); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successful ioctl on %s for section %s.\n", - DEVICE_NAME, SecNameStnTable + elf_Shdr.sh_name); - } - - close(ifile); - } /* pflag */ - - free(section_content); - } /* section_name */ - } /* for secnb */ -} - -void find_and_clear_section_bss(unsigned int verboselevel) -{ - /* Interface with driver */ - int ioctlretval; - int ifile; - unsigned int secnb = 0; - - for (secnb = 0 ; secnb < elf_Ehdr.e_shnum; secnb++) { - get_elf_section_header(&elf_Shdr, p_elfimage, secnb); - - if (!strcmp(SecNameStnTable + elf_Shdr.sh_name, ".bss")) { - if (verboselevel >= VERBOSE_LEVEL_SECTION_DETAILS) - printf("Info: ok, found section %s (as section nb. %d)\n", SecNameStnTable + elf_Shdr.sh_name, secnb); - - /* Open the special device file. */ - if (!pflag) { - ifile = open(DEVICE_NAME, ACCESS_MODE, 0); - - if (ifile<0) { - fprintf(stderr, "Error: could not open %s (open() returned %d, errno=%u)\n", DEVICE_NAME, ifile, errno); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successfully opened %s.\n", DEVICE_NAME); - } - - /* Collect control data for ioctl. */ - ioctl_params[0] = UPDATE_FIRMWARE_CLEAR_BSS; - ioctl_params[1] = elf_Shdr.sh_addr; - ioctl_params[2] = elf_Shdr.sh_size; - //invert4(ioctl_params[1]); - //invert4(ioctl_params[2]); - /* Call ioctl driver */ - ioctlretval = ioctl(ifile, openair_UPDATE_FIRMWARE, ioctl_params); - - if (ioctlretval) { - fprintf(stderr, "Error: ioctl on %s failed.\n", DEVICE_NAME); - close(ifile); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successful ioctl on %s for section %s.\n", - DEVICE_NAME, SecNameStnTable + elf_Shdr.sh_name); - } - - close(ifile); - } /* pflag */ - } /* section_name */ - } /* for secnb */ -} - -int main(int argc, char** argv) -{ - /* Interface with driver */ - int ioctlretval; - int ifile; - /* Interface with getopt_long() libC function */ - int getoptret; - int indexptr; - int erroroption = FALSE; - char* p_str_fwn = NULL; - char* p_str_stkptr = NULL; - char* filename; - unsigned int verboselevel = 0; - unsigned int i; - char* c; - unsigned int stackpointer = 0; - unsigned int ioctl_test_gok = 0; - - /***************** - * Parse options * - *****************/ - while ((getoptret = getopt_long_only (argc, argv, "f:vhps:b", updatefw_longopts, &indexptr)) != -1) - switch (getoptret) { - /* Without-argument options */ - case 0: /* means that the option just sets a flag. Nothing has to be done, - since getopt_long already sets the flag. */ - break; - - /* With-argument options & equivalent short options */ - case 'v': - verboselevel++; - break; - - case 'h': /* short switch -h was used */ - helpflag = SWITCH_IS_ON; - break; - - case 'p': /* short switch -p was used */ - pflag = SWITCH_IS_ON; - break; - - case 'f': /* short switch -f was used */ - fflag = SWITCH_IS_ON; - p_str_fwn = optarg; - break; - - case 's': /* short switch -s was used */ - sflag = SWITCH_IS_ON; - p_str_stkptr = optarg; - break; - - case 'b': /* short switch -b was used */ - rebootflag = SWITCH_IS_ON; - break; - - default: - erroroption = TRUE; - break; - }; - - /* End of while */ - - /******************************** - * Check consistency of options * - ********************************/ - /* First, any irregularity in the use of the options ? Leave. */ - if (erroroption == TRUE) { - fprintf(stderr, "%s: Misuse (--help to show usage)\n", argv[0]); - exit(-1); - } - - /* Let print the help if it has been explicitly asked for */ - if (helpflag == SWITCH_IS_ON) { - show_usage(argv[0]); - exit(0); - } - - /* Check that mandatory firmware option was specified */ - if (fflag != SWITCH_IS_ON) { - fprintf(stderr, "%s: missing mandatory [-f|--firmware] option (--help to show usage).\n", argv[0]); - exit(-1); - } - - /* Check that mandatory stack pointer option was specified */ - if (sflag != SWITCH_IS_ON) { - fprintf(stderr, "%s: missing mandatory [-s|--stackptr] option (--help to show usage).\n", argv[0]); - exit(-1); - } - - /* Check consistency of stack pointer value. */ - /* 1/2 - The address must start with the 2 characters '0x' and be exactly 10 characters long. */ - if ((strncmp(p_str_stkptr, "0x", 2)) || (strlen(p_str_stkptr) != 10)) { /* 10 is for 0x + 8 hex digits. */ - fprintf(stderr, "%s: Invalid value to [s|--stackptr] option (--help to show usage).\n", argv[0]); - exit(-1); - } - - /* 2/2 - The address must only be made of hexadecimal digits. */ - for (i=0,c=p_str_stkptr+2; i < 8 ; i++,c++) { - if (! - ( ((*c >= '0') && (*c <= '9')) - || ((*c >= 'a') && (*c <= 'f')) - || ((*c >= 'A') && (*c <= 'F')) - ) - ) { - fprintf(stderr, "%s: Invalid value to [s|--stackptr] option (--help to show usage).\n", argv[0]); - exit(-1); - } - - /* Transcode string hexadecinmal value into binary value */ - if ((*c <= '9') && (*c >= '0')) - stackpointer |= (*c - '0') << 28-(i*4); - else if ((*c <= 'F') && (*c >= 'A')) - stackpointer |= ((*c - 'A') + 10) << 28-(i*4); - else if ((*c <= 'f') && (*c >= 'a')) - stackpointer |= ((*c - 'a') + 10) << 28-(i*4); - } - - /* Open firmware file in READ_ONLY mode. */ - filename = p_str_fwn; - p_elfimage = fopen(filename, READ_FILE_MODE); - - if (p_elfimage == NULL) { - fprintf(stderr, "Error : could not open file <%s> in %s mode.\n", filename, READ_FILE_MODE); - exit(-1); - } - - if (verboselevel >= VERBOSE_LEVEL_ACCESS_FILES) - printf("Info: using file <%s> (successfully opened in %s mode).\n", filename, READ_FILE_MODE); - - /* Read elf binary image file */ - /* Get informations from header file */ - if (!(get_elf_header(&elf_Ehdr, p_elfimage))) { - fprintf(stderr, "Error : file doesn't match expected format.\n"); - exit(-1); - } - - if (verboselevel >= VERBOSE_LEVEL_ACCESS_FILES) - printf("Info: ok, file matches expected format.\n"); - - /* record the position of the section header table in the file */ - fseek(p_elfimage, (long)(elf_Ehdr.e_shoff), 0); - Shdr_pos = ftell(p_elfimage); - /* record the position of the section name string table */ - get_elf_section_header(&elf_Shdr, p_elfimage, elf_Ehdr.e_shstrndx); - fseek(p_elfimage, (long)(elf_Shdr.sh_offset), 0); - StringSec_pos = ftell(p_elfimage); - StringSec_size = elf_Shdr.sh_size; - - /* copy the string table into global variable */ - if (StringSec_size > MAX_SIZE_STRING_TABLE) { - fprintf(stderr, "Error: section name string table too big (%d > %d);" - " increase max. allowed value in source code and recompile\n", - StringSec_size, MAX_SIZE_STRING_TABLE); - exit(-1); - } - - fread(SecNameStnTable, 1, StringSec_size, p_elfimage); - - /* Action 1: force reboot (if option was specified) */ - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) { - if (rebootflag == SWITCH_IS_ON) - printf("Info: entering action #1 (forcing reboot of Leon).\n"); - else - printf("Info: squeezed action #1 (forcing reboot of Leon).\n"); - } - - if ((rebootflag == SWITCH_IS_ON) && (!pflag)) { - ifile = open(DEVICE_NAME, ACCESS_MODE, 0); - - if (ifile<0) { - fprintf(stderr, "Error: could not open %s (open() returned %d, errno=%u).\n", DEVICE_NAME, ifile, errno); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successfully opened %s.\n", DEVICE_NAME); - } - - ioctl_params[0] = UPDATE_FIRMWARE_FORCE_REBOOT; - /* Call ioctl driver */ - ioctlretval = ioctl(ifile, openair_UPDATE_FIRMWARE, ioctl_params); - - if (ioctlretval) { - fprintf(stderr, "Error: ioctl on %s failed.\n", DEVICE_NAME); - close(ifile); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successful ioctl on %s to force reboot.\n", DEVICE_NAME); - } - - /* If the card received the boot order, then - 1) The firmware who handled the order must have cleared the BOOT_GOK bit - before rebooting ; - 2) Boot-strap should once again set it back upon its init operations. - So we wait for this bit to be set again before issuing the rest of the - update-firmware operations (transfer loadable sections and so on...). - Note: putting the polling loop here is better than to have it in the - openair driver, because it avoids hanging the kernel if the card was - ever not to reboot cleanly. If the loop was to not end, user can simply - gives up the update-firmware operation by issuing a Ctrl-C. */ - ioctl_params[0] = UPDATE_FIRMWARE_TEST_GOK; - - /* Call ioctl driver */ - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) - printf("Info: waiting for GOK bit (as acknowledge of reboot command) - May take a few seconds...\n"); - - ioctl_test_gok = 0; - - do { - ioctlretval = ioctl(ifile, openair_UPDATE_FIRMWARE, ioctl_params); - ioctl_test_gok++; - sleep(1); /* sleep 1 second */ - - if (!(ioctl_test_gok % 10)) - printf("Warning: card does not seem to have rebooted cleanly (no GOK bit). Still trying ([Ctrl-C] to abort).\n"); - } while (ioctlretval); - - if (verboselevel >= VERBOSE_LEVEL_IOCTL) - printf("Info: ok, card set again GOK bit (after %u seconds).\n", ioctl_test_gok); - - close(ifile); - } /* rebootflag && pflag */ - - if ((verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) && (rebootflag == SWITCH_IS_ON)) - printf("Info: action #1 done.\n"); - - /* Action 2: Find the .text section */ - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: entering action #2 (Transfer .text section).\n"); - - find_and_transfer_section(".text", verboselevel); - sleep(1); - - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: action #2 done.\n"); - - /* Action 3 : Find the .data section */ - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: entering action #3 (Transfer .data section).\n"); - - find_and_transfer_section(".data", verboselevel); - sleep(1); - - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: action #3 done.\n"); - - /* Action 4 : Find the .bss section */ - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: entering action #4 (Clear .bss section).\n"); - - find_and_clear_section_bss(verboselevel); - sleep(1); - - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: action #4 done.\n"); - - /* Action 5 : Find the entry address */ - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: entering action #5 (Jump to firmware/set stack-pointer).\n"); - - if (verboselevel >= VERBOSE_LEVEL_SECTION_DETAILS) - printf("Info: Firmware entry point = 0x%08x, setting stack pointer = 0x%08x.\n", elf_Ehdr.e_entry, stackpointer); - - /* Open the special device file. */ - if (!pflag) { - ifile = open(DEVICE_NAME, ACCESS_MODE, 0); - - if (ifile<0) { - fprintf(stderr, "Error: could not open %s (open() returned %d, errno=%u).\n", DEVICE_NAME, ifile, errno); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successfully opened %s.\n", DEVICE_NAME); - } - - /* Collect control data for ioctl. */ - ioctl_params[0] = UPDATE_FIRMWARE_START_EXECUTION; - ioctl_params[1] = elf_Ehdr.e_entry; - ioctl_params[2] = stackpointer; - //invert4(ioctl_params[1]); - //invert4(ioctl_params[2]); - /* Call ioctl driver */ - ioctlretval = ioctl(ifile, openair_UPDATE_FIRMWARE, ioctl_params); - - if (ioctlretval) { - fprintf(stderr, "Error: ioctl on %s failed.\n", DEVICE_NAME); - close(ifile); - fclose(p_elfimage); - exit(-1); - } else if (verboselevel >= VERBOSE_LEVEL_IOCTL) { - printf("Info: ok, successful ioctl on %s for stack-pointer setting/firmware-execution.\n", DEVICE_NAME); - } - - close(ifile); - } /* pflag */ - - if (verboselevel >= VERBOSE_LEVEL_MAIN_STEPS) printf("Info: action #5 done.\n"); - - fclose(p_elfimage); - - /* Did we pretend ? */ - if (pflag) printf("Nothing done.\n"); - - exit(0); -} diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/updatefw.h b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/updatefw.h deleted file mode 100644 index 6d487780ffbe967b582d353aab9f01075d532791..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/updatefw.h +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* - C Header file <updatefw.h> for updatefw tool. - - K. Khalfallah, Aug, 2007 - kkhalfallah@free.fr -*/ - -#ifndef UPDATEFW_H -#define UPDATEFW_H - -#include <stdio.h> -#include <errno.h> -#define _testsyscall(x, y, z) {if (x==-1) { \ - fprintf(stderr, "Error : %s() returned "z" (errno=%d)\n", y, x, errno); \ - fprintf(stderr, "Warning : not leaving normally. Remove ipc ressources by hand !"); \ - fprintf(stderr, " (use shell commands ipcs & ipcrm)\n"); \ - exit(-1); \ - }} -// else { \ -// printf("Info : successfully called %s, returned "z"\n", y, x);}} - -/* Intel is little-endian, sparc is big */ -unsigned long ltmp; -#define invert4(x) {ltmp=x; x=((ltmp & 0xff)<<24) | ((ltmp & 0xff00)<<8) | \ - ((ltmp & 0xff0000)>>8) | ((ltmp & 0xff000000)>>24); } -unsigned short stmp; -#define invert2(x) {stmp=x; x=((stmp & 0xff)<< 8) | ((stmp & 0xff00)>>8);} - - -/* static variables, global */ -char* virt_addr; -unsigned int packet_ndx = 0; - -#define FSEEK_ORIGIN 0 -#define FSEEK_CURRENT 1 -#define READ_FILE_MODE "r" -/* Verbose levels */ -#define VERBOSE_LEVEL_MAIN_STEPS 1 -#define VERBOSE_LEVEL_ACCESS_FILES 2 -#define VERBOSE_LEVEL_SECTION_DETAILS 3 -#define VERBOSE_LEVEL_IOCTL 4 - - -#endif /* UPDATEFW_H */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/IQ_estimation.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/IQ_estimation.m deleted file mode 100755 index 47aa52067d6a5a2fef10db2d5aec232f9e190a67..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/IQ_estimation.m +++ /dev/null @@ -1,100 +0,0 @@ -function [ratio,phi_est]=IQ_estimation(freq) -gpib_card=0; % first GPIB PCI card in the computer -sme=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu (for SME) -gpib_send(gpib_card,sme,'*RST;*CLS'); % reset and configure the signal generator -sleep(.1); -gpib_send(gpib_card,sme,'POW -63dBm'); -disp(freq) -gpib_send(gpib_card,sme,strcat('FREQ ',int2str(freq),'MHz')); -gpib_send(gpib_card,sme,'OUTP:STAT ON'); % activate output - -cmd1='/homes/nussbaum/openair1/ARCH/LEON3/hostpc/user/tools/scripts/set_receiver -M '; -gain1=61; -gain2=61; -frequency=int2str(freq); -cmd=strcat(cmd1,frequency,' -g1 ',int2str(gain1),' -g2 ',int2str(gain2)); -system(cmd); -sleep(.1); -s=oarf_get_frame(0); -signal=s(:,1); - - -size_data=20480; -Fs=7680; %in kHz -band = 2000; %in kHz -max_pos=0; -max=0; -f=abs(fft(signal)).^2; -for n=2:size_data - if(f(n) > max) - max=f(n); - max_pos=n; - end; -end; - -disp(max_pos) -freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency -if(abs(freq_max-2000)>100) -disp('Warning') -end; - -cumI=0; -cumQ=0; - -I=real(signal(1:2000)); -Q=imag(signal(1:2000)); - -for i=1:2000 - cumI=cumI + I(i)*I(i); - cumQ=cumQ + Q(i)*Q(i); -end; -amp= sqrt(2*cumI/length(I)) -I=I/amp; -Q=Q/amp; -ratio=sqrt(cumI/cumQ) -n_fft=1024; -f=abs(fft(I(1:n_fft))); -max = 0; -index=0; -for i=1:n_fft/2 - if f(i)> max - max=f(i); - index=i; - end; -end; -disp(max) -disp(index) -%figure -%plot(20*log10(abs(f))); -freq_estim=(index-1)/n_fft; -p=Q*ratio.*I; -sinphi=2*sum(p)/length(Q); -phi_est=-asin(sinphi) -Qcor=(sin(phi_est)*I+ratio*Q)/cos(phi_est); -%figure -%plot(I(1:100)) -%hold on -%plot(Qcor(1:100),'g'); -comp=I+j*Qcor; -%hold off -%figure -%plot(20*log10(abs(fft(comp)))); -endfunction; -% per=round(1/freq_estim) -% figure;plot(I(1:per+1)) -% opt_offset=-5 -% min_diff=10^20; -% for offset=0:per -% diff=0; -% for k=1:n_fft -% diff=diff+abs(I(k+offset)-Q(k)); -% end; -% if diff<min_diff -% min_diff=diff; -% opt_offset= offset; -% end; -% end; -% disp(opt_offset) -% % normally, as to be 3/4*per -% opt_offset=opt_offset-3*per/4; -% disp(opt_offset/per*2*pi) diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/phasenoise.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/phasenoise.m deleted file mode 100755 index 015acd71dfbd33fba8523488d5f9d45fed549b2a..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/phasenoise.m +++ /dev/null @@ -1,42 +0,0 @@ -s = oarf_get_frame(2); -sig0 = s(:,1); -sig1 = s(:,2); - -sig0 = s(5000:end,1); % first channel -sig1 = s(5000:end,2); % 2nd channel - - -bw=7.68e6; - -spec = abs(fft(sig1)).^2; -[a,b] = max(spec); -freq = (b-1)*bw/length(sig0); - -L= 1000; -W = 1; - -offset_vec = (0:L-1)*((2*W)+1); -W2 = 1+(2*W); - -window_vec = (-W : W); -pn = zeros(1,(2*L) - 1); -for i = 1:L, - pn(i+L-1) = sum(spec(offset_vec(i) + b + window_vec)); -end - -for i = 2:L, - pn(L-i+1) = sum(spec(-offset_vec(i) + b + window_vec)); -end - -pn_2 = 20*log10(pn / pn(L)) - 10*log10(W2*bw/length(sig0)); - -f = ((-L+1):(L-1))*W2*bw/length(sig0); - - -ylabel('dBc/Hz') -xlabel("f_offset (Hz)") -title("Phase Noise @ IQ output for Fc = 1912.6 + Fs/4 MHz CW input at antenna") -semilogx(f(L:(2*L - 1)),pn_2(L:(2*L -1))) - - -sum(pn.^2*(f(2)-f(1))) diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/plots.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/plots.m deleted file mode 100755 index 757ae4ce3b2032dc22765a6dda04d2b8d6a439f2..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/plots.m +++ /dev/null @@ -1,48 +0,0 @@ - -closeplot -figure(1) - - -gain2391=70; gain9862=0; -for rxrfmode=0:2 - i=find( (m(:,2)==gain2391) & (m(:,3)==gain9862) & (m(:,4)==rxrfmode)); - plot(m(i,1),m(i,5:8)) - pause -end - - -gain2391=70; rxrfmode=1; -for gain9862=0:5:15 - i=find((m(:,2)==gain2391) & (m(:,3)==gain9862) & (m(:,4)==rxrfmode)); - plot(m(i,1),m(i,5:8)) - pause -end - - - - -rxrfmode=1; power_dBm=-70; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - plot(m(i,1),m(i,5:8)) - pause -end - - - -power_dBm=-90; - -subplot(1,3,1) -rxrfmode=0; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); -mesh(0:10:150,[0 5 10 15],reshape(m(i,5)-m(i,6),4,16)) - -subplot(1,3,2) -rxrfmode=1; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); -mesh(0:10:150,[0 5 10 15],reshape(m(i,5)-m(i,6),4,16)) - -subplot(1,3,3) -rxrfmode=2; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); -mesh(0:10:150,[0 5 10 15],reshape(m(i,5)-m(i,6),4,16)) - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/plots2.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/plots2.m deleted file mode 100755 index 9b64c1ac1c70df16fe61897d6e7d1108196c5a08..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/plots2.m +++ /dev/null @@ -1,68 +0,0 @@ - -closeplot -figure(1); - - -%for power_dBm=ALL_power_dBm -for power_dBm=-65 - - disp(['input: ' num2str(power_dBm) ' dBm']); - - xlabel('Gain 2391'); - ylabel('Gain 9862'); - zlabel('SNR'); - - rxrfmode=0; - idx=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - M0=zeros(length(ALL_gain2391),length(ALL_gain9862)); - M1=zeros(length(ALL_gain2391),length(ALL_gain9862)); - for i=idx.' - i1=find(ALL_gain2391==m(i,2)); - i2=find(ALL_gain9862==m(i,3)); - M0(i1,i2)=m(i,5)-m(i,6); - M1(i1,i2)=m(i,7)-m(i,8); - end - subplot(2,3,1); clg; - title('Channel 0, rxrfmode 0'); - mesh(ALL_gain2391,ALL_gain9862,M0.') - subplot(2,3,4); clg; - title('Channel 1, rxrfmode 0'); - mesh(ALL_gain2391,ALL_gain9862,M1.') - - rxrfmode=1; - idx=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - M0=zeros(length(ALL_gain2391),length(ALL_gain9862)); - M1=zeros(length(ALL_gain2391),length(ALL_gain9862)); - for i=idx.' - i1=find(ALL_gain2391==m(i,2)); - i2=find(ALL_gain9862==m(i,3)); - M0(i1,i2)=m(i,5)-m(i,6); - M1(i1,i2)=m(i,7)-m(i,8); - end - subplot(2,3,2); clg; - title('Channel 0, rxrfmode 1'); - mesh(ALL_gain2391,ALL_gain9862,M0.') - subplot(2,3,5); clg; - title('Channel 1, rxrfmode 1'); - mesh(ALL_gain2391,ALL_gain9862,M1.') - - rxrfmode=2; - idx=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - M0=zeros(length(ALL_gain2391),length(ALL_gain9862)); - M1=zeros(length(ALL_gain2391),length(ALL_gain9862)); - for i=idx.' - i1=find(ALL_gain2391==m(i,2)); - i2=find(ALL_gain9862==m(i,3)); - M0(i1,i2)=m(i,5)-m(i,6); - M1(i1,i2)=m(i,7)-m(i,8); - end - subplot(2,3,3); clg; - title('Channel 0, rxrfmode 2'); - mesh(ALL_gain2391,ALL_gain9862,M0.') - subplot(2,3,6); clg; - title('Channel 1, rxrfmode 2'); - mesh(ALL_gain2391,ALL_gain9862,M1.') - - pause - -end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibrate_agileRF.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibrate_agileRF.m deleted file mode 100755 index ed1a2d98405a04db53fe07de48af112570d13a29..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibrate_agileRF.m +++ /dev/null @@ -1,109 +0,0 @@ -%frequency = input('Input freq in MHz: ', 's'); -% script to setup mxa and sign generator - -size_data=20480; -Fs=7680; %sampling freq in kHz -band = 2500; % noise band in kHz -gpib_card=0; % first GPIB PCI card in the computer -sme=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu (for SME) - -openair_init; -freq=2000; % normally loop - -% first, calculation of IQ missmatch -[ratio,phase]=IQ_estimation(freq); - - -gpib_send(gpib_card,sme,'*RST;*CLS'); % reset and configure the signal generator - -gpib_send(gpib_card,sme,'POW -100dBm'); -%disp('FREQ ',int2str(freq),'MHz'); -gpib_send(gpib_card,sme,strcat('FREQ ',int2str(freq),'MHz')); -%disp('FREQ ',int2str(freq),'MHz'); -%frequency = input('Input freq in MHz: ', 's'); - -cmd1='/homes/nussbaum/open_freya/arch/openair_CardBus_MIMO1/LEON3/hostpc/user/tools/scripts/set_receiver -M '; -frequency=int2str(freq); - - -ALL_gain1=0:16:3; -ALL_gain2=0:16:3; - -i=0; -for gain1=ALL_gain1 -for gain2= ALL_gain2 - -i=i+1; -end; -end; -table=zeros(i,4); -i=1; -for gain1=ALL_gain1 -for gain2=ALL_gain2 -cmd=strcat(cmd1,frequency,' -g1 ',int2str(gain1),' -g2 ',int2str(gain2)); -system(cmd); -%system('set_receiver -M ' frequency ' -g1 ' int2str(gain1) ' -g2 ' int2str(gain2)); -%system('sleep 1'); -gpib_send(gpib_card,sme,'OUTP:STAT ON'); % activate output -sleep(.1); -table(i,1)=gain1; -table(i,2)=gain2; - -s=oarf_get_frame(0); -plot(20*log10(abs(fft(s(:,1))))) -signal=s(:,1); - -max_pos=0; -max=0; -f=abs(fft(signal)).^2; -for n=2:size_data - if(f(n) > max) - max=f(n); - max_pos=n; - end; -end; - -disp(max_pos) -freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency -if(abs(freq_max-2000)>100) -disp("Warning") -end; - - -% calculation of the signal power -Pu=sum(f(max_pos-20:max_pos+20)) -ns_noise =round((band/Fs)*(size_data/2)) -Pnoise=sum(f(max_pos-ns_noise:max_pos+ns_noise))-Pu -plot(10*log10(f)) - -% plot(10*log10(f(max_pos-ns_noise:max_pos+ns_noise))) - -SNR=10*log10(Pu/Pnoise) -N_in = -174 +10*log10(1000*band) -S_in = -100; -SNR_in=S_in - N_in - -NF=SNR_in-SNR - - - -i=i+1; -end; -end; -disp(table); - -P_num =100; %(warning, to be updated) - - - -% Post processing of the table started here -Pmin = -40; % in dBm -Pmax = 20; % in dBm - - - -% a Tx calibration file is calculated for a given board and frequency - -%fid=fopen(['/tmp/cal_TX' frequency '_' int2str(n) '.dat'],'wb') -%fwrite(fid,signal); -%fclose(fid); diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibration.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibration.m deleted file mode 100755 index 8e5240db98e106e61fe1d5ed6488eda6c51747ce..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibration.m +++ /dev/null @@ -1,91 +0,0 @@ - -% Maxime Guillaud - created Wed May 10 18:08:04 CEST 2006 - -gpib_card=0; % first GPIB PCI card in the computer -gpib_device=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu -freqband=2; % frequency band used by the openair card - -cables_loss_dB = 6; % we need to account for the power loss between the signal generator and the card input (splitter, cables) - - -gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator -gpib_send(gpib_card,gpib_device,'POW -70dBm'); -gpib_send(gpib_card,gpib_device,'FREQ 1.91452GHz'); - - - -oarf_config(freqband,'openair_config.cfg','openair_scenario.scn') - -saturation_threshold =5; % min number of samples (real+imaginary) equal to the max per frame to declare saturation - -ALL_power_dBm = [-100:1:-60 -150]; -ALL_rxrfmode = 0:2; -ALL_gain2391 = 0:5:120; % this is some strange scale -ALL_gain9862 = 0:1:18; % this in in dB - - -m=[]; - - -%for power_dBm=ALL_power_dBm - power_dBm=-70 - gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']); -sleep(1) - - - for gain9862=ALL_gain9862 - - for gain2391= ALL_gain2391 - - - gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); % activate output - - oarf_set_rx_gain(gain2391,gain9862,gain2391,gain9862); - - nacq=0; % count the number of tries to get data - do - - s=oarf_get_frame(freqband); %oarf_get_frame - sleep(.1); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - for gain9862=ALL_gain9862 - - for gain2391= ALL_gain2391 - SpN0 = mean(abs(s(:,1)).^2) - abs(mean(s(:,1))).^2; - SpN1 = mean(abs(s(:,2)).^2) - abs(mean(s(:,2))).^2; - - - gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - - oarf_set_rx_gain(gain2391,gain9862,gain2391,gain9862); - - nacq=0; % count the number of tries to get data - do - sleep(.1); - s=oarf_get_frame(freqband); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - N0 = mean(abs(s(:,1)).^2) - abs(mean(s(:,1))).^2; - N1 = mean(abs(s(:,2)).^2) - abs(mean(s(:,2))).^2; - -<<<<<<< rx_calibration.m - S0 = 10*log10(SpN0-N0); - S1 = 10*log10(SpN1-N1); - G0 = S0 - power_dBm; - G1 = S1 - power_dBm; - NF0 = N0 - G0 + 108; - NF1 = N1 - G1 + 108; - - fprintf(' %d %d : Signal strength (%d,%d), Gain (%d %d), NF (%d %d)\n', - gain2391,gain9862, S0,S1,G0,G1,NF0,NF1); - - end - end - -gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibration_quick.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibration_quick.m deleted file mode 100755 index 14bcd545a53151781afded0cc0df1593c1382437..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_calibration_quick.m +++ /dev/null @@ -1,155 +0,0 @@ - -% Maxime Guillaud - created Wed May 10 18:08:04 CEST 2006 -% Raymond & Florian - last modified Fri Oct 26 17:12:10 CEST 2007 - - -gpib_card=0; % first GPIB PCI card in the computer -gpib_device=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu -freqband=2; % frequency band used by the openair card - -cables_loss_dB = 6; % we need to account for the power loss between the signal generator and the card input (splitter, cables) - - -gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator -gpib_send(gpib_card,gpib_device,'POW -70dBm'); -gpib_send(gpib_card,gpib_device,'FREQ 1.91860GHz'); - -oarf_config(freqband,'openair_config.cfg','openair_scenario.scn') - -saturation_threshold =5; % min number of samples (real+imaginary) equal to the max per frame to declare saturation - -ALL_power_dBm = [-90]; -ALL_rxrfmode = 0:2; -ALL_gain2391 = 0:5:180; % this is some strange scale -ALL_gain9862 = 0; %:1:18; % this in in dB - -%fprintf(fid, 'Tx Power (dBm), gain2391, gain9862, Signal strength Rx0, Signal Strength Rx1, Gain Rx0, Gain Rx1, Noise Rx0, Noise Rx1, SNR Rx0, SNR Rx1, NF Rx0, NF Rx1\n'); - -SpN0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SpN1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -N0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -N1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -S0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -S1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -G0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -G1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -NF0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -NF1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SNR0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SNR1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); - -min_agc_level = 96; %ceil(min(max(G0,[],1))); -max_agc_level = 150; %floor(max(max(G0,[],1))); - -oarf_set_calibrated_rx_gain(0); - -idx_power = 1; -for power_dBm=ALL_power_dBm -%power_dBm=-70 -%while (min(max(max(G0)),max(max(G1))) <= max_agc_level) - gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']); - sleep(.5) - - - for gain9862=ALL_gain9862 - - idx_gain2391 = 1; - for gain2391= ALL_gain2391 - - - gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); % activate output - - oarf_set_rx_gain(gain2391,gain2391,gain9862,gain9862); - - nacq=0; % count the number of tries to get data - sleep(.1); - do - - s=oarf_get_frame(freqband); %oarf_get_frame - s2 = s(1:8192,:); - sleep(.1); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - - - SpN0(idx_power,idx_gain2391) = mean(abs(s2(:,1)).^2) - abs(mean(s2(:,1))).^2; - SpN1(idx_power,idx_gain2391) = mean(abs(s2(:,2)).^2) - abs(mean(s2(:,2))).^2; - - - gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - - figure(1); - hold off - plot(20*log10(abs(fft(s2(:,1))))) - - sleep(.1); - nacq=0; % count the number of tries to get data - do - - s=oarf_get_frame(freqband); %oarf_get_frame - s2 = s(1:8192,:); - - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - N0(idx_power,idx_gain2391) = mean(abs(s2(:,1)).^2) - abs(mean(s2(:,1))).^2; - N1(idx_power,idx_gain2391) = mean(abs(s2(:,2)).^2) - abs(mean(s2(:,2))).^2; - - S0(idx_power,idx_gain2391) = 10*log10(SpN0(idx_power,idx_gain2391)-N0(idx_power,idx_gain2391)); - S1(idx_power,idx_gain2391) = 10*log10(SpN1(idx_power,idx_gain2391)-N1(idx_power,idx_gain2391)); - G0(idx_power,idx_gain2391) = S0(idx_power,idx_gain2391) - power_dBm; - G1(idx_power,idx_gain2391) = S1(idx_power,idx_gain2391) - power_dBm; - NF0(idx_power,idx_gain2391) = 10*log10(N0(idx_power,idx_gain2391)) - G0(idx_power,idx_gain2391) + 108; % 108 is the thermal noise - NF1(idx_power,idx_gain2391) = 10*log10(N1(idx_power,idx_gain2391)) - G1(idx_power,idx_gain2391) + 108; - SNR0(idx_power,idx_gain2391) = S0(idx_power,idx_gain2391)-10*log10(N0(idx_power,idx_gain2391)); - SNR1(idx_power,idx_gain2391) = S1(idx_power,idx_gain2391)-10*log10(N1(idx_power,idx_gain2391)); - printf(' %d %d : Signal strength (%f,%f), Gain (%f %f), N (%f %f) SNR (%f %f) NF (%f %f)\n', - gain2391,gain9862, S0(idx_power,idx_gain2391),S1(idx_power,idx_gain2391),G0(idx_power,idx_gain2391),G1(idx_power,idx_gain2391),10*log10(N0(idx_power,idx_gain2391)),10*log10(N1(idx_power,idx_gain2391)),SNR0(idx_power,idx_gain2391),SNR1(idx_power,idx_gain2391),NF0(idx_power,idx_gain2391),NF1(idx_power,idx_gain2391)); - fflush(stdout); - %fprintf(fid,'%d, %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f\n', - % power_dBm,gain2391,gain9862, S0,S1,G0,G1,10*log10(N0),10*log10(N1),SNR0,SNR1,NF0,NF1); - - figure(2); - hold off - plot(20*log10(abs(fft(s2(:,1))))) - - sleep(.1); - - idx_gain2391 = idx_gain2391 + 1; - -figure(3) -hold off -plot(ALL_gain2391,G0,'r') -hold on -plot(ALL_gain2391,G1,'b') -legend('Rx0','Rx1'); -title('Gains') - -figure(4) -hold off -plot(ALL_gain2391,NF0,'r') -hold on -plot(ALL_gain2391,NF1,'b') -legend('Rx0','Rx1'); -title('Noise Figure') - - end - end - %power_dBm = power_dBm + 20; - idx_power = idx_power + 1; -end - -gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - -%l0 = [ALL_gain2391; ones(size(ALL_gain2391))].'\G0; -%l1 = [ALL_gain2391; ones(size(ALL_gain2391))].'\G1; - -gain_levels = zeros(max_agc_level-min_agc_level+1,2); - -gain_levels(:,1) = round(interp1(max(G0,[],1),ALL_gain2391,min_agc_level:max_agc_level,'linear')).'; -gain_levels(:,2) = round(interp1(max(G1,[],1),ALL_gain2391,min_agc_level:max_agc_level,'linear')).'; - -%gain_levels(isnan(gain_levels)) = 0; - -write_table \ No newline at end of file diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_open_correct.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_open_correct.m deleted file mode 100755 index ab4070e807d6bcaeaf7d5746785fb99910b3cd02..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_open_correct.m +++ /dev/null @@ -1,51 +0,0 @@ -function out=rx_post(nom,ratio,phase) - -%load data.dat signal -%fid=fopen('/tmp/store1.dat',) -fid=fopen(nom,'rb') -signal=fread(fid,20480*2,'float'); -disp(signal(1:10)); -signal=signal(1:2:length(signal))+j*signal(2:2:length(signal)); - -size_data=20480; -Fs=7680; %in kHz -band = 2000; %in kHz -max_pos=0; -max=0; -f=abs(fft(signal)).^2; -for n=2:size_data - if(f(n) > max) - max=f(n); - max_pos=n; - end; -end; - -disp(max_pos) -freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency -if(abs(freq_max-2000)>100) -disp('Warning') -end; - - -% calculation of the signal power -Pu=sum(f(max_pos-20:max_pos+20)) -ns_noise =round((band/Fs)*(size_data/2)) -Pnoise=sum(f(max_pos-ns_noise:max_pos+ns_noise))-Pu -plot(10*log10(f)) - -I=real(signal); -Q=imag(signal); -Qcor=(sin(phase)*I+ratio*Q)/cos(phase); -comp=I+j*Qcor; -hold on -plot(20*log10(abs(fft(comp))),'g') - -comp=comp(1:10000).*exp(-j*(pi/2+0.1)*(1:10000))'; -figure -plot(real(comp(1:500))); -hold on -plot(imag(comp(1:500)),'g'); -figure -plot(20*log10(abs(fft(comp))),'g') - -%end; \ No newline at end of file diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_post.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_post.m deleted file mode 100755 index e98a552242ed938eb4d8ae59f5b656100000bdb0..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_post.m +++ /dev/null @@ -1,43 +0,0 @@ -function out=rx_post(nom) - -%load data.dat signal -%fid=fopen('/tmp/store1.dat',) -fid=fopen(nom,'rb') -signal=fread(fid,20480*2,'float'); -signal=signal(1:2:length(signal))+j*signal(2:2:length(signal)); -disp(signal(1:10)); -size_data=20480/2; -Fs=7680; %in kHz -band = 2000; %in kHz -max_pos=0; -max=0; -f=abs(fft(signal)).^2; -for n=2:size_data - if(f(n) > max) - max=f(n); - max_pos=n; - end; -end; - -disp(max_pos) -freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency -if(abs(freq_max-2000)>100) -disp("Warning") -end; - - -% calculation of the signal power -Pu=sum(f(max_pos-20:max_pos+20)) -ns_noise =round((band/Fs)*(size_data/2)) -Pnoise=sum(f(max_pos-ns_noise:max_pos+ns_noise))-Pu -plot(10*log10(f)) - -% plot(10*log10(f(max_pos-ns_noise:max_pos+ns_noise))) - -SNR=10*log10(Pu/Pnoise) -N_in = -174 +10*log10(1000*band) -S_in = -110; -SNR_in=S_in - N_in - -NF=SNR_in-SNR -end; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_post_iq.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_post_iq.m deleted file mode 100755 index 6bb3f387c5626b92402343575586bcdb6238660c..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_post_iq.m +++ /dev/null @@ -1,96 +0,0 @@ -function [ratio,phase]=IQ_estimation(freq) - -gpib_send(gpib_card,sme,'*RST;*CLS'); % reset and configure the signal generator - -gpib_send(gpib_card,sme,'POW -60dBm'); - -gpib_send(gpib_card,sme,strcat('FREQ ',int2str(freq),'MHz')); -gpib_send(gpib_card,sme,'OUTP:STAT ON'); % activate output - -cmd1='/homes/nussbaum/open_freya/arch/openair_CardBus_MIMO1/LEON3/hostpc/user/tools/scripts/set_receiver -M '; -gain1=30; -gain2=30; -cmd=strcat(cmd1,frequency,' -g1 ',int2str(gain1),' -g2 ',int2str(gain2)); -system(cmd); -sleep(.1); -s=oarf_get_frame(0); -signal=s(:,1); - - -size_data=20480; -Fs=7680; %in kHz -band = 2000; %in kHz -max_pos=0; -max=0; -f=abs(fft(signal)).^2; -for n=2:size_data - if(f(n) > max) - max=f(n); - max_pos=n; - end; -end; - -disp(max_pos) -freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency -if(abs(freq_max-2000)>100) -disp('Warning') -end; - -cumI=0; -cumQ=0; - -I=real(signal(1:2000)); -Q=imag(signal(1:2000)); - -for i=1:2000 - cumI=cumI + I(i)*I(i); - cumQ=cumQ + Q(i)*Q(i); -end; -amp= sqrt(2*cumI/length(I)) -I=I/amp; -Q=Q/amp; -ratio=sqrt(cumI/cumQ) -n_fft=1024; -f=abs(fft(I(1:n_fft))); -max = 0; -index=0; -for i=1:n_fft/2 - if f(i)> max - max=f(i); - index=i; - end; -end; -disp(max) -disp(index) -plot(f); -freq_estim=(index-1)/n_fft; -p=Q*ratio.*I; -sinphi=2*sum(p)/length(Q); -phi_est=-asin(sinphi) -Qcor=(sin(phi_est)*I+ratio*Q)/cos(phi_est); -figure -plot(I(1:100)) -hold on -plot(Qcor(1:100),'g'); -comp=I+j*Qcor; -figure -plot(20*log10(abs(fft(comp)))); - -% per=round(1/freq_estim) -% figure;plot(I(1:per+1)) -% opt_offset=-5 -% min_diff=10^20; -% for offset=0:per -% diff=0; -% for k=1:n_fft -% diff=diff+abs(I(k+offset)-Q(k)); -% end; -% if diff<min_diff -% min_diff=diff; -% opt_offset= offset; -% end; -% end; -% disp(opt_offset) -% % normally, as to be 3/4*per -% opt_offset=opt_offset-3*per/4; -% disp(opt_offset/per*2*pi) diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_spec.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_spec.m deleted file mode 100755 index 7cbdf9e0ddb3de88667d211e1f70f0ce01951cc7..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_spec.m +++ /dev/null @@ -1,8 +0,0 @@ -openair_init; -i=5 -while (i>0) -s=oarf_get_frame(0); -plot(20*log10(abs(fft(s(:,1))))) -i=i-1; -disp(i) -end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_spec2.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_spec2.m deleted file mode 100755 index 350f6ead8ef814dc6c35eafe99a988ade6b50a98..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_spec2.m +++ /dev/null @@ -1,11 +0,0 @@ -openair_init; -i=30 -while (i>0) -s=oarf_get_frame(0); -figure(1) -plot(20*log10(abs(fft(s(:,1))))) -figure(2) -plot(imag(s(:,1))) -i=i-1; -disp(i) -end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store.m deleted file mode 100755 index fb73fe1c93234dedb927e8be71e7de5b614c4065..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store.m +++ /dev/null @@ -1,18 +0,0 @@ -frequency = input('Input freq in MHz: ', 's'); -num=1; -openair_init; -for n=1:num -s=oarf_get_frame(0); -plot(20*log10(abs(fft(s(:,1))))) -signal=s(:,1); -disp(signal(1:10)); -fid=fopen(['/tmp/' frequency '_' int2str(n) '.dat'],'wb') -sig=zeros(2*length(signal),1); -sig(1:2:length(sig))=real(signal); -sig(2:2:length(sig))=imag(signal); -fwrite(fid,sig,'float'); -fclose(fid); -end; - - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store2.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store2.m deleted file mode 100755 index faf625c92d3f0e8c6096b68b6f93e23eaa407e8d..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store2.m +++ /dev/null @@ -1,42 +0,0 @@ -%frequency = input('Input freq in MHz: ', 's'); - - -gpib_card=0; % first GPIB PCI card in the computer -gpib_sig_gen=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu (for SME) -gpib_spec_ana=20; % this is configured in the spectrum analsyer - - -gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator -gpib_send(gpib_card,gpib_device,'POW -70dBm'); -gpib_send(gpib_card,gpib_device,'FREQ 1.91452GHz'); - -cmd1='/homes/khalfall/work/openairinterface/arch/openair_CardBus_MIMO1/LEON3/hostpc/user/tools/scripts/set_receiver -M '; -frequency='900'; - -ALL_gain1=61:1:63; -ALL_gain2=61:1:63; - -for gain1=ALL_gain1 - - for gain2= ALL_gain2 -cmd=strcat(cmd1,frequency,' -g1 ',int2str(gain1),' -g2 ',int2str(gain2)); -disp(cmd); -system(cmd); -%system('set_receiver -M ' frequency ' -g1 ' int2str(gain1) ' -g2 ' int2str(gain2)); -system('sleep 1'); -end; -end; - -num=10; -openair_init; -%for n=1:num -%s=oarf_get_frame(0); -%plot(20*log10(abs(fft(s(:,1))))) -%signal=s(:,1); -%fid=fopen(['/tmp/' frequency '_' int2str(n) '.dat'],'wb') -%fwrite(fid,signal); -%fclose(fid); -%end; - - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store_ref.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store_ref.m deleted file mode 100755 index f206d36bd908e1f1490b2ba88eea60cedef3419c..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/rx_store_ref.m +++ /dev/null @@ -1,18 +0,0 @@ -frequency = input('Input freq in MHz: ', 's'); -num=1; -openair_init; -for n=1:num -s=oarf_get_frame(0); -plot(20*log10(abs(fft(s(:,1))))) -signal=s(:,1); -disp(signal(1:10)); -fid=fopen(['/tmp/' frequency '_ref' int2str(n) '.dat'],'wb') -sig=zeros(2*length(signal),1); -sig(1:2:length(sig))=real(signal); -sig(2:2:length(sig))=imag(signal); -fwrite(fid,sig,'float'); -fclose(fid); -end; - - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/s_mxa.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/s_mxa.m deleted file mode 100755 index 454ea5c6c1b25e75983142e554e6ba1c7e969e88..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/s_mxa.m +++ /dev/null @@ -1,93 +0,0 @@ -%frequency = input('Input freq in MHz: ', 's'); -% script to setup mxa and sign generator - -gpib_card=0; % first GPIB PCI card in the computer -sme=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu (for SME) -mxa=20; % this is configured in the spectrum analsyer - - -%gpib_send(gpib_card,sme,'*RST;*CLS'); % reset and configure the signal generator -%gpib_send(gpib_card,sme,'POW -70dBm'); -%gpib_send(gpib_card,sme,'FREQ 1.91452GHz'); - -gpib_send(gpib_card,mxa,'*CLS'); -gpib_send(gpib_card,mxa,'SENS:FREQ:CENT 642MHz'); - -sleep(1); -gpib_send(gpib_card,mxa,'SENS:FREQ:SPAN 50MHz'); - -sleep(1); -%gpib_send(gpib_card,mxa,'SENS:BAND:RES 10KHZ'); - -sleep(1); -gpib_send(gpib_card,mxa,'CONF:ACP'); -gpib_send(gpib_card,mxa,'INIT:ACP'); - -gpib_send(gpib_card,mxa,'SENS:ACP:FREQ:SPAN 20MHz'); - -gpib_send(gpib_card,mxa,'SENS:ACP:CARR1:LIST:BAND:INT 8MHz'); - -gpib_send(gpib_card,mxa,'SENS:ACP:OFFS1:LIST:STAT ON'); - -gpib_send(gpib_card,mxa,'SENS:ACP:OFFS1:LIST:FREQ 8MHZ,8MHZ,8MHZ,8MHZ,8MHZ,8MHZ'); -%frequency = input('Input freq in MHz: ', 's'); - gpib_send(gpib_card,mxa,'SENS:ACP:OFFS1:LIST:BAND:INT 8MHZ,8MHZ,8MHZ,8MHZ,8MHZ,8MHZ'); - -gpib_send(0,20,'SENS:POW:RANG:OPT:ATT COMB') -gpib_send(0,20,'SENS:POW:RF:RANG:OPT IMM') - - -%gpib_send(gpib_card,mxa,'POW:ATT 40dB'); -x=gpib_query(gpib_card,mxa,'SENS:ACP:CARR1:POW?',1); - - - -cmd1='/homes/khalfall/work/openairinterface/arch/openair_CardBus_MIMO1/LEON3/hostpc/user/tools/scripts/set_transmitter -M '; -frequency='900'; - -ALL_gain1=0:16:63; -ALL_gain2=0:16:63; - -i=0; -for gain1=ALL_gain1 -for gain2= ALL_gain2 - -i=i+1; -end; -end; -table=zeros(i,4); -i=1; -for gain1=ALL_gain1 -for gain2= ALL_gain2 -cmd=strcat(cmd1,frequency,' -g1 ',int2str(gain1),' -g2 ',int2str(gain2)); -%disp(cmd); -system(cmd); -%system('set_receiver -M ' frequency ' -g1 ' int2str(gain1) ' -g2 ' int2str(gain2)); -%system('sleep 1'); -sleep(.1); -table(i,1)=gain1; -table(i,2)=gain2; -%frequency = input('Input freq in MHz: ', 's'); -x=gpib_query(gpib_card,mxa,'READ:ACP?',3); -table(i,3)=x(1); -table(i,4)=(x(2)+x(3))/2; -i=i+1; -end; -end; -disp(table); - -P_num =100; %(warning, to be updated) - - - -% Post processing of the table started here -Pmin = -40; % in dBm -Pmax = 20; % in dBm - - - -% a Tx calibration file is calculated for a given board and frequency - -%fid=fopen(['/tmp/cal_TX' frequency '_' int2str(n) '.dat'],'wb') -%fwrite(fid,signal); -%fclose(fid); diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/script.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/script.m deleted file mode 100755 index 47edfa586d326ae5a2cf61250584673fb3d26ced..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/script.m +++ /dev/null @@ -1,111 +0,0 @@ -clear all - -size_data = 20480; % in ech -band = 7*10^6; %in Hz - -Samples = zeros(size_data,1); -prefixe_in = '/tmp/'; % c'estle repertoire des fichiers .dat - -signal_1 = [prefixe_in '953_4.dat']; -fid_1 = fopen(signal_1,'rb'); -signal = fread(fid_1, size_data); -fclose(fid_1); -Samples(:,1) = signal; - -data = (fft(Samples))'; - -mes_norm = sqrt(real(data).^2+imag(data).^2); - -[n,m]= size(mes_norm); - -decal_freq = 180*10^3; % in Hz -decal = ceil((decal_freq*size_data)/band); % in ech - - -for q = 1:(m - decal); - % Parameters - mu_norm = sum(mes_norm(q:q+decal))/(decal+1); - sigma2_norm = sum((mes_norm(q:q+decal)-mu_norm).^2)./(decal+1); - sigma_ray = sqrt((1/(2*(decal+1)))*sum(mes_norm(q:q+decal).^2)); - - % Distributions %%%%%%%%% - rayleigh = mes_norm(q:q+decal)./(sigma_ray^2).*exp(-(mes_norm(q:q+decal).^2)./(2*(sigma_ray^2))); - aic_matrix (1,q) = sum(log10(rayleigh))+2; - nr = exp(-(1/2)*(mes_norm(q:q+decal)-mu_norm).^2./(sigma2_norm))./(sqrt(sigma2_norm*2*pi)); - aic_matrix (2,q) = sum(log10(nr))+8; -end - - -min_vect = min(aic_matrix(:,:)); - -for i=1:m-decal, - D(1,i) = aic_matrix(1,i) - min_vect(i); - D(2,i) = aic_matrix(2,i) - min_vect(i); - - den = sum(exp(-0.5*D(:,i))); - w_ray(i) = exp(-0.5*D(1,i))/den; - w_nr(i) = exp(-0.5*D(2,i))/den; -end - -for i= 1:ceil(decal/2), - bande(i) = 0; -end - -for i=ceil(decal/2) + 1:length(w_ray)+ceil(decal/2), - if w_ray(i-ceil(decal/2)) < 0.009, - bande(i) = 1; - else - bande(i) = 0; - end -end - -for i= length(w_ray)+ceil(decal/2)+1:length(w_ray)+decal, - bande(i) = 0; -end - -bande_1 = zeros(1,length(bande)); - -for i=1:decal:length(bande)-decal, - nb_zeros = 0; - for k = 1:decal, - if (bande(i+k-1)==0), - nb_zeros = nb_zeros+1; - end - end - if (nb_zeros > decal/2), - for k = 1:decal, - bande_1(i+k-1)=0; - end - else - for k = 1:decal, - bande_1(i+k-1)=1; - end - end -end - -for i=1:length(bande)/2-72, - bande_1(length(bande) - i - 1) = bande_1(i + 72); -end - -for i=1:length(bande), - ban(i) = 0; -end - -for i=1:decal:length(bande), - ban(i) = 1; -end - -if 1, - size_data = size_data - decal; - fr = -band/2:band/size_data:band/2-band/size_data; - figure(1), - subplot(2,1,1),plot(fr,w_ray,'k.'), axis([-band/2, band/2, 0, 1]) - title('') - size_data = 20480; - band = 7*10^6; %in kHz - fr = -band/2:band/size_data:band/2-band/size_data; - subplot(2,1,2),plot(fr, real(data(1,:)), 'k-'), axis([-band/2, band/2, -150000, 150000]) - subplot(2,1,2),hold on, plot(fr, 10^5.*ban,'k--'), plot(fr, 10^5.*bande_1,'r') - subplot(2,1,1),hold on, plot(fr, ban,'k--'), - title('') -end \ No newline at end of file diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/toto.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/toto.m deleted file mode 100755 index bb24d6b256a26be2b743ab2e160442847928d8e4..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/toto.m +++ /dev/null @@ -1,112 +0,0 @@ -frequency = input('Input freq in MHz: ', 's'); -% script to setup mxa and sign generator -freq=str2num(frequency); -size_data=20480; -Fs=7680; %sampling freq in kHz -band = 1500; % noise band in kHz -gpib_card=0; % first GPIB PCI card in the computer -sme=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu (for SME) -cd ../CBMIMO1_TOOLS; -openair_init; -cd ../AGILE_RF_TOOLS; -%freq=1200; % normally loop -S_in=-100; -loss_cable=0.5 + freq/2000; -% first, calculation of IQ missmatch -[ratio,phi_est]=IQ_estimation(freq); - -gpib_send(gpib_card,sme,'*RST;*CLS'); % reset and configure the signal generator -gpib_send(gpib_card,sme,strcat('POW ',int2str(S_in),'dBm')); -%disp('FREQ ',int2str(freq),'MHz'); -gpib_send(gpib_card,sme,strcat('FREQ ',int2str(freq),'MHz')); -%disp('FREQ ',int2str(freq),'MHz'); -%frequency = input('Input freq in MHz: ', 's'); - -cmd1='/homes/nussbaum/openair1/ARCH/LEON3/hostpc/user/tools/scripts/set_receiver -M '; -frequency=int2str(freq); -ALL_gain1=63; -ALL_gain2=63; - -i=0; -for gain1=ALL_gain1 -for gain2= ALL_gain2 - -i=i+1; -end; -end; -table=zeros(i,4); -i=1; - -for gain1=ALL_gain1 -for gain2=ALL_gain2 -S_in_debug=-73 + floor((gain1+gain2)/2); -gpib_send(gpib_card,sme,strcat('POW ',int2str(S_in_debug),'dBm')); % this is for debug without the boards - -cmd=strcat(cmd1,frequency,' -g1 ',int2str(gain1),' -g2 ',int2str(gain2)); -system(cmd); -%system('set_receiver -M ' frequency ' -g1 ' int2str(gain1) ' -g2 ' int2str(gain2)); -%system('sleep 1'); -gpib_send(gpib_card,sme,'OUTP:STAT ON'); % activate output -sleep(.1); -table(i,1)=gain1; -table(i,2)=gain2; - -s=oarf_get_frame(0); -%figure -%plot(20*log10(abs(fft(s(:,1)))),'g') -signal=s(:,1); -I=real(signal); -Q=imag(signal); -disp(phi_est); -Qcor=sin(phi_est)*I; - -Qcor=(sin(phi_est)*I+ratio*Q)/cos(phi_est); -figure -plot(I(1:100)) -hold on -plot(Qcor(1:100),'g'); -comp=I+j*Qcor; -hold off -figure -plot(20*log10(abs(fft(comp)))); -max_pos=0; -max=0; -f=abs(fft(signal)).^2; -for n=size_data/2:size_data - if(f(n) > max) - max=f(n); - max_pos=n; - end; -end; -disp("max_pos") -disp(max_pos) -freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency -disp("freq_max") -disp(freq_max) -if(abs(freq_max-2000)>400) % probably and error occurs -disp("Warning") -Pu=0.1; -Pnoise=10000; -else -% calculation of the signal power -Pu=sum(f(max_pos-20:max_pos+20)) -ns_noise =round((band/Fs)*(size_data/2)) -Pnoise=sum(f(max_pos-ns_noise:max_pos+ns_noise))-Pu -end; - - -% plot(10*log10(f)) - -% plot(10*log10(f(max_pos-ns_noise:max_pos+ns_noise))) - -SNR=10*log10(Pu/Pnoise) -N_in = -174 +10*log10(1000*band) -S_in = S_in-loss_cable; -SNR_in=S_in - N_in - -NF=SNR_in-SNR -disp("gain_total") -gain_total=10*log10(Pu) - S_in - -end; -end; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/tx_calibrate_FlexRF.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/tx_calibrate_FlexRF.m deleted file mode 100755 index 0f5721cd55fafb14e13f3ac16e26e9d7ee1f6078..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/tx_calibrate_FlexRF.m +++ /dev/null @@ -1,94 +0,0 @@ -%frequency = input('Input freq in MHz: ', 's'); -% script to setup mxa and sign generator - -gpib_card=0; % first GPIB PCI card in the computer -sme=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu (for SME) -mxa=20; % this is configured in the spectrum analsyer - - -%gpib_send(gpib_card,sme,'*RST;*CLS'); % reset and configure the signal generator -%gpib_send(gpib_card,sme,'POW -70dBm'); -%gpib_send(gpib_card,sme,'FREQ 1.91452GHz'); - -gpib_send(gpib_card,mxa,'*CLS'); -gpib_send(gpib_card,mxa,'SENS:FREQ:CENT 642MHz'); - -sleep(1); -gpib_send(gpib_card,mxa,'SENS:FREQ:SPAN 50MHz'); - -sleep(1); -%gpib_send(gpib_card,mxa,'SENS:BAND:RES 10KHZ'); - -sleep(1); -gpib_send(gpib_card,mxa,'CONF:ACP'); -gpib_send(gpib_card,mxa,'INIT:ACP'); - -gpib_send(gpib_card,mxa,'SENS:ACP:FREQ:SPAN 20MHz'); - -gpib_send(gpib_card,mxa,'SENS:ACP:CARR1:LIST:BAND:INT 8MHz'); - -gpib_send(gpib_card,mxa,'SENS:ACP:OFFS1:LIST:STAT ON'); - -gpib_send(gpib_card,mxa,'SENS:ACP:OFFS1:LIST:FREQ 8MHZ,8MHZ,8MHZ,8MHZ,8MHZ,8MHZ'); -%frequency = input('Input freq in MHz: ', 's'); - gpib_send(gpib_card,mxa,'SENS:ACP:OFFS1:LIST:BAND:INT 8MHZ,8MHZ,8MHZ,8MHZ,8MHZ,8MHZ'); - -gpib_send(0,20,'SENS:POW:RANG:OPT:ATT COMB') -gpib_send(0,20,'SENS:POW:RF:RANG:OPT IMM') - - -%gpib_send(gpib_card,mxa,'POW:ATT 40dB'); -x=gpib_query(gpib_card,mxa,'SENS:ACP:CARR1:POW?',1); - - - -cmd1='/homes/khalfall/work/openairinterface/arch/openair_CardBus_MIMO1/LEON3/hostpc/user/tools/scripts/set_transmitter -M '; -frequency='900'; - -ALL_gain1=0:16:63; -ALL_gain2=0:16:63; - -i=0; -for gain1=ALL_gain1 -for gain2= ALL_gain2 - -i=i+1; -end; -end; -table=zeros(i,4); -i=1; -for gain1=ALL_gain1 -for gain2= ALL_gain2 -cmd=strcat(cmd1,frequency,' -g1 ',int2str(gain1),' -g2 ',int2str(gain2)); -%disp(cmd); -system(cmd); -%system('set_receiver -M ' frequency ' -g1 ' int2str(gain1) ' -g2 ' int2str(gain2)); -%system('sleep 1'); -sleep(.1); -table(i,1)=gain1; -table(i,2)=gain2; -%frequency = input('Input freq in MHz: ', 's'); -x=gpib_query(gpib_card,mxa,'READ:ACP?',3); -table(i,3)=x(1); -table(i,4)=(x(2)+x(3))/2; -i=i+1; -end; -end; -disp(table); - -P_num =100; %(warning, to be updated) - - - -% Post processing of the table started here -Pmin = -40; % in dBm -Pmax = 20; % in dBm -optimal_gain=zeros(Pmax-Pmin+1,4); - - - -% a Tx calibration file is calculated for a given board and frequency - -%fid=fopen(['/tmp/cal_TX' frequency '_' int2str(n) '.dat'],'wb') -%fwrite(fid,signal); -%fclose(fid); diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/variouspowers.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/variouspowers.m deleted file mode 100755 index bc74e32af3c3774b4855f6bee0adae9bb7133ea6..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/variouspowers.m +++ /dev/null @@ -1,33 +0,0 @@ -function retvalue=variouspowers(s) - -W=25; - -fftsize=2^ceil(log2(length(s))); -powspectrum=fftshift(abs(fft(s-mean(s),fftsize)/sqrt(fftsize))); - -powspectrumfilt=conv(powspectrum,ones(1,2*W+1)); - -[sigpower carrier_idx]=max(powspectrumfilt); - -if (carrier_idx<=3*W) - carrier_idx=3*W+1; -end -sigpower_dB=20*log10(sigpower); - - -if (carrier_idx>3*W) - - noiseplusintfspectrum=powspectrum; - noiseplusintfspectrum(carrier_idx+(-W:W)-2*W)=zeros(1,2*W+1); - - noiseplusintfpower_dB=10*log10(sum(noiseplusintfspectrum.^2)); - - noiseplusintfspectrum_dB=20*log10(noiseplusintfspectrum); - noiseplusintfspectrum_dB(carrier_idx+(-W:W)-2*W)=-20; - -%plot([ 20*log10(powspectrum) noiseplusintfspectrum_dB]) -%pause - retvalue=[sigpower_dB noiseplusintfpower_dB]; -else - retvalue=[sigpower_dB +Inf]; -end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/write_table.m b/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/write_table.m deleted file mode 100755 index 5aceb2f051a18ec29b2986a22707e230b6ce27da..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS/write_table.m +++ /dev/null @@ -1,33 +0,0 @@ -card = input('Input card number: ', 's'); - -filename_h = ['gain_table_' card '.h']; % file to store the gain table to -filename_mat = ['gain_table_' card '.mat']; - -save(filename_mat,'SpN0','SpN1','N0','N1','S0','S1','G0','G1','NF0','NF1','SNR0','SNR1'); - -fid = fopen(filename_h,'w'); - -fprintf(fid,'#ifndef _GAIN_TABLE_H__\n'); -fprintf(fid,'#define _GAIN_TABLE_H__\n'); - -fprintf(fid,'#include "phy_implementation_defs.h"\n'); -%fprintf(fid,'#include "phy_implementation_defs.h"\n'); - -fprintf(fid,'#define TCXO_OFFSET\n'); - -fprintf(fid,'struct gain_table_entry {\n'); -fprintf(fid,' unsigned char gain0;\n'); -fprintf(fid,' unsigned char gain1;\n'); -fprintf(fid,'};\n'); - -fprintf(fid,'struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = {\n'); -for agc_level = 1:(max_agc_level-min_agc_level) - fprintf(fid,'%d, %d,\n',gain_levels(agc_level,:)); -end -fprintf(fid,'%d, %d};\n',gain_levels(end,:)); - - -fprintf(fid,'#endif /* _GAIN_TABLE_H__ */\n'); - -fclose(fid); - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/MAX2391Gain_v2_3_800.png b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/MAX2391Gain_v2_3_800.png deleted file mode 100644 index 35bc21b5f45c098fac065635958f18755d8bec67..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/MAX2391Gain_v2_3_800.png and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/MAX2391NF_v2_3_800.png b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/MAX2391NF_v2_3_800.png deleted file mode 100644 index 459cfb787f236f31614c7507dd23c98ef15050d4..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/MAX2391NF_v2_3_800.png and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/Makefile b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/Makefile deleted file mode 100644 index 1a921062e739912322ea8eab0195e9bb08b8d31a..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -CC = gcc - -TOP_DIR = ../.. -OPENAIR2_DIR = ../../../../openair2 -OPENAIR2_TOP = $(OPENAIR2_DIR) - -CFLAGS = -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DMAX_MODULES=1 -DPHY_CONTEXT=1 -DDEBUG_PHY -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DNB_ANTENNAS_TXRX=2 -I$(OPENAIR1_DIR) -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES - -include $(OPENAIR2_DIR)/LAYER2/Makefile.inc -include $(OPENAIR2_DIR)/UTIL/Makefile.inc -CFLAGS += $(L2_incl) $(UTIL_incl) - -#ifdef OPENAIR_LTE -CFLAGS += -DOPENAIR_LTE -#endif - - -XTRA_CFLAGS = -msse -msse2 -mssse3 - -GCCVERSION = $(shell gcc --version | grep ^gcc | sed 's/^.* //g') -ifeq "$(GCCVERSION)" "4.4.3" - CFLAGS += -Wno-packed-bitfield-compat -endif -ifeq "$(GCCVERSION)" "4.5.2" - CFLAGS += -Wno-packed-bitfield-compat -endif -ifeq "$(GCCVERSION)" "4.6.1" - CFLAGS += -Wno-packed-bitfield-compat -endif - -OPENAIROBJS +=$(OPENAIR1_DIR)/PHY/INIT/lte_parms.o - -#OPENAIROBJS = $(OPENAIR1_DIR)/PHY/CONFIG/openair_readconfigfile.o $(OPENAIR1_DIR)/PHY/CONFIG/openair_configure.o - -OCTAVEOBJS = oarf_set_tcxo_dac.oct oarf_config.oct oarf_config_exmimo.oct oarf_set_calibrated_rx_gain.oct oarf_set_tx_gain.oct oarf_get_frame.oct oarf_set_rx_gain.oct oarf_set_rx_rfmode.oct oarf_stop.oct oarf_send_frame.oct - -all: $(OCTAVEOBJS) gpib_send.oct - -oarf: $(OCTAVEOBJS) - -$(OPENAIROBJS) : %.o : %.c - gcc -c $(CFLAGS) $(XTRA_CFLAGS) -o $@ $< - -test: - echo $(OPENAIROBJS) - -$(OCTAVEOBJS) : %.oct : %.cc $(OPENAIROBJS) - mkoctfile -o $@ $(CFLAGS) -lm $(OPENAIROBJS) $< - -gpib_send.oct: gpib_send.cc - mkoctfile -I/usr/include/gpib -I/usr/local/include/gpib -lgpib gpib_send.cc - -clean: - rm -f gpib_send.oct $(OCTAVEOBJS) $(OPENAIROBJS) diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/OFDM_TX.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/OFDM_TX.m deleted file mode 100755 index f477acd832efca46b720836842b8e2d4e0872f34..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/OFDM_TX.m +++ /dev/null @@ -1,19 +0,0 @@ -function [sig,sig_length] = OFDM_TX(num_carriers,num_zeros,prefix_length,input) - -% OFDM Transmitter - DC removed -% sig is the output signal -% length is the length of the output signal -% num_carriers - number of sub-carriers (power of 2) -% num_zeros - number of zeros minus 1 (DC) in output spectrum (odd) -% prefix_length - length of cyclic prefix -% input - input dimensions (length = number_carriers - num_zeros - 1) - -if (length(input) + num_zeros + 1 ~= num_carriers) - fprintf('error in lengths\n'); - return; - end - -ext_input = [0 input(1:length(input)/2) zeros(1,num_zeros) input((1+length(input)/2) : length(input))]; -output_1 = ifft(ext_input); -sig = [output_1((num_carriers - prefix_length + 1) : num_carriers) output_1]; -sig_length = length(sig); diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/OFDM_TX_FRAME.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/OFDM_TX_FRAME.m deleted file mode 100755 index f78e9077daf03a140cc40921583916e329d9163a..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/OFDM_TX_FRAME.m +++ /dev/null @@ -1,22 +0,0 @@ -function sig = OFDM_TX_FRAME(num_carriers,num_zeros,prefix_length,num_symbols_frame,preamble_length) - -% sig - output signal -% sig_length - output signal length -% num_carriers - number of sub-carriers -% num_zeros - number of zero carriers minus 1 (DC) -% prefix_length - length of cyclic prefix -% num_symbols_frame - number of symbols per OFDM frame -% preamble_length - length of 4-QAM preamble - -num_useful_carriers = num_carriers - num_zeros -1; - -sig = []; -for k=1:preamble_length - QAM4_preamble = QAM_MOD(4,floor(256*abs(rand(1,num_useful_carriers/4)))); - sig = [sig OFDM_TX(num_carriers,num_zeros,prefix_length,QAM4_preamble)]; -end - -for k=1:(num_symbols_frame - preamble_length) - QAM_data = QAM_MOD(256,floor(256*abs(rand(1,num_useful_carriers)))); - sig = [sig OFDM_TX(num_carriers,num_zeros,prefix_length,QAM_data)]; -end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/QAM_MOD.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/QAM_MOD.m deleted file mode 100755 index 48aa6747694a73dbebb74e64b2b1ba4f406c9851..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/QAM_MOD.m +++ /dev/null @@ -1,29 +0,0 @@ -function [sig,sig_length] = QAM_MOD(size,input) - -% sig - output symbols -% size - modulation size (4,16,256) -% input - vector of bytes to be modulated - -AM2 = [-1 1]; -AM4 = [-3 -1 1 3]; AM4 = 2*AM4/sqrt(AM4*AM4'); -AM16 = [-15 -13 -11 -9 -7 -5 -3 -1 1 3 5 7 9 11 13 15]; AM16 = 4*AM16/sqrt(AM16*AM16'); - -sig = zeros(1,length(input)*8/log2(size)); -sig_length = length(input)*8/log2(size); - -for l=1:length(input) - if (size == 256) - sig(l) = (AM16(1+ floor((input(l)/16))) +sqrt(-1)*AM16(1+rem(input(l),16)))/sqrt(2); - - elseif (size == 16) - sig(1 + 2*(l-1)) = (AM4(1+floor((input(l)/64))) + sqrt(-1)*AM4(1+rem(floor(input(l)/16) , 4)))/sqrt(2); - sig(2 + 2*(l-1)) = (AM4(1+rem(floor(input(l)/4) , 4)) + sqrt(-1)*AM4(1+rem(input(l) , 4)))/sqrt(2); - - elseif (size == 4) - sig(1+ 4*(l-1)) = (AM2(1+(floor(input(l)/128))) + sqrt(-1)*AM2(1+rem(floor(input(l)/64) , 2)))/sqrt(2); - sig(2+ 4*(l-1)) = (AM2(1+rem(floor(input(l)/32) ,2)) + sqrt(-1)*AM2(1+rem(floor(input(l)/16) , 2)))/sqrt(2); - sig(3+ 4*(l-1)) = (AM2(1+rem(floor(input(l)/8) , 2)) + sqrt(-1)*AM2(1+rem(floor(input(l)/4) , 2)))/sqrt(2); - sig(4+ 4*(l-1)) = (AM2(1+rem(floor(input(l)/2) , 2)) + sqrt(-1)*AM2(1+rem(input(l) , 2)))/sqrt(2); - - end - end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/bitplots.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/bitplots.m deleted file mode 100644 index 9b2b53f9016ecef426fb69eced80cd71cca7a7c2..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/bitplots.m +++ /dev/null @@ -1,18 +0,0 @@ -chan=1; -hold off ; -s=oarf_get_frame(0); - -s2=zeros(76800*2,1); -s2(1:2:end) = s(:,chan); -s2(2:2:end) = s(:,chan); - -plot(real(s2),'b',"markersize",1); -hold on; plot(imag(s2),'r',"markersize",1); - -bit11_I = rem(floor(real(2048+s(:,chan))/2048),2); -bit11_Q = rem(floor(imag((2048*j)+s(:,chan))/2048),2); -bit11_IQ = zeros(1,2*length(bit11_I)); -bit11_IQ(1:2:end) = bit11_I; -bit11_IQ(2:2:end) = bit11_Q; -plot(500*bit11_IQ,'k') -axis([0 76800 -1000 1000]) diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/freq_calibration.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/freq_calibration.m deleted file mode 100644 index f6d716b9d71b06bd81f6ac1c2a10a0c3c34f741d..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/freq_calibration.m +++ /dev/null @@ -1,89 +0,0 @@ -close all -clear all -hold off - -% Maxime Guillaud - created Wed May 10 18:08:04 CEST 2006 - -gpib_card=0; % first GPIB PCI card in the computer -gpib_device=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu -freqband=0; % frequency band used by the openair card (depricated) - -cables_loss_dB = 6; % we need to account for the power loss between the signal generator and the card input (splitter, cables) -dual_tx = 0; -tdd = 1; - -fc = 1902600e3+freqband*5e6; % this has to be the same as in the config file -fs = 7680e3; -%fs = 6500e3; -fref = fc+fs/4; -power_dBm=-70; - - -%gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator -%gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']); -%gpib_send(gpib_card,gpib_device,['FREQ 1.91860 Ghz']); % set the frequency -%gpib_send(gpib_card,gpib_device,['FREQ ' int2str(fref/1e3) 'khz']); % set the frequency -%gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); % activate output - -%keyboard; - -oarf_config(freqband,tdd,dual_tx) - -oarf_set_rx_rfmode(0); - -oarf_set_rx_gain(70,70,0,0); - -sleep(2) - -step = 128; -tcxo_freq = 128; - -f_off_min = 1e6; -tcxo_freq_min = 256; - -do - - step = step/2; - tcxo_freq - oarf_set_tcxo_dac(tcxo_freq); - sleep(2); - s=oarf_get_frame(freqband); %oarf_get_frame - nb_rx = size(s,2); - - % find the DC component - m = mean(s); - - s_phase = unwrap(angle(s(10000:4:length(s),1).')); - s_phase = s_phase - s_phase(1,1); - f_off = mean(s_phase(2:length(s_phase))*fs/4./(1:(length(s_phase)-1))/2/pi) - plot(1:length(s_phase),s_phase,'r'); - - if (nb_rx>1) - s_phase2 = unwrap(angle(s(10000:4:length(s),2).')); - s_phase2 = s_phase2 - s_phase2(1,1); - f_off2 = mean(s_phase2(2:length(s_phase2))*fs/4./(1:(length(s_phase2)-1))/2/pi) - hold on - plot(1:length(s_phase2),s_phase2,'g'); - hold off - end - - - if (abs(f_off) < f_off_min) - tcxo_freq_min = tcxo_freq; - f_off_min = abs((f_off)); - end - - if ((f_off) > 0) - tcxo_freq = tcxo_freq + step; - else - tcxo_freq = tcxo_freq - step; - endif - - -until (step < 1) - -write_tcxo - -%gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_10.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_10.h deleted file mode 100644 index 1aa695731ba26c9802a37a95d65e706a099e839b..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_10.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#define MAX_RF_GAIN 150 -#define MIN_RF_GAIN 96 -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 26, 17, - 28, 22, - 29, 25, - 31, 27, - 33, 29, - 35, 31, - 38, 33, - 40, 35, - 48, 38, - 52, 40, - 54, 43, - 56, 48, - 57, 52, - 58, 54, - 60, 56, - 61, 58, - 63, 60, - 65, 62, - 67, 65, - 69, 67, - 73, 69, - 79, 72, - 84, 74, - 88, 78, - 90, 82, - 92, 85, - 94, 88, - 95, 90, - 97, 92, - 98, 94, - 99, 96, - 101, 99, - 103, 101, - 105, 103, - 107, 106, - 111, 108, - 116, 111, - 122, 114, - 126, 118, - 127, 122, - 128, 125, - 129, 127, - 131, 130, - 133, 132, - 135, 134, - 138, 137, - 140, 139, - 144, 143, - 152, 148, - 155, 152, - 157, 155, - 158, 157, - 160, 160, - 162, 162, - 164, 166 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_11.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_11.h deleted file mode 100644 index 2a1a0c18e9d92b4ce03c5a4555f93dcb5a7901c9..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_11.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#define MAX_RF_GAIN 150 -#define MIN_RF_GAIN 96 -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_12.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_12.h deleted file mode 100644 index 857120bdbf9f590799ad3f9b4df70b197aa23202..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_12.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#define MAX_RF_GAIN 150 -#define MIN_RF_GAIN 96 -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 28, 21, - 29, 28, - 30, 30, - 32, 31, - 33, 33, - 34, 34, - 35, 35, - 37, 37, - 39, 39, - 41, 41, - 46, 46, - 55, 52, - 57, 55, - 58, 57, - 60, 59, - 61, 61, - 62, 62, - 64, 64, - 65, 65, - 69, 68, - 76, 73, - 78, 76, - 79, 78, - 81, 80, - 83, 82, - 85, 83, - 89, 85, - 94, 90, - 97, 95, - 100, 98, - 101, 100, - 103, 101, - 104, 103, - 105, 104, - 107, 106, - 111, 108, - 117, 115, - 119, 118, - 121, 120, - 122, 122, - 124, 123, - 125, 124, - 128, 126, - 130, 128, - 140, 132, - 143, 141, - 145, 143, - 147, 145, - 149, 147, - 151, 150, - 152, 151, - 154, 153, - 155, 154, - 167, 167, - 168, 169 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_2.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_2.h deleted file mode 100644 index e8890ea4ce66a459edeb3092f2d1b1065dd0c74d..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_2.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#include "phy_implementation_defs.h" -#define TCXO_OFFSET -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 27, 20, - 29, 23, - 32, 26, - 34, 28, - 37, 31, - 41, 34, - 43, 37, - 45, 39, - 48, 42, - 51, 45, - 54, 47, - 56, 50, - 58, 52, - 61, 55, - 63, 57, - 65, 60, - 67, 63, - 70, 65, - 72, 67, - 75, 70, - 78, 72, - 80, 75, - 83, 77, - 86, 80, - 88, 82, - 90, 85, - 93, 87, - 98, 90, - 102, 93, - 103, 95, - 105, 97, - 106, 100, - 108, 102, - 114, 105, - 116, 107, - 117, 110, - 118, 113, - 120, 115, - 123, 118, - 131, 121, - 132, 123, - 132, 126, - 133, 128, - 134, 131, - 141, 134, - 142, 136, - 149, 139, - 152, 142, - 155, 145, - 156, 148, - 158, 151, - 160, 154, - 167, 157, - 179, 160, - 179, 164 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_7.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_7.h deleted file mode 100644 index e2f7d9904950ec6dbea29179ddda07dc8f446665..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_7.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#include "phy_implementation_defs.h" -#define TCXO_OFFSET -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 1, 2, - 6, 7, - 10, 11, - 13, 15, - 17, 18, - 20, 21, - 23, 25, - 26, 28, - 29, 30, - 31, 33, - 34, 36, - 37, 39, - 39, 42, - 42, 44, - 45, 47, - 47, 50, - 50, 52, - 52, 55, - 55, 57, - 57, 58, - 60, 60, - 62, 61, - 65, 62, - 67, 63, - 70, 64, - 72, 65, - 75, 66, - 77, 67, - 80, 69, - 82, 70, - 85, 72, - 87, 75, - 90, 78, - 92, 81, - 94, 87, - 97, 93, - 100, 100, - 102, 106, - 105, 110, - 107, 112, - 110, 114, - 112, 116, - 115, 118, - 117, 120, - 120, 123, - 123, 125, - 125, 128, - 128, 130, - 131, 133, - 134, 136, - 136, 138, - 139, 141, - 142, 144, - 145, 147, - 148, 150 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_13_800_s3.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_13_800_s3.h deleted file mode 100644 index b36b27d631042198acaf8b0db7d63e44efa5f11e..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_13_800_s3.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#define MAX_RF_GAIN 150 -#define MIN_RF_GAIN 130 -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 32, 32, - 35, 35, - 38, 38, - 40, 40, - 43, 43, - 46, 46, - 48, 48, - 51, 51, - 54, 53, - 56, 56, - 59, 58, - 61, 61, - 64, 63, - 67, 66, - 69, 68, - 72, 71, - 75, 73, - 77, 76, - 80, 79, - 82, 81, - 85, 84 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_13_800_s3.mat b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_13_800_s3.mat deleted file mode 100644 index 1c9918bb96e14cc103aa710723742e13094db1fa..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_13_800_s3.mat and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_3_800_ue.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_3_800_ue.h deleted file mode 100644 index 3babeb655ae792ffba6fe10a17b81ce34357e6b1..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_3_800_ue.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#define MAX_RF_GAIN 150 -#define MIN_RF_GAIN 130 -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 46, 56, - 49, 58, - 51, 61, - 54, 63, - 56, 66, - 59, 68, - 62, 71, - 64, 73, - 67, 76, - 69, 78, - 72, 81, - 74, 83, - 77, 85, - 79, 88, - 82, 90, - 84, 93, - 87, 95, - 89, 98, - 92, 100, - 94, 103, - 97, 106 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_3_800_ue.mat b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_3_800_ue.mat deleted file mode 100644 index de25fc234a3172711bbd8aaa3303c821fe8790ae..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_3_800_ue.mat and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_7_800_s1.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_7_800_s1.h deleted file mode 100644 index 1ae2dcc0ebe6c8dbef8333e2327fa1bf27b54f2d..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_7_800_s1.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#define MAX_RF_GAIN 150 -#define MIN_RF_GAIN 130 -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 25, 34, - 28, 37, - 31, 39, - 34, 42, - 36, 45, - 39, 47, - 42, 50, - 44, 53, - 47, 55, - 49, 58, - 52, 60, - 54, 63, - 57, 65, - 59, 68, - 62, 70, - 64, 73, - 67, 75, - 69, 78, - 72, 80, - 74, 83, - 77, 85 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_7_800_s1.mat b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_7_800_s1.mat deleted file mode 100644 index d339da0ba753af7b674255ab455653362715bb90..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_7_800_s1.mat and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_8_800_s2.h b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_8_800_s2.h deleted file mode 100644 index 1fa6fdfe7a38d0c5a4bed5e504d614fb373ebe60..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_8_800_s2.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _GAIN_TABLE_H__ -#define _GAIN_TABLE_H__ -#define MAX_RF_GAIN 150 -#define MIN_RF_GAIN 130 -struct gain_table_entry { - unsigned char gain0; - unsigned char gain1; -}; -struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = { - 25, 30, - 28, 33, - 30, 36, - 33, 38, - 36, 41, - 39, 44, - 42, 46, - 44, 49, - 47, 52, - 50, 54, - 52, 57, - 55, 59, - 57, 62, - 60, 64, - 63, 67, - 65, 69, - 68, 72, - 70, 75, - 73, 77, - 75, 80, - 78, 82 -}; -#endif /* _GAIN_TABLE_H__ */ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_8_800_s2.mat b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_8_800_s2.mat deleted file mode 100644 index 6d5e0f6412ed0263526c8d664ba793bfdf604b37..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gain_table_v2_8_800_s2.mat and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gpib_send.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gpib_send.cc deleted file mode 100644 index 0a94b3ab6894622d7c9f8fe24029be0d1b756564..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/gpib_send.cc +++ /dev/null @@ -1,101 +0,0 @@ - -// Maxime Guillaud - created Wed May 10 19:23:30 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://octave.sourceforge.net/coda/c58.html -// compile with: mkoctfile -I/usr/local/include/gpib -lgpib gpib_send.cc - -#include <octave/oct.h> -#include "ib.h" - - - - -static bool any_bad_argument(const octave_value_list &args) -{ - if (args.length()!=3) - { - error("gpib_send: syntax: gpib_send(gpib_board,gpib_device,gpib_str)."); - return true; - } - - - if (!args(0).is_real_scalar()) - { - error("gpib_send: GPIB board number must be a positive integer."); - return true; - } - if (args(0).scalar_value() < 0.0) - { - error("gpib_send: GPIB board number must be a positive integer."); - return true; - } - if (floor(args(0).scalar_value()) != args(0).scalar_value()) - { - error("gpib_send: GPIB board number must be a positive integer."); - return true; - } - - - if (!args(1).is_real_scalar()) - { - error("gpib_send: GPIB device number must be a positive integer."); - return true; - } - - if (args(1).scalar_value() < 0.0) - { - error("gpib_send: GPIB device number must be a positive integer."); - return true; - } - - if (floor(args(1).scalar_value()) != args(1).scalar_value()) - { - error("gpib_send: GPIB device number must be a positive integer."); - return true; - } - - if (!args(2).is_string()) - { - error("gpib_send: third parameter must be a char string."); - return true; - } - - return false; -} - - - - -DEFUN_DLD (gpib_send, args, nargout,"sends commands to the GPIB bus") -{ - if (any_bad_argument(args)) - return octave_value_list(); - - - const int gpib_board = args(0).int_value(); - const int gpib_device = args(1).int_value(); - const std::string gpib_string = args(2).string_value(); - - unsigned short addlist[2] = {gpib_device, NOADDR}; - - SendIFC(gpib_board); - - // ENABLE all on GPIB bus - EnableRemote(gpib_board, addlist); - // If error, Bye! - if (ibsta & ERR) - { - error("gpib_send: Instrument enable failed!"); - return octave_value_list(); - } - - Send(gpib_board, gpib_device, gpib_string.c_str(), strlen(gpib_string.c_str()), NLend); - if (ibsta & ERR) - { - error("gpib_send: Send failed!"); - return octave_value_list(); - } - - return octave_value_list(); - -} diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/launch_gpib.sh b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/launch_gpib.sh deleted file mode 100644 index 7022d7e7b94008cfce9eb9405813843e4914b67d..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/launch_gpib.sh +++ /dev/null @@ -1,4 +0,0 @@ -modprobe ni_usb_gpib -fxload -D /proc/bus/usb/004/003 -I /usr/local/share/linux-gpib-3.2.11/gpib_firmware-2008-08-10/ni_gpib_usb_b/niusbb_firmware.hex -s /usr/local/share/linux-gpib-3.2.11/gpib_firmware-2008-08-10/ni_gpib_usb_b/niusbb_loader.hex -gpib_config -chmod a+rw /dev/gpib0 diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/limeparms.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/limeparms.m deleted file mode 100644 index 21be573634da77e984a3df03882722c703900ebb..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/limeparms.m +++ /dev/null @@ -1,75 +0,0 @@ -RXEN=1; -TXEN=2; - -TXLPFENMASK=4; -TXLPFEN=4; - - -TXLPFMASK =15*(2^3); -TXLPF14 =0; -TXLPF10 =1*(2^3); -TXLPF7 =2*(2^3); -TXLPF6 =3*(2^3); -TXLPF5 =4*(2^3); -TXLPF4375 =5*(2^3); -TXLPF35 =6*(2^3); -TXLPF3 =7*(2^3); -TXLPF275 =8*(2^3); -TXLPF25 =9*(2^3); -TXLPF192 =10*(2^3); -TXLPF15 =11*(2^3); -TXLPF1375 =12*(2^3); -TXLPF125 =13*(2^3); -TXLPF0875 =14*(2^3); -TXLPF075 =15*(2^3); -RXLPFENMASK=1*(2^7); -RXLPFEN =128; -RXLPFMASK =15*(2^8); -RXLPF14 =0; -RXLPF10 =1*(2^8); -RXLPF7 =2*(2^8); -RXLPF6 =3*(2^8); -RXLPF5 =4*(2^8); -RXLPF4375 =5*(2^8); -RXLPF35 =6*(2^8); -RXLPF3 =7*(2^8); -RXLPF275 =8*(2^8); -RXLPF25 =9*(2^8); -RXLPF192 =10*(2^8); -RXLPF15 =11*(2^8); -RXLPF1375 =12*(2^8); -RXLPF125 =13*(2^8); -RXLPF0875 =14*(2^8); -RXLPF075 =15*(2^8); -LNAMASK=3*(2^12); -LNADIS =0; -LNA1ON =1*(2^12); -LNA2ON =2*(2^12) ; -LNA3ON =3*(2^12); -LNAGAINMASK=3*(2^14); -LNAByp =1*(2^14); -LNAMed =2*(2^14); -LNAMax =3*(2^14); - -RFBBMASK =7*(2^16); -RFBBNORM =0; -RFBBRXLPF =1*(2^16); -RFBBRXVGA =2*(2^16); -RFBBOUTPUT=3*(2^16); -RFBBLNA1 =4*(2^16); -RFBBLNA2 =5*(2^16); -RFBBLNA3 =6*(2^16); - -TXLPFMODEMASK=1*(2^21); -TXLPFNORM =0; -TXLPFBYP =1*(2^21); - -RXLPFMODEMASK=3*(2^19); -RXLPFNORM =0; -RXLPFBYP =1*(2^19); -RXLPFBPY2 =3*(2^19); - - -rf_local = 31 + 31*(2^6) + 31*(2^12) + 31*(2^18); -rf_rxdc = 128 + 128*(2^8) -rf_vcocal = ((0xE)*(2^6)) + (0xE); diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_common.c b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_common.c deleted file mode 100644 index 2667429d0c4e2c87269c42cdb87ba0201c884698..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_common.c +++ /dev/null @@ -1,655 +0,0 @@ -// Maxime Guillaud - Created Fri May 12 16:06:53 CEST 2006 -// this files gathers the various functions used to control the openair RF interface -// it is equivalent to the openair_readconfigfile.c and openair_configure.c of the config/ directory - - - - -// Structures shared by various functions in this file -PHY_CONFIG PHY_config_mem; -PHY_CONFIG *PHY_config; -FILE *config, *scenario; - -PHY_FRAMING phyFraming[MAX_CFG_SECTIONS]; -PHY_CHBCH phyCHBCH[MAX_CFG_SECTIONS]; -PHY_CHSCH phyCHSCH[MAX_CFG_SECTIONS]; -PHY_SCH phySCH[MAX_CFG_SECTIONS]; -PHY_SACH phySACH[MAX_CFG_SECTIONS]; - -const cfg_Action Action[] = { - {"PHY_FRAMING", phyFraming_ProcessInitReq}, // to do some manipulation of the raw data - {"PHY_CHSCH", phyCHSCH_ProcessInitReq}, - {"PHY_SCH", phySCH_ProcessInitReq}, - {"PHY_CHBCH", phyCHBCH_ProcessInitReq}, - {"PHY_SACH", phySACH_ProcessInitReq} -}; - -const cfg_Section Section[]= { - {"PHY_FRAMING", cfg_readPhyFraming}, - {"PHY_CHBCH", cfg_readPhyCHBCH}, - {"PHY_CHSCH", cfg_readPhyCHSCH}, - {"PHY_SCH", cfg_readPhySCH}, - {"PHY_SACH", cfg_readPhySACH} -}; - - - -void -dump_config() -{ - - int i; - FILE *fid; - - msg("[openair][CONFIG] Dumping Config\n\n"); - msg("[openair][CONFIG] PHY_FRAMING\n"); - msg("[openair][CONFIG] -----------\n"); - msg("[openair][CONFIG] fc = %d kHz\n",PHY_config->PHY_framing.fc_khz); - msg("[openair][CONFIG] fs = %d kHz\n",PHY_config->PHY_framing.fs_khz); - msg("[openair][CONFIG] Nsymb= %d\n",PHY_config->PHY_framing.Nsymb); - msg("[openair][CONFIG] Nd= %d\n",PHY_config->PHY_framing.Nd); - msg("[openair][CONFIG] log2Nd= %d\n",PHY_config->PHY_framing.log2Nd); - msg("[openair][CONFIG] Nc= %d\n",PHY_config->PHY_framing.Nc); - msg("[openair][CONFIG] Nz= %d\n",PHY_config->PHY_framing.Nz); - msg("[openair][CONFIG] Nf= %d\n",PHY_config->PHY_framing.Nf); - - switch (PHY_config->PHY_framing.Extension_type) { - - case CYCLIC_SUFFIX: - msg("[openair][CONFIG] Extension= CYCLIC_SUFFIX \n"); - break; - - case CYCLIC_PREFIX: - msg("[op`enair][CONFIG] Extension= CYCLIC_PREFIX \n"); - break; - - case ZEROS: - msg("[openair][CONFIG] Extension= ZEROS\n"); - break; - - default: - msg("[openair][CONFIG] Extension= CYCLIC_SUFFIX\n"); - break; - } - - msg("[openair][CONFIG]\n"); - msg("[openair][CONFIG] PHY_CHSCH\n"); - msg("[openair][CONFIG] -----------\n"); - msg("[openair][CONFIG] symbol = %d\n",PHY_config->PHY_chsch[0].symbol); - msg("[openair][CONFIG] Nsymb= %d\n",PHY_config->PHY_chsch[0].Nsymb); - msg("[openair][CONFIG] dd_offset= %d\n",PHY_config->PHY_chsch[0].dd_offset); - - for (i=0; i<32; i++) { - msg("[openair][CONFIG] chsch_seq_re[%d]= %x\n",i,PHY_config->PHY_chsch[0].chsch_seq_re[i]); - msg("[openair][CONFIG] chsch_seq_im[%d]= %x\n",i,PHY_config->PHY_chsch[0].chsch_seq_im[i]); - } - - msg("[openair][CONFIG] CHSCH_POWER= %d dBm\n",PHY_config->PHY_chsch[0].CHSCH_POWER_dBm); - - msg("[openair][CONFIG]\n"); - msg("[openair][CONFIG] PHY_CHBCH\n"); - msg("[openair][CONFIG] -----------\n"); - msg("[openair][CONFIG] symbol = %d\n",PHY_config->PHY_chbch[0].symbol); - msg("[openair][CONFIG] Nsymb= %d\n",PHY_config->PHY_chbch[0].Nsymb); - msg("[openair][CONFIG] IntDepth= %d\n",PHY_config->PHY_chbch[0].IntDepth); - msg("[openair][CONFIG] dd_offset= %d\n",PHY_config->PHY_chbch[0].dd_offset); - msg("[openair][CONFIG] Npilot= %d\n",PHY_config->PHY_chbch[0].Npilot); - - for (i=0; i<8; i++) { - msg("[openair][CONFIG] pilot_re[%d]= %x\n",i,PHY_config->PHY_chbch[0].pilot_re[i]); - msg("[openair][CONFIG] pilot_im[%d]= %x\n",i,PHY_config->PHY_chbch[0].pilot_im[i]); - } - - msg("[openair][CONFIG] FreqReuse= %d\n",PHY_config->PHY_chbch[0].FreqReuse); - msg("[openair][CONFIG] FreqReuse_ind= %d\n",PHY_config->PHY_chbch[0].FreqReuse_ind); - msg("[openair][CONFIG] CHBCH_POWER= %d dBm\n",PHY_config->PHY_chbch[0].CHBCH_POWER_dBm); - - - -} - - -int -reconfigure_MACPHY(FILE* scenario) -{ - - FILE *inscenario=scenario; - int cfgNumber, ActionIndex; - char LineBuffer[MAX_LINE_SIZE]; - char ActionName[MAX_ACTION_NAME_SIZE]; - - /*!< \brief Reading or opening the scenario*/ - - - loadConfig(); - - while ( fgets(LineBuffer, MAX_LINE_SIZE, inscenario) != NULL ) { - printf("[CONFIG] : %s\n",LineBuffer); - - if ( sscanf(LineBuffer, "%s %d", ActionName, &cfgNumber) != 2) { - msg("[CONFIG] Parse Error: \"%s\" \n", LineBuffer); - continue; - } - - for (ActionIndex=0; ActionIndex <6; ActionIndex++) { //sizeof(Action)/sizeof(cfg_Action); ActionIndex++) - - if (strcmp(ActionName, Action[ActionIndex].ActionName) == 0) { - Action[ActionIndex].Func(cfgNumber); - break; - } - } - - if (ActionIndex == 6)//(sizeof(Action)/sizeof(cfg_Action) == ActionIndex) - msg("[CONFIG] Unknown <%s> Action! \n", ActionName); - } - - fclose(inscenario); - - return 1; -} - - -int -phyFraming_ProcessInitReq (int cfgNumber) -{ - PHY_FRAMING *phyframing_processinitreq; - phyframing_processinitreq = cfg_getPhyFraming(cfgNumber); - - if(phyframing_processinitreq != NULL) { - memcpy((void *)&PHY_config->PHY_framing,phyframing_processinitreq,sizeof(PHY_FRAMING)); -#ifdef TRACE - msg("[CONFIG] PHY_FRAMING configuration completed!\n"); -#endif - } else - msg("[CONFIG FRAMING] The config number <%d> is not loaded.\n", cfgNumber); - - return cfgNumber; -} - - - - - - -void -loadConfig (void) -{ - int SectionIndex; - int cfgNumber; - char SectionName[MAX_SECTION_NAME_SIZE]; - char LineBuffer[MAX_LINE_SIZE]; - - - while ( (fgets (LineBuffer, MAX_LINE_SIZE, config)) != NULL) { - if (LineBuffer[0] != '[') - continue; - - if (sscanf(LineBuffer, "[%s %d]", SectionName, &cfgNumber) != 2) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - continue; - } - - for (SectionIndex=0; SectionIndex < 5; SectionIndex++) { //sizeof(Section)/sizeof(cfg_Section) ; SectionIndex++) - if ( strcmp(SectionName,Section[SectionIndex].SectionName) == 0) { - Section[SectionIndex].Func(config, cfgNumber); - break; - } - } - - if (SectionIndex == 5)//(sizeof(Section)/sizeof(cfg_Section) == SectionIndex) - msg("[CONFIG] Unknown <%s> section!\n", SectionName); - } - - msg("[CONFIG] loadConfig done.\n"); -} - - -void -cfg_readPhyFraming (FILE* config, int cfgNumber) -{ - char LineBuffer[MAX_LINE_SIZE]; - - if( cfgNumber >= MAX_CFG_SECTIONS ) { - msg("[CONFIG] %d outrang number of sections\n", cfgNumber); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf(LineBuffer, "fc_khz: %lu", &phyFraming[cfgNumber].fc_khz ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].fc_khz); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "fs_khz: %lu", &phyFraming[cfgNumber].fs_khz ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].fs_khz); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nsymb: %hu", &phyFraming[cfgNumber].Nsymb ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].Nsymb); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nd: %hu", &phyFraming[cfgNumber].Nd ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].Nd); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "log2Nd: %hu", &phyFraming[cfgNumber].log2Nd ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].log2Nd); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nc: %hu", &phyFraming[cfgNumber].Nc ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].Nc); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nz: %hu", &phyFraming[cfgNumber].Nz ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].Nz); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nf: %hu", &phyFraming[cfgNumber].Nf ) !=1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - //msg("[CONFIG] %s (%d)\n",LineBuffer,phyFraming[cfgNumber].Nf); - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Extension_type: %hu", &phyFraming[cfgNumber].Extension_type ) !=1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - msg("[CONFIG FRAMING] : Done\n"); -} - - -PHY_FRAMING *cfg_getPhyFraming(int cfgNumber) -{ - if (cfgNumber < MAX_CFG_SECTIONS) - return &phyFraming[cfgNumber]; - else { - msg("[CONFIG] Outrange config number <%d>.\n", cfgNumber); - return NULL; //exit(1)?? - } -} - - -void -cfg_readPhyCHBCH(FILE* config, int cfgNumber) -{ - char LineBuffer[MAX_LINE_SIZE]; - char temp_string[32]; - char i; - - if( cfgNumber >= MAX_CFG_SECTIONS ) { - msg("[CONFIG CHBCH] %d outrang number of sections\n", cfgNumber); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf(LineBuffer, "symbol: %hu", &phyCHBCH[cfgNumber].symbol ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nsymb: %hu", &phyCHBCH[cfgNumber].Nsymb ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets( LineBuffer, MAX_LINE_SIZE, config ); - - if( sscanf( LineBuffer, "IntDepth: %hu", &phyCHBCH[cfgNumber].IntDepth ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "dd_offset: %hu", &phyCHBCH[cfgNumber].dd_offset ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets( LineBuffer, MAX_LINE_SIZE, config ); - - if( sscanf( LineBuffer, "Npilot: %hu", &phyCHBCH[cfgNumber].Npilot ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - for (i=0; i<8; i++) { - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"pilot_re[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phyCHBCH[cfgNumber].pilot_re[i] ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"pilot_im[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phyCHBCH[cfgNumber].pilot_im[i] ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "FreqReuse: %hu", &phyCHBCH[cfgNumber].FreqReuse ) !=1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "FreqReuse_Ind: %hu", &phyCHBCH[cfgNumber].FreqReuse_ind ) !=1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "CHBCH_POWER_dBm: %d", &phyCHBCH[cfgNumber].CHBCH_POWER_dBm ) != 1) { - msg("[CONFIG CHBCH] Parse Error: \"%s\"\n", LineBuffer); - } - - msg("[CONFIG CHBCH]: Done\n"); -} - - -PHY_CHBCH *cfg_getPhyCHBCH(int cfgNumber) -{ - if ( cfgNumber < MAX_CFG_SECTIONS ) - return &phyCHBCH[cfgNumber]; - else { - msg("[CONFIG CHBCH] Outrange config number <%d>.\n", cfgNumber); - return NULL; //exit(1)?? - } -} - -void -cfg_readPhySCH(FILE* config, int cfgNumber) -{ - char LineBuffer[MAX_LINE_SIZE]; - char temp_string[32]; - int i; - - if( cfgNumber >= MAX_CFG_SECTIONS ) { - msg("[SCH CONFIG] %d outrang number of sections\n", cfgNumber); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nsymb: %hu", &phySCH[cfgNumber].Nsymb ) != 1) { - msg("[SCH CONFIG] %d: Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "dd_offset: %lu", &phySCH[cfgNumber].dd_offset ) != 1) { - msg("[SCH CONFIG] %d: Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - for (i=0; i<32; i++) { - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"sch_seq_re[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phySCH[cfgNumber].sch_seq_re[i] ) != 1) { - msg("[SCH CONFIG] %d: Parse Error: \"%s\"\n (%s)", cfgNumber,LineBuffer,temp_string); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"sch_seq_im[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phySCH[cfgNumber].sch_seq_im[i] ) != 1) { - msg("[SCH CONFIG] %d: Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - } - - fgets( LineBuffer, MAX_LINE_SIZE, config ); - - if( sscanf( LineBuffer, "SCH_POWER_dBm: %d", &phySCH[cfgNumber].SCH_POWER_dBm ) != 1) { - msg("[SCH CONFIG] %d:Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - msg("[CONFIG SCH]: Done\n"); -} - -PHY_SCH* cfg_getPhySCH(int cfgNumber) -{ - if ( cfgNumber < MAX_CFG_SECTIONS ) - return &phySCH[cfgNumber]; - else { - msg("[CONFIG] Outrange config number <%d>.\n", cfgNumber); - return NULL; //exit(1)?? - } -} - -void -cfg_readPhyCHSCH(FILE* config, int cfgNumber) -{ - char LineBuffer[MAX_LINE_SIZE]; - char temp_string[32]; - int i; - - if( cfgNumber >= MAX_CFG_SECTIONS ) { - msg("[CHSCH CONFIG] %d outrang number of sections\n", cfgNumber); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf(LineBuffer, "symbol: %hu", &phyCHSCH[cfgNumber].symbol ) != 1) { - msg("[CHSCH CONFIG] %d: Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "Nsymb: %hu", &phyCHSCH[cfgNumber].Nsymb ) != 1) { - msg("[CHSCH CONFIG] %d: Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - if( sscanf( LineBuffer, "dd_offset: %lu", &phyCHSCH[cfgNumber].dd_offset ) != 1) { - msg("[CHSCH CONFIG] %d: Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - for (i=0; i<32; i++) { - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"chsch_seq_re[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phyCHSCH[cfgNumber].chsch_seq_re[i] ) != 1) { - msg("[CHSCH CONFIG] %d: Parse Error: \"%s\"\n (%s)", cfgNumber,LineBuffer,temp_string); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"chsch_seq_im[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phyCHSCH[cfgNumber].chsch_seq_im[i] ) != 1) { - msg("[CHSCH CONFIG] %d: Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - } - - fgets( LineBuffer, MAX_LINE_SIZE, config ); - - if( sscanf( LineBuffer, "CHSCH_POWER_dBm: %d", &phyCHSCH[cfgNumber].CHSCH_POWER_dBm ) != 1) { - msg("[CHSCH CONFIG] %d:Parse Error: \"%s\"\n", cfgNumber,LineBuffer); - } - - msg("[CONFIG CHSCH]: Done\n"); -} - - -PHY_CHSCH* cfg_getPhyCHSCH(int cfgNumber) -{ - if ( cfgNumber < MAX_CFG_SECTIONS ) - return &phyCHSCH[cfgNumber]; - else { - msg("[CONFIG] Outrange config number <%d>.\n", cfgNumber); - return NULL; //exit(1)?? - } -} - - -void -cfg_readPhySACH(FILE* config, int cfgNumber) -{ - char LineBuffer[MAX_LINE_SIZE]; - char temp_string[32]; - int i; - - if( cfgNumber >= MAX_CFG_SECTIONS ) { - msg("[CONFIG] %d outrang number of sections\n", cfgNumber); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - //msg("[CONFIG SACH] : %s\n",LineBuffer); - if( sscanf(LineBuffer, "Signal_format: %hu", &phySACH[cfgNumber].Signal_format ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - - fgets( LineBuffer, MAX_LINE_SIZE, config ); - - //msg("[CONFIG SACH] : %s\n",LineBuffer); - if( sscanf( LineBuffer, "Npilot: %hu", &phySACH[cfgNumber].Npilot ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - for (i=0; i<8; i++) { - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"pilot_re[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phySACH[cfgNumber].pilot_re[i] ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - sprintf(temp_string,"pilot_im[%d]: %%x",i); - - if( sscanf( LineBuffer,temp_string, &phySACH[cfgNumber].pilot_im[i] ) != 1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - - } - - fgets(LineBuffer, MAX_LINE_SIZE, config); - - //msg("[CONFIG SACH] : %s\n",LineBuffer); - if( sscanf( LineBuffer, "SACH_POWER_dBm: %d", &phySACH[cfgNumber].SACH_POWER_dBm ) !=1) { - msg("[CONFIG] Parse Error: \"%s\"\n", LineBuffer); - } - -} - - -PHY_SACH *cfg_getPhySACH(int cfgNumber) -{ - if ( cfgNumber < MAX_CFG_SECTIONS ) - return &phySACH[cfgNumber]; - else { - msg("[CONFIG ] Outrange config number <%d>.\n", cfgNumber); - return NULL; //exit(1)?? - } -} - - -int -phyCHBCH_ProcessInitReq (int cfgNumber) -{ - - PHY_CHBCH *phychbch_processinitreq; - - phychbch_processinitreq = cfg_getPhyCHBCH(cfgNumber); - - if (phychbch_processinitreq != NULL) { - memcpy((void *)&PHY_config->PHY_chbch,phychbch_processinitreq,sizeof(PHY_CHBCH)); -#ifdef TRACE - msg("[CONFIG] PHY_CHBCH configuration completed!\n"); -#endif - } else - msg("[CONFIG CHBCH ] The config number <%d> is not loaded.\n", cfgNumber); - - return cfgNumber; -} - -int -phySCH_ProcessInitReq (int cfgNumber) -{ - PHY_SCH *physch_processinitreq; - physch_processinitreq = cfg_getPhySCH(cfgNumber); - - if (physch_processinitreq != NULL) { - memcpy(&PHY_config->PHY_sch[0],physch_processinitreq,sizeof(PHY_SCH)); - -#ifdef TRACE - printf("[CONFIG] PHY_SCH configuration completed!\n"); -#endif TRACE - } else - msg("[CONFIG SCH] The config number <%d> is not loaded.\n", cfgNumber); - - return cfgNumber; -} - -int -phySACH_ProcessInitReq (int cfgNumber) -{ - PHY_SACH *physach_processinitreq; - physach_processinitreq = cfg_getPhySACH(cfgNumber); - - if (physach_processinitreq != NULL) { - memcpy((void *)&PHY_config->PHY_sach,physach_processinitreq,sizeof(PHY_SACH)); - -#ifdef TRACE - msg("[CONFIG] PHY_SACH configuration completed!\n"); -#endif TRACE - } else - msg("[CONFIG SACH] The config number <%d> is not loaded.\n", cfgNumber); - - return cfgNumber; -} - -int -phyCHSCH_ProcessInitReq (int cfgNumber) -{ - PHY_CHSCH *phychsch_processinitreq; - phychsch_processinitreq = cfg_getPhyCHSCH(cfgNumber); - - if (phychsch_processinitreq != NULL) { - memcpy(&PHY_config->PHY_chsch[0],phychsch_processinitreq,sizeof(PHY_CHSCH)); - -#ifdef TRACE - printf("[CONFIG] PHY_CHSCH configuration completed!\n"); -#endif - } else - msg("[CONFIG CHSCH] The config number <%d> is not loaded.\n", cfgNumber); - - return cfgNumber; -} - - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_config.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_config.cc deleted file mode 100644 index fb12144242a307ece69058b137b2f4520605e0a3..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_config.cc +++ /dev/null @@ -1,154 +0,0 @@ - -// Maxime Guillaud - created Thu May 11 17:19:25 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -extern "C" { -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/impl_defs_lte.h" - //#include "PHY/extern.h" - //#include "PHY/CONFIG/defs.h" - //#include "PHY/CONFIG/extern.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -//#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -} -//#include "PHY/vars.h" -//#include "PHY/CONFIG/vars.h" - -//#include "oarf_common.c" - -#define FCNNAME "oarf_config" - -#define TRACE 1 - -//PHY_CONFIG PHY_config_mem; - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v,w; - - if (args.length()!=4) - { - error(FCNNAME); - error("syntax: oarf_config(freqband,tdd,dual_tx,tdd_config)"); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 6.0)) - { - error(FCNNAME); - error("freqband must be 0-5"); - return true; - } - - if ((!args(1).is_real_scalar()))// || (args(1).scalar_value()!=0.0) || (args(1).scalar_value()!=1.0)) - { - error(FCNNAME); - error("tdd must be 0 or 1."); - return true; - } - - if ((!args(2).is_real_scalar()))// || (args(2).scalar_value()!=0.0) || (args(2).scalar_value()!=1.0)) - { - error(FCNNAME); - error("dual_tx must be 0 or 1."); - return true; - } - - if ((!args(3).is_real_scalar()) || (args(3).scalar_value()<0.0) || (args(3).scalar_value()>255.0)) - { - error(FCNNAME); - error("dual_tx must be 0-9, 254=RX only or 255=TX only."); - return true; - } - return false; -} - - - - - - - - -DEFUN_DLD (oarf_config, args, nargout,"configure the openair interface - returns 0 if successful") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - const uint freq = args(0).int_value(); - //const std::string configfile = args(1).string_value(); - //const std::string scenariofile = args(2).string_value(); - const int tdd = args(1).int_value(); - const int dual_tx = args(2).int_value(); - const int tdd_config = args(3).int_value(); - - octave_value returnvalue; - int openair_fd; - - LTE_DL_FRAME_PARMS *frame_parms; - - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - /* - if((config = fopen(configfile.c_str(),"r")) == NULL) - { - error(FCNNAME); - error("configuration file could not be opened!"); - return octave_value_list(); - } - - if((scenario = fopen(scenariofile.c_str(),"r")) == NULL) // this file is closed by function reconfigure_MACPHY of oarf_common.c - { - error(FCNNAME); - error("scenario file could not be opened!"); - return octave_value_list(); - } - - PHY_config = (PHY_CONFIG *)&PHY_config_mem; - reconfigure_MACPHY(scenario); - fclose(config); - */ - - frame_parms = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS)); - frame_parms->N_RB_DL = 25; - frame_parms->N_RB_UL = 25; - frame_parms->Ncp = 1; - frame_parms->Nid_cell = 0; - frame_parms->nushift = 0; - frame_parms->nb_antennas_tx = NB_ANTENNAS_TX; - frame_parms->nb_antennas_rx = NB_ANTENNAS_RX; - frame_parms->mode1_flag = 1; //default == SISO - frame_parms->tdd_config = tdd_config; - frame_parms->dual_tx = dual_tx; - frame_parms->frame_type = TDD; - frame_parms->freq_idx = freq; - - init_frame_parms(frame_parms,1); - dump_frame_parms(frame_parms); - - returnvalue=ioctl(openair_fd, openair_DUMP_CONFIG,(char *)frame_parms); - - close(openair_fd); - - return octave_value(returnvalue); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_get_frame.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_get_frame.cc deleted file mode 100644 index 5aaeec32798df7bf6cf102db0b3188364f8b7f47..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_get_frame.cc +++ /dev/null @@ -1,206 +0,0 @@ - -// Maxime Guillaud - created Fri May 12 16:20:04 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile -// Update: Wed May 23 17:25:39 CEST 2007, fifo acquisition of signal buffer (RK) - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> -#include <sys/mman.h> - -extern "C" { -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/impl_defs_lte.h" -#include "ARCH/COMMON/defs.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -} -#include "PHY/vars.h" - -#define FCNNAME "oarf_get_frame" - -#define TRACE 1 - -//extern PHY_CONFIG *PHY_config; - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=1) - { - error(FCNNAME); - error("syntax: oarf_get_frame(freqband)\n freqband in 0-5."); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 6.0)) - { - error(FCNNAME); - error("freqband must be 0-5."); - return true; - } - - return false; -} - - - - - - - - -DEFUN_DLD (oarf_get_frame, args, nargout,"Get frame (Action 5)") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - const int freq = args(0).int_value(); - - octave_value returnvalue; - int openair_fd,i,aa,rx_sig_fifo_fd,rf_cntl_fifo_fd; - unsigned int length;//mem_base; - short *rx_sig[4]; - int fc; - - //PHY_VARS *PHY_vars; - //PHY_CONFIG *PHY_config; - - //PHY_vars = (PHY_VARS *)malloc(sizeof(PHY_VARS)); - //PHY_config = (PHY_CONFIG *)malloc(sizeof(PHY_CONFIG)); - - TX_RX_VARS dummy_tx_rx_vars; - LTE_DL_FRAME_PARMS *frame_parms = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS)); - - unsigned int bigphys_top; - unsigned int mem_base; - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } -#ifdef CBMIMO1 - if ((rx_sig_fifo_fd = open("/dev/rtf59", O_RDONLY,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/rtf59"); - return octave_value_list(); - } - - if ((rf_cntl_fifo_fd = open("/dev/rtf60", O_RDONLY,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/rtf60"); - return octave_value_list(); - } -#endif - /* - printf("Getting PHY_vars ...\n"); - - ioctl(openair_fd,openair_GET_VARS,PHY_vars); - - //printf("Getting PHY_vars->tx_vars[0].TX_DMA_BUFFER=%p\n",PHY_vars->tx_vars[0].TX_DMA_BUFFER); - //printf("Getting PHY_vars->rx_vars[0].RX_DMA_BUFFER = %p\n",PHY_vars->rx_vars[0].RX_DMA_BUFFER); - */ - - // printf("Getting PHY_config ...\n"); - - ioctl(openair_fd,openair_GET_CONFIG,frame_parms); - - // dump_frame_parms(frame_parms); - - ComplexMatrix dx (FRAME_LENGTH_COMPLEX_SAMPLES,frame_parms->nb_antennas_rx); - - /* - // version using FIFO - short dma_buffer_local[2*NB_ANTENNAS_RX*FRAME_LENGTH_COMPLEX_SAMPLES]; - - // Flush RX sig fifo - ((unsigned int *)&dma_buffer_local[0])[0] = 1 | ((freq&7)<<1) | ((freq&7)<<4); - ioctl(openair_fd,openair_GET_BUFFER,(void *)dma_buffer_local); - - // wait for indication from RT process that a new frame is ready - read(rf_cntl_fifo_fd,(void *)dma_buffer_local,4); - printf("Sched count %d\n",((int *)dma_buffer_local)[0]); - - length = read(rx_sig_fifo_fd,(void *)dma_buffer_local,NB_ANTENNAS_RX*FRAME_LENGTH_BYTES); - printf("Got %d bytes from sig fifo\n",length); - - for (i=0;i<NB_ANTENNAS_RX;i++) - rx_sig[i] = (short *)(&dma_buffer_local[2*i*FRAME_LENGTH_COMPLEX_SAMPLES]); - */ - - // version using mmap - ioctl(openair_fd,openair_GET_VARS,(void* )&dummy_tx_rx_vars); - ioctl(openair_fd,openair_GET_BIGPHYSTOP,(void *)&bigphys_top); - - if (dummy_tx_rx_vars.TX_DMA_BUFFER[0]==NULL) { - error(FCNNAME); - error("pci_buffers not allocated\n"); - close(openair_fd); - return octave_value_list(); - //exit(-1); - } - /* - printf("BIGPHYS top 0x%x\n",bigphys_top); - printf("RX_DMA_BUFFER[0] %p\n",dummy_tx_rx_vars.RX_DMA_BUFFER[0]); - printf("TX_DMA_BUFFER[0] %p\n",dummy_tx_rx_vars.TX_DMA_BUFFER[0]); - printf("RX_DMA_BUFFER[1] %p\n",dummy_tx_rx_vars.RX_DMA_BUFFER[1]); - printf("TX_DMA_BUFFER[1] %p\n",dummy_tx_rx_vars.TX_DMA_BUFFER[1]); - */ - - mem_base = (unsigned int)mmap(0, - BIGPHYS_NUMPAGES*4096, - PROT_READ, - MAP_PRIVATE, - openair_fd, - 0); - - if (mem_base != -1) {} - //msg("MEM base= %p\n",(void*) mem_base); - else { - error(FCNNAME); - error("Could not map physical memory\n"); - return octave_value_list(); - //exit(-1); - } - - for (i=0;i<frame_parms->nb_antennas_rx;i++) - rx_sig[i] = (short *)(mem_base + (unsigned int)dummy_tx_rx_vars.RX_DMA_BUFFER[i]-bigphys_top); - - - fc=0; - // msg("Getting buffer...\n"); - ioctl(openair_fd,openair_GET_BUFFER,(void *)&fc); - -#ifdef CBMIMO1 - sleep(1); -#endif - - for (i=0;i<FRAME_LENGTH_COMPLEX_SAMPLES;i++) - for (aa=0;aa<frame_parms->nb_antennas_rx;aa++) - dx(i,aa)=Complex( rx_sig[aa][i*2], rx_sig[aa][i*2+1] ); - - close(openair_fd); - - munmap((void*)mem_base, BIGPHYS_NUMPAGES*4096); - - //close(rx_sig_fifo_fd); - //close(rf_cntl_fifo_fd); - - //free(PHY_vars); - //free(PHY_config); - free(frame_parms); - - return octave_value (dx); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_get_rtframe.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_get_rtframe.cc deleted file mode 100644 index 1deb35a4fa365f2b6455cc241b2c3a0e9be310c4..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_get_rtframe.cc +++ /dev/null @@ -1,157 +0,0 @@ - -// Maxime Guillaud - created Fri May 12 16:20:04 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -extern "C" { -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/extern.h" -#include "PHY/CONFIG/defs.h" -#include "PHY/CONFIG/extern.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -} - -#include <time.h> - -//#include <rtai.h> - - -//#include "config_vars.h" -#include "chansounder_defs.h" - - -//#include "oarf_common.c" - -#define FCNNAME "oarf_get_rtframe" - - -#define SLOTS_PER_FRAME 4 -#define FRAME_LENGTH_COMPLEX_SAMPLES (OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*SLOTS_PER_FRAME) - -extern PHY_CONFIG *PHY_config; - - -typedef struct /* this shouldn't be here, but including mac_defs.h screws up the macros defining the symbol/slot/frame length :-( */ -{ - int registers; - void *params_ptr; - int params_size; -} MACPHY_PARAMS; - - - - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=1) - { - error(FCNNAME); - error("syntax: oarf_get_rtframe(freqband)\n freqband in 0-3."); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 3.0)) - { - error(FCNNAME); - error("freqband must be 0, 1, 2, or 3."); - return true; - } - - return false; -} - - - - - - - - -DEFUN_DLD (oarf_get_rtframe, args, nargout,"Get frame through RT mode (Action 20)") -{ - MACPHY_PARAMS MACPHY_params; - CHANSOUNDER_PARAMS CHANSOUNDER_params; - int result, slot, openair_fifo_fd; - char *signalbuffer; - - if (any_bad_argument(args)) - return octave_value_list(); - - const int freq = args(0).int_value(); - - octave_value returnvalue; - int openair_fd,i; - - ComplexMatrix dx (FRAME_LENGTH_COMPLEX_SAMPLES,nb_rx); - char buffer_local[4*FRAME_LENGTH_COMPLEX_SAMPLES+sizeof(long long)]; - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - - - CHANSOUNDER_params.slot_cyclelength=10000; - CHANSOUNDER_params.slot_save=SLOTS_PER_FRAME; - - MACPHY_params.registers=((freq&3)<<1) | ((freq&3)<<3); - MACPHY_params.params_ptr=&CHANSOUNDER_params; - MACPHY_params.params_size=sizeof(CHANSOUNDER_params); - - result=ioctl(openair_fd,openair_START_CHANSOUNDER,&MACPHY_params); -// printf("start sounder ioctl result=%d, sleeping\n",result); - - usleep(20000); // sleep for 20 ms - - CHANSOUNDER_params.slot_save=0; - result=ioctl(openair_fd,openair_START_CHANSOUNDER,&MACPHY_params); -// printf("start sounder with slot_save=0, ioctl result=%d, reading fifo\n",result); - -// result=ioctl(openair_fd,openair_STOP,NULL); // do not stop sounder since doing it too many times crashes RTAI. - - close(openair_fd); - - - openair_fifo_fd=open("/dev/rtf3",O_RDONLY); - if (openair_fifo_fd==-1) - { - printf("Can not open openair FIFO (/dev/rtf3), load kernel modules first !\n"); - return octave_value_list(); - } - - for (slot=0;slot<SLOTS_PER_FRAME;slot++) - { - read(openair_fifo_fd,buffer_local,CHANSOUNDER_BYTESPERSLOT+sizeof(long long)); -// printf("slot=%d, slot_time=%llu\n",slot,*(long long *)buffer_local); - signalbuffer=buffer_local+sizeof(long long); - - for (i=0;i<NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES;i++) - { - dx(i+slot*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES,0)=Complex( signalbuffer[i*4], signalbuffer[i*4+1] ); - dx(i+slot*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES,1)=Complex( signalbuffer[i*4+2], signalbuffer[i*4+3] ); - } - - } - - close(openair_fifo_fd); - - - return octave_value (dx); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_send_frame.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_send_frame.cc deleted file mode 100644 index 95c504f6592d7aa12202095685e27ca1f11996b4..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_send_frame.cc +++ /dev/null @@ -1,184 +0,0 @@ - -// Maxime Guillaud - created Fri May 12 16:20:04 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile -// Update: Wed May 23 17:25:39 CEST 2007, fifo acquisition of signal buffer (RK) - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> -#include <sys/mman.h> - -extern "C" { -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/impl_defs_lte.h" -#include "ARCH/COMMON/defs.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -} -#include "PHY/vars.h" - -#define FCNNAME "oarf_send_frame" - -#define TRACE 1 - -//extern PHY_CONFIG *PHY_config; - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=3) - { - error(FCNNAME); - error("syntax: oarf_send_frame(freqband,sig,nbits)\n freqband in 0-3, sig is a 2D vector, nbits is number of bits to quantize the signal to."); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 3.0)) - { - error(FCNNAME); - error("freqband must be 0, 1, 2, or 3."); - return true; - } - - v=args(1); - printf("signal: R %d, C %d\n",v.rows(),v.columns()); - return false; - - v=args(2); - if ((!v.is_real_scalar()) || (v.scalar_value()!=8) || (v.scalar_value()!=16)) { - error(FCNNAME); - error("nbits must be either 8 (CBMIMO) or 16 (ExpressMIMO)bits."); - return true; - } -} - - -DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - //const int freq = args(0).int_value(); - ComplexMatrix dx = args(1).complex_matrix_value(); - - octave_value returnvalue; - int openair_fd,i; - unsigned int length,aa,nbits; - int dummy=0; - - LTE_DL_FRAME_PARMS *frame_parms = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS)); - - TX_VARS *TX_vars = (TX_VARS*) malloc(sizeof(TX_VARS)); - TX_RX_VARS dummy_tx_rx_vars; - - unsigned int bigphys_top; - unsigned int mem_base; - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - printf("Getting PHY_config 1 ...\n"); - - ioctl(openair_fd,openair_GET_CONFIG,frame_parms); - - dump_frame_parms(frame_parms); - - printf("colums = %d, rows = %d\n\n\n", args(1).columns(), args(1).rows()); - - if ((args(1).columns()!=NB_ANTENNAS_TX) || (args(1).rows()!=76800)) - { - error(FCNNAME); - error("input array must be of size (%d,%d)",76800,NB_ANTENNAS_TX); - return octave_value_list(); - } - - nbits = args(2).scalar_value(); - - // ioctl(openair_fd,openair_STOP,(void*)&dummy); - - // version using mmap - ioctl(openair_fd,openair_GET_VARS,(void* )&dummy_tx_rx_vars); - ioctl(openair_fd,openair_GET_BIGPHYSTOP,(void *)&bigphys_top); - - if (dummy_tx_rx_vars.TX_DMA_BUFFER[0]==NULL) { - close(openair_fd); - error(FCNNAME); - error("pci_buffers not allocated"); - return octave_value_list(); - } - /* - printf("BIGPHYS top 0x%x\n",bigphys_top); - printf("RX_DMA_BUFFER[0] %p\n",dummy_tx_rx_vars.RX_DMA_BUFFER[0]); - printf("TX_DMA_BUFFER[0] %p\n",dummy_tx_rx_vars.TX_DMA_BUFFER[0]); - */ - mem_base = (unsigned int)mmap(0, - BIGPHYS_NUMPAGES*4096, - PROT_WRITE, - MAP_SHARED, - openair_fd, - 0); - - if (mem_base != -1) - msg("MEM base= %p\n",(void*) mem_base); - else { - error(FCNNAME); - error("Could not map physical memory"); - return octave_value_list(); - } - - - - for (aa=0;aa<NB_ANTENNAS_TX;aa++) { - //TX_vars->TX_DMA_BUFFER[aa] = (char*) malloc(2*76800); - TX_vars->TX_DMA_BUFFER[aa] = (char *)(mem_base + (unsigned int)dummy_tx_rx_vars.TX_DMA_BUFFER[aa]-bigphys_top); - - if (nbits==16) { - for (i=0;i<76800;i++) { - if (i<64) - printf("%d: %d,%d\n",i,(short)real(dx(i,aa)),(short)imag(dx(i,aa))); - ((short*) TX_vars->TX_DMA_BUFFER[aa])[2*i] = (short)(real(dx(i,aa))); - ((short*) TX_vars->TX_DMA_BUFFER[aa])[1+(2*i)] = (short)(imag(dx(i,aa))); - } - } - else if (nbits==8) { - for (i=0;i<76800;i++) { - if (i<64) - printf("%d: %d,%d\n",i,char(real(dx(i,aa))),char(imag(dx(i,aa)))); - ((char*) TX_vars->TX_DMA_BUFFER[aa])[2*i] = char(real(dx(i,aa))); - ((char*) TX_vars->TX_DMA_BUFFER[aa])[1+(2*i)] = char(imag(dx(i,aa))); - } - } - else { - error(FCNNAME); - error("nbits has to be 8 or 16!"); - } - } - - ioctl(openair_fd,openair_START_TX_SIG,(void *)TX_vars); - - close(openair_fd); - - munmap((void*)mem_base, BIGPHYS_NUMPAGES*4096); - - /* - for (aa=0;aa<NB_ANTENNAS_TX;aa++) - free(TX_vars->TX_DMA_BUFFER[aa]); - */ - - free(TX_vars); - free(frame_parms); - - return octave_value (dx); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_calibrated_rx_gain.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_calibrated_rx_gain.cc deleted file mode 100644 index 96bdb893daacf439f71972d6454134a683f09667..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_calibrated_rx_gain.cc +++ /dev/null @@ -1,74 +0,0 @@ - -// Maxime Guillaud - created Fri May 12 14:55:02 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "PHY/vars.h" - -#define FCNNAME "oarf_set_calibrated_rx_gain" - -#define TRACE 1 - - - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=1) - { - error(FCNNAME); - error("syntax: oarf_set_calibrated_rx_gain(gain)"); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255.0)) - { - error(FCNNAME); - error("gain must be >=0 and <=255."); - return true; - } - - return false; -} - - - - - - - -DEFUN_DLD (oarf_set_calibrated_rx_gain, args, nargout,"Set RX gains (Action 16) - params bool") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - unsigned int temp = args(0).int_value(); - - octave_value returnvalue; - int openair_fd; - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - returnvalue=ioctl(openair_fd,openair_SET_CALIBRATED_RX_GAIN,&temp); - close(openair_fd); - - return octave_value(returnvalue); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_rx_gain.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_rx_gain.cc deleted file mode 100644 index 579185028756c4990c3721173a339e5b783d2c01..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_rx_gain.cc +++ /dev/null @@ -1,100 +0,0 @@ - -// Maxime Guillaud - created Fri May 12 14:55:02 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" - -#define FCNNAME "oarf_set_rx_gain" - -#define TRACE 1 - - - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=4) - { - error(FCNNAME); - error("syntax: oarf_set_rx_gain(2391_G0, 2391_G1, 9862_RX_G0,,9862_RX_G1)"); - error("Valid ranges: 2391_G0, 2391_G1: 0-255, 9862_RX_G0, 9862_RX_G1: 0-19 dB"); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255)) - { - error(FCNNAME); - error("2391_G0 must be an integer in 0..255."); - return true; - } - - v=args(2); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 19)) - { - error(FCNNAME); - error("9862_RX_G0 must be an integer in 0..19."); - return true; - } - - v=args(1); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255)) - { - error(FCNNAME); - error("2391_G1 must be an integer in 0..255."); - return true; - } - - v=args(3); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 19)) - { - error(FCNNAME); - error("9862_RX_G1 must be an integer in 0..19."); - return true; - } - - - return false; -} - - - - - - - - -DEFUN_DLD (oarf_set_rx_gain, args, nargout,"Set RX gains (Action 7) - params 2391_G0, 2391_G1 in 0-255, 9862_RX_G0 and 9862_RX_G1 in 0-19 dB.") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - unsigned char temp[4] = {args(0).int_value(),args(1).int_value(),args(2).int_value(),args(3).int_value()}; - - octave_value returnvalue; - int openair_fd; - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - returnvalue=ioctl(openair_fd,openair_SET_RX_GAIN,&temp[0]); - close(openair_fd); - - return octave_value(returnvalue); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_rx_rfmode.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_rx_rfmode.cc deleted file mode 100644 index 8eb0c9bbb84933611876475eb28400a2c1b0d21f..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_rx_rfmode.cc +++ /dev/null @@ -1,75 +0,0 @@ - -// Maxime Guillaud - created Mon May 22 15:54:44 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" - -#define FCNNAME "oarf_set_rx_rfmode" - -#define TRACE 1 - - - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=1) - { - error(FCNNAME); - error("syntax: oarf_set_rx_rfmode(mode)"); - error("mode: (see MAXIM 2391 data sheet p. 17)"); - error(" 0: Low gain (LNA low gain, Mixer low gain) "); - error(" 1: Med gain (LNA high gain, Mixer low gain)"); - error(" 2: High gain (LNA high gain, Mixer high gain)"); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 2.0)) - { - error(FCNNAME); - error("mode must be 0, 1 or 2."); - return true; - } - - return false; -} - - - - -DEFUN_DLD (oarf_set_rx_rfmode, args, nargout,"Set RX RF Mode (MAX2391 CONFIG and OPCNTRL registers - p. 17 of the data sheet) (Action 14) - mode is 0, 1 or 2.") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - unsigned int modenumber = args(0).int_value(); - - octave_value returnvalue; - int openair_fd; - - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - returnvalue=ioctl(openair_fd,openair_RX_RF_MODE,&modenumber); - close(openair_fd); - - return octave_value(returnvalue); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_tcxo_dac.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_tcxo_dac.cc deleted file mode 100644 index fe3d835ac17f8f83078c11891b048d5b85b0d91a..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_tcxo_dac.cc +++ /dev/null @@ -1,73 +0,0 @@ - -// Maxime Guillaud - created Tue Jun 27 19:31:06 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" - -#define FCNNAME "oarf_set_tcxo_dac" - - - - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=1) - { - error(FCNNAME); - error("syntax: oarf_set_tcxo_dac(value)"); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255)) - { - error(FCNNAME); - error("value must be an integer in 0..255."); - return true; - } - - return false; -} - - - - - - - - -DEFUN_DLD (oarf_set_tcxo_dac, args, nargout,"Set TCXO DAC - value in 0-255.") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - unsigned int value = args(0).int_value(); - - octave_value returnvalue; - int openair_fd; - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - returnvalue=ioctl(openair_fd,openair_SET_TCXO_DAC,&value); - close(openair_fd); - - return octave_value(returnvalue); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_tx_gain.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_tx_gain.cc deleted file mode 100644 index 039647bebe519e847e49e26d3fc552a7234257a7..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_set_tx_gain.cc +++ /dev/null @@ -1,103 +0,0 @@ - -// Maxime Guillaud - created Mon May 15 14:54:55 CEST 2006 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "PHY/vars.h" - -#define FCNNAME "oarf_set_tx_gain" - -#define TRACE 1 - - - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=4) - { - error(FCNNAME); - error("syntax: oarf_set_tx_gain(2394_G0,2394_G1,9862_TX_G0,9862_TX_G1)"); - error("Valid ranges: 2394_G0, 2394_G1, 9862_TX_G0, 9862_TX_G1: 0-255"); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255)) - { - error(FCNNAME); - error("2394_G0 must be an integer in 0..255."); - return true; - } - - v=args(1); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255)) - { - error(FCNNAME); - error("2394_G1 must be an integer in 0..255."); - return true; - } - - v=args(2); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255)) - { - error(FCNNAME); - error("9862_TX_G0 must be an integer in 0..255."); - return true; - } - - v=args(3); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 255)) - { - error(FCNNAME); - error("9862_TX_G1 must be an integer in 0..255."); - return true; - } - - - return false; -} - - - - - - - - -DEFUN_DLD (oarf_set_tx_gain, args, nargout,"Set TX gains (Action 6) - params 2394_G0, 2394_G1, 9862_TX_G0 and 9862_TX_G1 in 0-255 ") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - unsigned char temp[4] = {args(0).int_value(),args(1).int_value(),args(2).int_value(),args(3).int_value()}; - - octave_value returnvalue; - int openair_fd; - - //error("fixme: oarf_set_tx_gain: check the order of the parameters as received by the kernel"); - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - returnvalue=ioctl(openair_fd,openair_SET_TX_GAIN,&temp[0]); - close(openair_fd); - - return octave_value(returnvalue); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_stop.cc b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_stop.cc deleted file mode 100644 index e585d29fca8565defb75332a647ecfae1e740249..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/oarf_stop.cc +++ /dev/null @@ -1,78 +0,0 @@ - -// Florian Kaltenberger - created 2010-01-22 -// see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions -// and http://wiki.octave.org/wiki.pl?CodaTutorial -// and http://octave.sourceforge.net/coda/c58.html -// compilation: see Makefile - - - -#include <octave/oct.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -extern "C" { -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/impl_defs_lte.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -} -#include "PHY/vars.h" - -#define FCNNAME "oarf_stop" - -#define TRACE 1 - - - -static bool any_bad_argument(const octave_value_list &args) -{ - octave_value v; - if (args.length()!=1) - { - error(FCNNAME); - error("syntax: oarf_stop(freqband)"); - return true; - } - - v=args(0); - if ((!v.is_real_scalar()) || (v.scalar_value() < 0.0) || (floor(v.scalar_value()) != v.scalar_value()) || (v.scalar_value() > 6.0)) - { - error(FCNNAME); - error("freqband must be 0-5"); - return true; - } - - return false; -} - - - - -DEFUN_DLD (oarf_stop, args, nargout,"Stop RT acquisition and write registers.") -{ - - if (any_bad_argument(args)) - return octave_value_list(); - - unsigned int fd, frequency = args(0).int_value(); - - octave_value returnvalue; - int openair_fd; - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) - { - error(FCNNAME); - error("Error opening /dev/openair0"); - return octave_value_list(); - } - - fd = (1 | ((frequency&7)<<1) | ((frequency&7)<<4)); - returnvalue=ioctl(openair_fd,openair_STOP,(void*)&fd); - - close(openair_fd); - - return octave_value(returnvalue); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/openair_init.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/openair_init.m deleted file mode 100755 index 52c0a898c10e0bbb99eb8729b6d4717f136f3650..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/openair_init.m +++ /dev/null @@ -1,2 +0,0 @@ -oarf_config(0,"config.cfg","scenario.scn") - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/phasenoise.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/phasenoise.m deleted file mode 100644 index 72c99748533b531f896482d318fae244e6681083..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/phasenoise.m +++ /dev/null @@ -1,42 +0,0 @@ -s = oarf_get_frame(2); -sig0 = s(:,1); -sig1 = s(:,2); - -#sig0 = s(5000:end,1); % first channel -#sig1 = s(5000:end,2); % 2nd channel - - -bw=7.68e6; - -spec = abs(fft(sig1)).^2; -[a,b] = max(spec); -freq = (b-1)*bw/length(sig0); - -L= 1000; -W = 1; - -offset_vec = (0:L-1)*((2*W)+1); -W2 = 1+(2*W); - -window_vec = (-W : W); -pn = zeros(1,(2*L) - 1); -for i = 1:L, - pn(i+L-1) = sum(spec(offset_vec(i) + b + window_vec)); -end - -for i = 2:L, - pn(L-i+1) = sum(spec(-offset_vec(i) + b + window_vec)); -end - -pn_2 = 10*log10(pn / pn(L)) - 10*log10(W2*bw/length(sig0)); - -f = ((-L+1):(L-1))*W2*bw/length(sig0); - - -ylabel('dBc/Hz') -xlabel("f_offset (Hz)") -title("Phase Noise @ IQ output for Fc = 1912.6 + Fs/4 MHz CW input at antenna") -semilogx(f(L:(2*L - 1)),pn_2(L:(2*L -1))) - - -sum(pn*(f(2)-f(1))) diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plot_png.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plot_png.m deleted file mode 100644 index 6713e826d3b8ab747058b55147efe1334197cd79..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plot_png.m +++ /dev/null @@ -1,69 +0,0 @@ -close all - -load gain_table_v2_7_800_s1 - -figure(1) -plot(ALL_gain2391,real(NF0),'r;RX0;',ALL_gain2391,real(NF1),'g;RX1;') -title('Noise Figure vs. Digital Gain (Sector 0, CBMIMO1 v2.7)') -xlabel('Digital Gain') -ylabel('Noise Figure (dB)') -print -FTimes-Roman -dpdf s0_v27_nf.pdf - -figure(2) -plot(ALL_gain2391,real(G0),'r;RX0;',ALL_gain2391,real(G1),'g;RX1;') -title('RF Gain vs. Digital Gain (Sector 0, CBMIMO1 v2.7)') -xlabel('Digital Gain') -ylabel('RF Gain (dB)') -print -dpdf s0_v27_gain.pdf - -load gain_table_v2_8_800_s2 - -figure(3) -plot(ALL_gain2391,real(NF0),'r;RX0;',ALL_gain2391,real(NF1),'g;RX1;') -title('Noise Figure vs. Digital Gain (Sector 1, CBMIMO v2.8)') -xlabel('Digital Gain') -ylabel('Noise Figure (dB)') -print -dpdf s1_v28_nf.pdf - -figure(4) -plot(ALL_gain2391,real(G0),'r;RX0;',ALL_gain2391,real(G1),'g;RX1;') -title('RF Gain vs. Digital Gain (Sector 1, CBMIMO1 v2.8)') -xlabel('Digital Gain') -ylabel('RF Gain (dB)') -print -dpdf s1_v28_gain.pdf - -load gain_table_v2_13_800_s3 - - -figure(5) -plot(ALL_gain2391,real(NF0),'r;RX0;',ALL_gain2391,real(NF1),'g;RX1;') -title('Noise Figure vs. Digital Gain (Sector 2, CBMIMO v2.13)') -xlabel('Digital Gain') -ylabel('Noise Figure (dB)') -print -dpdf s2_v213_nf.pdf - -figure(6) -plot(ALL_gain2391,real(G0),'r;RX0;',ALL_gain2391,real(G1),'g;RX1;') -title('RF Gain vs. Digital Gain (Sector 2, CBMIMO1 v2.13)') -xlabel('Digital Gain') -ylabel('RF Gain (dB)') -print -dpdf s2_v213_gain.pdf - -load gain_table_v2_3_800_ue - - -figure(7) -plot(ALL_gain2391,real(NF0),'r;RX0;',ALL_gain2391,real(NF1),'g;RX1;') -title('Noise Figure vs. Digital Gain (UE, CBMIMO v2.3)') -xlabel('Digital Gain') -ylabel('Noise Figure (dB)') -print -dpdf s2_v23_nf.pdf - -figure(8) -plot(ALL_gain2391,real(G0),'r;RX0;',ALL_gain2391,real(G1),'g;RX1;') -title('RF Gain vs. Digital Gain (UE, CBMIMO1 v2.3)') -xlabel('Digital Gain') -ylabel('RF Gain (dB)') -print -dpdf s2_v23_gain.pdf - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plots.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plots.m deleted file mode 100644 index 757ae4ce3b2032dc22765a6dda04d2b8d6a439f2..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plots.m +++ /dev/null @@ -1,48 +0,0 @@ - -closeplot -figure(1) - - -gain2391=70; gain9862=0; -for rxrfmode=0:2 - i=find( (m(:,2)==gain2391) & (m(:,3)==gain9862) & (m(:,4)==rxrfmode)); - plot(m(i,1),m(i,5:8)) - pause -end - - -gain2391=70; rxrfmode=1; -for gain9862=0:5:15 - i=find((m(:,2)==gain2391) & (m(:,3)==gain9862) & (m(:,4)==rxrfmode)); - plot(m(i,1),m(i,5:8)) - pause -end - - - - -rxrfmode=1; power_dBm=-70; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - plot(m(i,1),m(i,5:8)) - pause -end - - - -power_dBm=-90; - -subplot(1,3,1) -rxrfmode=0; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); -mesh(0:10:150,[0 5 10 15],reshape(m(i,5)-m(i,6),4,16)) - -subplot(1,3,2) -rxrfmode=1; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); -mesh(0:10:150,[0 5 10 15],reshape(m(i,5)-m(i,6),4,16)) - -subplot(1,3,3) -rxrfmode=2; -i=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); -mesh(0:10:150,[0 5 10 15],reshape(m(i,5)-m(i,6),4,16)) - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plots2.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plots2.m deleted file mode 100644 index 9b64c1ac1c70df16fe61897d6e7d1108196c5a08..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/plots2.m +++ /dev/null @@ -1,68 +0,0 @@ - -closeplot -figure(1); - - -%for power_dBm=ALL_power_dBm -for power_dBm=-65 - - disp(['input: ' num2str(power_dBm) ' dBm']); - - xlabel('Gain 2391'); - ylabel('Gain 9862'); - zlabel('SNR'); - - rxrfmode=0; - idx=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - M0=zeros(length(ALL_gain2391),length(ALL_gain9862)); - M1=zeros(length(ALL_gain2391),length(ALL_gain9862)); - for i=idx.' - i1=find(ALL_gain2391==m(i,2)); - i2=find(ALL_gain9862==m(i,3)); - M0(i1,i2)=m(i,5)-m(i,6); - M1(i1,i2)=m(i,7)-m(i,8); - end - subplot(2,3,1); clg; - title('Channel 0, rxrfmode 0'); - mesh(ALL_gain2391,ALL_gain9862,M0.') - subplot(2,3,4); clg; - title('Channel 1, rxrfmode 0'); - mesh(ALL_gain2391,ALL_gain9862,M1.') - - rxrfmode=1; - idx=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - M0=zeros(length(ALL_gain2391),length(ALL_gain9862)); - M1=zeros(length(ALL_gain2391),length(ALL_gain9862)); - for i=idx.' - i1=find(ALL_gain2391==m(i,2)); - i2=find(ALL_gain9862==m(i,3)); - M0(i1,i2)=m(i,5)-m(i,6); - M1(i1,i2)=m(i,7)-m(i,8); - end - subplot(2,3,2); clg; - title('Channel 0, rxrfmode 1'); - mesh(ALL_gain2391,ALL_gain9862,M0.') - subplot(2,3,5); clg; - title('Channel 1, rxrfmode 1'); - mesh(ALL_gain2391,ALL_gain9862,M1.') - - rxrfmode=2; - idx=find((m(:,1)==power_dBm) & (m(:,4)==rxrfmode)); - M0=zeros(length(ALL_gain2391),length(ALL_gain9862)); - M1=zeros(length(ALL_gain2391),length(ALL_gain9862)); - for i=idx.' - i1=find(ALL_gain2391==m(i,2)); - i2=find(ALL_gain9862==m(i,3)); - M0(i1,i2)=m(i,5)-m(i,6); - M1(i1,i2)=m(i,7)-m(i,8); - end - subplot(2,3,3); clg; - title('Channel 0, rxrfmode 2'); - mesh(ALL_gain2391,ALL_gain9862,M0.') - subplot(2,3,6); clg; - title('Channel 1, rxrfmode 2'); - mesh(ALL_gain2391,ALL_gain9862,M1.') - - pause - -end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration.m deleted file mode 100644 index 8e5240db98e106e61fe1d5ed6488eda6c51747ce..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration.m +++ /dev/null @@ -1,91 +0,0 @@ - -% Maxime Guillaud - created Wed May 10 18:08:04 CEST 2006 - -gpib_card=0; % first GPIB PCI card in the computer -gpib_device=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu -freqband=2; % frequency band used by the openair card - -cables_loss_dB = 6; % we need to account for the power loss between the signal generator and the card input (splitter, cables) - - -gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator -gpib_send(gpib_card,gpib_device,'POW -70dBm'); -gpib_send(gpib_card,gpib_device,'FREQ 1.91452GHz'); - - - -oarf_config(freqband,'openair_config.cfg','openair_scenario.scn') - -saturation_threshold =5; % min number of samples (real+imaginary) equal to the max per frame to declare saturation - -ALL_power_dBm = [-100:1:-60 -150]; -ALL_rxrfmode = 0:2; -ALL_gain2391 = 0:5:120; % this is some strange scale -ALL_gain9862 = 0:1:18; % this in in dB - - -m=[]; - - -%for power_dBm=ALL_power_dBm - power_dBm=-70 - gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']); -sleep(1) - - - for gain9862=ALL_gain9862 - - for gain2391= ALL_gain2391 - - - gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); % activate output - - oarf_set_rx_gain(gain2391,gain9862,gain2391,gain9862); - - nacq=0; % count the number of tries to get data - do - - s=oarf_get_frame(freqband); %oarf_get_frame - sleep(.1); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - for gain9862=ALL_gain9862 - - for gain2391= ALL_gain2391 - SpN0 = mean(abs(s(:,1)).^2) - abs(mean(s(:,1))).^2; - SpN1 = mean(abs(s(:,2)).^2) - abs(mean(s(:,2))).^2; - - - gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - - oarf_set_rx_gain(gain2391,gain9862,gain2391,gain9862); - - nacq=0; % count the number of tries to get data - do - sleep(.1); - s=oarf_get_frame(freqband); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - N0 = mean(abs(s(:,1)).^2) - abs(mean(s(:,1))).^2; - N1 = mean(abs(s(:,2)).^2) - abs(mean(s(:,2))).^2; - -<<<<<<< rx_calibration.m - S0 = 10*log10(SpN0-N0); - S1 = 10*log10(SpN1-N1); - G0 = S0 - power_dBm; - G1 = S1 - power_dBm; - NF0 = N0 - G0 + 108; - NF1 = N1 - G1 + 108; - - fprintf(' %d %d : Signal strength (%d,%d), Gain (%d %d), NF (%d %d)\n', - gain2391,gain9862, S0,S1,G0,G1,NF0,NF1); - - end - end - -gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration_quick.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration_quick.m deleted file mode 100644 index 808eed39ce90d8db5ba7d8fe1b295ceabd322943..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration_quick.m +++ /dev/null @@ -1,183 +0,0 @@ -close all -clear all -hold off - -% Maxime Guillaud - created Wed May 10 18:08:04 CEST 2006 -% Raymond & Florian - last modified Fri Oct 26 17:12:10 CEST 2007 - - -gpib_card=0; % first GPIB PCI card in the computer -gpib_device=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu -freqband=0; % frequency band used by the openair card - -%fc = 1902600e3+5e6*freqband-(1043.1e6); % this has to be the same as in the config file -fc = 1902600e3+5e6*freqband; - -fs = 7680e3; -%fs = 6500e3; -fref = fc+fs/4; - -cables_loss_dB = 6; % we need to account for the power loss between the signal generator and the card input (splitter, cables) -dual_tx = 0; -tdd = 1; - -gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator -gpib_send(gpib_card,gpib_device,'POW -90dBm'); -%gpib_send(gpib_card,gpib_device,'FREQ 1.91860GHz'); -%gpib_send(gpib_card,gpib_device,'FREQ 1.919225GHz'); -%gpib_send(gpib_card,gpib_device,'FREQ 1.909225GHz'); -gpib_send(gpib_card,gpib_device,sprintf("FREQ %dHz",fref)); - -oarf_config(freqband,tdd,dual_tx) -#oarf_set_rx_rfmode(1); - -saturation_threshold =5; % min number of samples (real+imaginary) equal to the max per frame to declare saturation - -ALL_power_dBm = [-95]; -ALL_rxrfmode = 0:2; -ALL_gain2391 = 5:10:160; % this is some strange scale -ALL_gain9862 = 0; %:1:18; % this in in dB - -%fprintf(fid, 'Tx Power (dBm), gain2391, gain9862, Signal strength Rx0, Signal Strength Rx1, Gain Rx0, Gain Rx1, Noise Rx0, Noise Rx1, SNR Rx0, SNR Rx1, NF Rx0, NF Rx1\n'); - -SpN0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SpN1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -N0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -N1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -S0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -S1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -G0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -G1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -NF0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -NF1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SNR0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SNR1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); - -min_agc_level = 130; %min_agc_level = 90; %ceil(min(max(G0,[],1))); -max_agc_level = 150; %floor(max(max(G0,[],1))); - -oarf_set_calibrated_rx_gain(0); % turns off the AGC -#oarf_set_rx_rfmode(2); - -idx_power = 1; -for power_dBm=ALL_power_dBm - - gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']); - - for gain9862=ALL_gain9862 - - idx_gain2391 = 1; - for gain2391= [0 0 0 ALL_gain2391] %the first 3 runs give strange results, so we run the loop 3 times more - - oarf_set_rx_gain(gain2391,gain2391,gain9862,gain9862); - oarf_set_rx_rfmode(1); - oarf_stop(freqband); %this actually writes the gain to the registers - sleep(.5); - - if 1 - % signal measurement - gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); % activate output - sleep(.1); - - nacq=0; % count the number of tries to get data - do - s=oarf_get_frame(freqband); %oarf_get_frame - s2 = s(1:8192,:); - sleep(.1); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - SpN0(idx_power,idx_gain2391) = mean(abs(s2(:,1)).^2) - abs(mean(s2(:,1))).^2; - SpN1(idx_power,idx_gain2391) = mean(abs(s2(:,2)).^2) - abs(mean(s2(:,2))).^2; - - figure(1); - hold off - plot(20*log10(abs(fft(s2(:,1)))),'r',20*log10(abs(fft(s2(:,2)))),'b') - title("Signal"); - - % noise measurement - gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - sleep(.1); - - nacq=0; % count the number of tries to get data - do - s=oarf_get_frame(freqband); %oarf_get_frame - s2 = s(1:8192,:); - sleep(.1); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - N0(idx_power,idx_gain2391) = mean(abs(s2(:,1)).^2) - abs(mean(s2(:,1))).^2; - N1(idx_power,idx_gain2391) = mean(abs(s2(:,2)).^2) - abs(mean(s2(:,2))).^2; - - figure(2); - hold off - plot(20*log10(abs(fft(s2(:,1)))),'r',20*log10(abs(fft(s2(:,2)))),'b') - title("Noise"); - - % do some plausibility checks - % if ((N0(idx_power,idx_gain2391) > SpN0(idx_power,idx_gain2391)) || - % (N1(idx_power,idx_gain2391) > SpN1(idx_power,idx_gain2391))) - % error("something is wrong"); - % end - - S0(idx_power,idx_gain2391) = 10*log10(SpN0(idx_power,idx_gain2391)-N0(idx_power,idx_gain2391)); - S1(idx_power,idx_gain2391) = 10*log10(SpN1(idx_power,idx_gain2391)-N1(idx_power,idx_gain2391)); - G0(idx_power,idx_gain2391) = S0(idx_power,idx_gain2391) - power_dBm; - G1(idx_power,idx_gain2391) = S1(idx_power,idx_gain2391) - power_dBm; - NF0(idx_power,idx_gain2391) = 10*log10(N0(idx_power,idx_gain2391)) - G0(idx_power,idx_gain2391) + 107; % 108 is the thermal noise - NF1(idx_power,idx_gain2391) = 10*log10(N1(idx_power,idx_gain2391)) - G1(idx_power,idx_gain2391) + 107; - SNR0(idx_power,idx_gain2391) = S0(idx_power,idx_gain2391)-10*log10(N0(idx_power,idx_gain2391)); - SNR1(idx_power,idx_gain2391) = S1(idx_power,idx_gain2391)-10*log10(N1(idx_power,idx_gain2391)); - - printf(' %d %d : Signal strength (%f,%f), Gain (%f %f), N (%f %f) SNR (%f %f) NF (%f %f)\n', - gain2391,gain9862, S0(idx_power,idx_gain2391),S1(idx_power,idx_gain2391), - G0(idx_power,idx_gain2391),G1(idx_power,idx_gain2391), - 10*log10(N0(idx_power,idx_gain2391)),10*log10(N1(idx_power,idx_gain2391)), - SNR0(idx_power,idx_gain2391),SNR1(idx_power,idx_gain2391), - NF0(idx_power,idx_gain2391),NF1(idx_power,idx_gain2391)); - fflush(stdout); - %fprintf(fid,'%d, %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f\n', - % power_dBm,gain2391,gain9862, S0,S1,G0,G1,10*log10(N0),10*log10(N1),SNR0,SNR1,NF0,NF1); - - - if (gain2391 > 0) - idx_gain2391 = idx_gain2391 + 1; - end - - figure(3) - hold off - plot(ALL_gain2391,G0,'r') - hold on - plot(ALL_gain2391,G1,'b') - legend('Rx0','Rx1'); - title('Gains') - - figure(4) - hold off - plot(ALL_gain2391,NF0,'r') - hold on - plot(ALL_gain2391,NF1,'b') - legend('Rx0','Rx1'); - title('Noise Figure') - end - - end - end - %power_dBm = power_dBm + 20; - idx_power = idx_power + 1; - end - -gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - -%l0 = [ALL_gain2391; ones(size(ALL_gain2391))].'\G0; -%l1 = [ALL_gain2391; ones(size(ALL_gain2391))].'\G1; - -gain_levels = zeros(max_agc_level-min_agc_level+1,2); - -gain_levels(:,1) = round(interp1(max(G0,[],1),ALL_gain2391,min_agc_level:max_agc_level,'linear','extrap')).'; -gain_levels(:,2) = round(interp1(max(G1,[],1),ALL_gain2391,min_agc_level:max_agc_level,'linear','extrap')).'; - -%gain_levels(isnan(gain_levels)) = 0; - -write_table diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration_quick800_ue.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration_quick800_ue.m deleted file mode 100644 index a07e04a1c3a53dd846769c1753ffcca638b51c4e..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_calibration_quick800_ue.m +++ /dev/null @@ -1,183 +0,0 @@ -close all -clear all -hold off - -% Maxime Guillaud - created Wed May 10 18:08:04 CEST 2006 -% Raymond & Florian - last modified Fri Oct 26 17:12:10 CEST 2007 - - -gpib_card=0; % first GPIB PCI card in the computer -gpib_device=28; % this is configured in the signal generator Utilities->System->GPIB->Address menu -freqband=0; % frequency band used by the openair card - -fc = 1902600e3+5e6*freqband-(1043.1e6); % this has to be the same as in the config file -#fc = 1902600e3+5e6*freqband; - -fs = 7680e3; -%fs = 6500e3; -fref = fc+fs/4; - -dual_tx = 0; -cables_loss_dB = 6; % we need to account for the power loss between the signal generator and the card input (splitter, cables) - - -gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator -gpib_send(gpib_card,gpib_device,'POW -90dBm'); -%gpib_send(gpib_card,gpib_device,'FREQ 1.91860GHz'); -%gpib_send(gpib_card,gpib_device,'FREQ 1.919225GHz'); -%gpib_send(gpib_card,gpib_device,'FREQ 1.909225GHz'); -gpib_send(gpib_card,gpib_device,sprintf("FREQ %dHz",fref)); - -oarf_config(freqband,'config.cfg','scenario.scn',dual_tx) -#oarf_set_rx_rfmode(1); - -saturation_threshold =5; % min number of samples (real+imaginary) equal to the max per frame to declare saturation - -ALL_power_dBm = [-102]; -ALL_rxrfmode = 0:2; -ALL_gain2391 = 5:10:160; % this is some strange scale -ALL_gain9862 = 0; %:1:18; % this in in dB - -%fprintf(fid, 'Tx Power (dBm), gain2391, gain9862, Signal strength Rx0, Signal Strength Rx1, Gain Rx0, Gain Rx1, Noise Rx0, Noise Rx1, SNR Rx0, SNR Rx1, NF Rx0, NF Rx1\n'); - -SpN0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SpN1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -N0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -N1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -S0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -S1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -G0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -G1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -NF0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -NF1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SNR0 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); -SNR1 = zeros(length(ALL_power_dBm),length(ALL_gain2391)); - -min_agc_level = 130; %min_agc_level = 90; %ceil(min(max(G0,[],1))); -max_agc_level = 150; %floor(max(max(G0,[],1))); - -oarf_set_calibrated_rx_gain(0); % turns off the AGC -#oarf_set_rx_rfmode(2); - -idx_power = 1; -for power_dBm=ALL_power_dBm - - gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']); - - for gain9862=ALL_gain9862 - - idx_gain2391 = 1; - for gain2391= [0 0 0 ALL_gain2391] %the first 3 runs give strange results, so we run the loop 3 times more - - oarf_set_rx_gain(gain2391,gain2391,gain9862,gain9862); - oarf_set_rx_rfmode(1); - oarf_stop(freqband); %this actually writes the gain to the registers - sleep(.5); - - if 1 - % signal measurement - gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); % activate output - sleep(.1); - - nacq=0; % count the number of tries to get data - do - s=oarf_get_frame(freqband); %oarf_get_frame - s2 = s(1:8192,:); - sleep(.1); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - SpN0(idx_power,idx_gain2391) = mean(abs(s2(:,1)).^2) - abs(mean(s2(:,1))).^2; - SpN1(idx_power,idx_gain2391) = mean(abs(s2(:,2)).^2) - abs(mean(s2(:,2))).^2; - - figure(1); - hold off - plot(20*log10(abs(fft(s2(:,1)))),'r',20*log10(abs(fft(s2(:,2)))),'b') - title("Signal"); - - % noise measurement - gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - sleep(.1); - - nacq=0; % count the number of tries to get data - do - s=oarf_get_frame(freqband); %oarf_get_frame - s2 = s(1:8192,:); - sleep(.1); - nacq=nacq+1; - until max(max(abs(s)))>0 % ensures that the frame is properly read - - N0(idx_power,idx_gain2391) = mean(abs(s2(:,1)).^2) - abs(mean(s2(:,1))).^2; - N1(idx_power,idx_gain2391) = mean(abs(s2(:,2)).^2) - abs(mean(s2(:,2))).^2; - - figure(2); - hold off - plot(20*log10(abs(fft(s2(:,1)))),'r',20*log10(abs(fft(s2(:,2)))),'b') - title("Noise"); - - % do some plausibility checks - % if ((N0(idx_power,idx_gain2391) > SpN0(idx_power,idx_gain2391)) || - % (N1(idx_power,idx_gain2391) > SpN1(idx_power,idx_gain2391))) - % error("something is wrong"); - % end - - S0(idx_power,idx_gain2391) = 10*log10(SpN0(idx_power,idx_gain2391)-N0(idx_power,idx_gain2391)); - S1(idx_power,idx_gain2391) = 10*log10(SpN1(idx_power,idx_gain2391)-N1(idx_power,idx_gain2391)); - G0(idx_power,idx_gain2391) = S0(idx_power,idx_gain2391) - power_dBm; - G1(idx_power,idx_gain2391) = S1(idx_power,idx_gain2391) - power_dBm; - NF0(idx_power,idx_gain2391) = 10*log10(N0(idx_power,idx_gain2391)) - G0(idx_power,idx_gain2391) + 107; % 108 is the thermal noise - NF1(idx_power,idx_gain2391) = 10*log10(N1(idx_power,idx_gain2391)) - G1(idx_power,idx_gain2391) + 107; - SNR0(idx_power,idx_gain2391) = S0(idx_power,idx_gain2391)-10*log10(N0(idx_power,idx_gain2391)); - SNR1(idx_power,idx_gain2391) = S1(idx_power,idx_gain2391)-10*log10(N1(idx_power,idx_gain2391)); - - printf(' %d %d : Signal strength (%f,%f), Gain (%f %f), N (%f %f) SNR (%f %f) NF (%f %f)\n', - gain2391,gain9862, S0(idx_power,idx_gain2391),S1(idx_power,idx_gain2391), - G0(idx_power,idx_gain2391),G1(idx_power,idx_gain2391), - 10*log10(N0(idx_power,idx_gain2391)),10*log10(N1(idx_power,idx_gain2391)), - SNR0(idx_power,idx_gain2391),SNR1(idx_power,idx_gain2391), - NF0(idx_power,idx_gain2391),NF1(idx_power,idx_gain2391)); - fflush(stdout); - %fprintf(fid,'%d, %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f\n', - % power_dBm,gain2391,gain9862, S0,S1,G0,G1,10*log10(N0),10*log10(N1),SNR0,SNR1,NF0,NF1); - - - if (gain2391 > 0) - idx_gain2391 = idx_gain2391 + 1; - end - - figure(3) - hold off - plot(ALL_gain2391,G0,'r') - hold on - plot(ALL_gain2391,G1,'b') - legend('Rx0','Rx1'); - title('Gains') - - figure(4) - hold off - plot(ALL_gain2391,NF0,'r') - hold on - plot(ALL_gain2391,NF1,'b') - legend('Rx0','Rx1'); - title('Noise Figure') - end - - end - end - %power_dBm = power_dBm + 20; - idx_power = idx_power + 1; - end - -gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % deactivate output - -%l0 = [ALL_gain2391; ones(size(ALL_gain2391))].'\G0; -%l1 = [ALL_gain2391; ones(size(ALL_gain2391))].'\G1; - -gain_levels = zeros(max_agc_level-min_agc_level+1,2); - -gain_levels(:,1) = round(interp1(max(G0,[],1),ALL_gain2391,min_agc_level:max_agc_level,'linear','extrap')).'; -gain_levels(:,2) = round(interp1(max(G1,[],1),ALL_gain2391,min_agc_level:max_agc_level,'linear','extrap')).'; - -%gain_levels(isnan(gain_levels)) = 0; - -write_table diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_post.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_post.m deleted file mode 100755 index 32b3260a3be8eda83eed7f69447e80b911ac93d1..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_post.m +++ /dev/null @@ -1,42 +0,0 @@ -function out=rx_post(nom) - -%load data.dat signal -%fid=fopen('/tmp/store1.dat',) -fid=fopen(nom,'rb') -signal=fread(fid,20480); - -size_data=20480; -Fs=7680; %in kHz -band = 2000; %in kHz -max_pos=0; -max=0; -f=abs(fft(signal)).^2; -for n=2:size_data - if(f(n) > max) - max=f(n); - max_pos=n; - end; -end; - -disp(max_pos) -freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency -if(abs(freq_max-2000)>100) -disp("Warning") -end; - - -% calculation of the signal power -Pu=sum(f(max_pos-20:max_pos+20)) -ns_noise =round((band/Fs)*(size_data/2)) -Pnoise=sum(f(max_pos-ns_noise:max_pos+ns_noise))-Pu -plot(10*log10(f)) - -% plot(10*log10(f(max_pos-ns_noise:max_pos+ns_noise))) - -SNR=10*log10(Pu/Pnoise) -N_in = -174 +10*log10(1000*band) -S_in = -110; -SNR_in=S_in - N_in - -NF=SNR_in-SNR -end; \ No newline at end of file diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_pss.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_pss.m deleted file mode 100644 index 1b25f765a0291d01fd6765c4b68e416f65f68a65..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_pss.m +++ /dev/null @@ -1,10 +0,0 @@ -addpath('../../../PHY/LTE_REFSIG/'); -primary_synch; -pss_t = upsample(primary_synch0_time,4); -corr = abs(conv(conj(pss_t),s(:,1))); -figure(3); -plot(corr); - -[pss_amp, pss_pos] = max(corr); -sss_pos = pss_pos - 640; -ssst = s(sss_pos:(sss_pos+511)); diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_spec.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_spec.m deleted file mode 100755 index 61709c8c801fd1bc69bca4a1f930aacca78d2c90..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_spec.m +++ /dev/null @@ -1,26 +0,0 @@ -dual_tx=0; -oarf_config(0,1,dual_tx) - -gpib_card=0; % first GPIB PCI card in the computer -gpib_device=28; % this is configured in the signal generator Utilities->System -cables_loss_dB = 6; % we need to account for the power loss between the signa -power_dBm = -95; - -%gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']); -%gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); % activate output - -oarf_set_calibrated_rx_gain(0); % turns off the AGC -oarf_set_rx_gain(80,85,0,0); -oarf_set_rx_rfmode(0); - -s=oarf_get_frame(0); -f = (7.68*(0:length(s(:,1))-1)/(length(s(:,1))))-3.84; -spec0 = 20*log10(abs(fftshift(fft(s(:,1))))); -spec1 = 20*log10(abs(fftshift(fft(s(:,2))))); - -clf -plot(f',spec0,'r',f',spec1,'b') -axis([-3.84,3.84,40,160]); -%gpib_send(gpib_card,gpib_device,'OUTP:STAT OFF'); % activate output -legend('Antenna Port 0','Antenna Port 1'); -grid diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_store.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_store.m deleted file mode 100755 index 02d0a79922f3fa2ce32bcfada0d7edfb0463cbe8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/rx_store.m +++ /dev/null @@ -1,13 +0,0 @@ -num=10; -openair_init; -for n=1:num -s=oarf_get_frame(0); -plot(20*log10(abs(fft(s(:,1))))) -signal=s(:,1); -fid=fopen(['/tmp/store' int2str(n) '.dat'],'wb') -fwrite(fid,signal); -fclose(fid); -end; - - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/txsig.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/txsig.m deleted file mode 100644 index d739a54e9fe4dab3aefe7b042020c376cadcac82..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/txsig.m +++ /dev/null @@ -1,83 +0,0 @@ -fc = 1907600000; -fidx=1; -tdd=1; -dual_tx=1; -cbmimo1=0; -rxgain=30; -txgain=25; -eNB_flag = 0; - -off = 0; % -994; -if (cbmimo1) - oarf_config(fidx,tdd,dual_tx,255); - amp = pow2(7)-1; - n_bit = 8; -else - limeparms; - rf_mode = RXEN+TXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAMax+RFBBNORM * ones(1,4); -% rf_mode = RXEN+TXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAByp+RFBBLNA1; - - rf_local = rf_local * ones(1,4); - rf_rxdc = rf_rxdc * ones(1,4); - rf_vcocal = rf_vcocal * ones(1,4); - rxgain = rxgain*ones(1,4); - txgain = txgain*ones(1,4); - freq_rx = fc*[1 1 1 1]; - freq_tx = freq_rx+1920000; - - oarf_config_exmimo(freq_rx,freq_tx,1,dual_tx,rxgain,txgain,eNB_flag,rf_mode,rf_rxdc,rf_local,rf_vcocal); - amp = pow2(13)-1; - n_bit = 16; -end - -s = zeros(76800,2); - -select = 1; - -switch(select) - -case 1 - s(:,1) = floor(amp * (exp(sqrt(-1)*.5*pi*(0:((76800)-1))))); - s(:,2) = floor(amp * (exp(sqrt(-1)*.5*pi*(0:((76800)-1))))); - -case 2 - s(38400+128,1)= 80-1j*40; - s(38400+138,1)= -80+1j*40; - -case 3 - for i=0:(12*5-1) - s((38401+640*i):(38400+640*(i+1)),1)=floor(linspace(-127,128,640)); %+1j*floor(linspace(128,-127,640)); - end - -case 4 - pss0_f0=[0,0,0,0,0,0,0,0,0,0,32767,0,-26120,-19785,11971,-30502,-24020,-22288,32117,6492,31311,9658,-16384,-28378,25100,-21063,-7292,-31946,20429,25618,14948,29158,11971,-30502,31311,9658,25100,-21063,-16384,28377,-24020,22287,32117,6492,-7292,31945,20429,25618,-26120,-19785,-16384,-28378,-16384,28377,-26120,-19785,-32402,4883,31311,-9659,32117,6492,-7292,-31946,32767,-1,25100,-21063,-24020,22287,-32402,4883,-32402,4883,-24020,22287,25100,-21063,32767,-1,-7292,-31946,32117,6492,31311,-9659,-32402,4883,-26120,-19785,-16384,28377,-16384,-28378,-26120,-19785,20429,25618,-7292,31945,32117,6492,-24020,22287,-16384,28377,25100,-21063,31311,9658,11971,-30502,14948,29158,20429,25618,-7292,-31946,25100,-21063,-16384,-28378,31311,9658,32117,6492,-24020,-22288,11971,-30502,-26120,-19785,32767,0,0,0,0,0,0,0,0,0,0,0]; - - pss0_f = pss0_f0(1:2:length(pss0_f0)) + sqrt(-1)*pss0_f0(2:2:length(pss0_f0)); - - pss0_f = [0 pss0_f(37:72) zeros(1,512-73) pss0_f(1:36)]; - pss0_t = ifft(pss0_f); - pss0_t = [pss0_t((512-127):512) pss0_t]; - pss0_t = [pss0_t zeros(1,512+36) pss0_t]; - pss0_max = max(max(abs(real(pss0_t))),max(abs(imag(pss0_t)))); - - pss0_t_fp_re = floor(real(8192*pss0_t/pss0_max)); - pss0_t_fp_im = floor(imag(8192*pss0_t/pss0_max)); - - s(38400+(1:length(pss0_t_fp_re)),1) = 2*floor(pss0_t_fp_re) + 2*sqrt(-1)*floor(pss0_t_fp_im); - s(38400+(1:length(pss0_t_fp_re)),2) = 2*floor(pss0_t_fp_re) + 2*sqrt(-1)*floor(pss0_t_fp_im); -otherwise - error('unknown case') -endswitch - -if (cbmimo1) - oarf_set_tx_gain(110,110,110,110); -else - s = s*2; -end -oarf_send_frame(0,s,n_bit); - -figure(1) -hold off -plot(real(s(:,1)),'r') -hold on -plot(imag(s(:,2)),'b') diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/txsig_ofdm.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/txsig_ofdm.m deleted file mode 100644 index a0c9591dbe5293f270281c80f275364cc8fbadf7..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/txsig_ofdm.m +++ /dev/null @@ -1,27 +0,0 @@ -dual_tx=1; -cbmimo1=0; - -if (cbmimo1) - oarf_config(0,1,dual_tx,255); - amp = pow2(7)-1; - n_bit = 8; -else - oarf_config_exmimo(1902600000,1,dual_tx,30); - amp = pow2(15)-1; - n_bit = 16; -end - -s = zeros(76800,2); -s(:,1) = 8*floor(amp*OFDM_TX_FRAME(512,211,128,120,8)); -s(:,2) = 8*floor(amp*OFDM_TX_FRAME(512,211,128,120,8)); - - -%s(:,1) = amp * (exp(sqrt(-1)*.5*pi*(0:((76800)-1)))); -%s(:,2) = amp * (exp(sqrt(-1)*.5*pi*(0:((76800)-1)))); - -if (cbmimo1) - oarf_set_tx_gain(110,110,110,110); -end -oarf_send_frame(0,s,n_bit); - -plot(20*log10(abs(fft(s(:,1))))) diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/variouspowers.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/variouspowers.m deleted file mode 100644 index bc74e32af3c3774b4855f6bee0adae9bb7133ea6..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/variouspowers.m +++ /dev/null @@ -1,33 +0,0 @@ -function retvalue=variouspowers(s) - -W=25; - -fftsize=2^ceil(log2(length(s))); -powspectrum=fftshift(abs(fft(s-mean(s),fftsize)/sqrt(fftsize))); - -powspectrumfilt=conv(powspectrum,ones(1,2*W+1)); - -[sigpower carrier_idx]=max(powspectrumfilt); - -if (carrier_idx<=3*W) - carrier_idx=3*W+1; -end -sigpower_dB=20*log10(sigpower); - - -if (carrier_idx>3*W) - - noiseplusintfspectrum=powspectrum; - noiseplusintfspectrum(carrier_idx+(-W:W)-2*W)=zeros(1,2*W+1); - - noiseplusintfpower_dB=10*log10(sum(noiseplusintfspectrum.^2)); - - noiseplusintfspectrum_dB=20*log10(noiseplusintfspectrum); - noiseplusintfspectrum_dB(carrier_idx+(-W:W)-2*W)=-20; - -%plot([ 20*log10(powspectrum) noiseplusintfspectrum_dB]) -%pause - retvalue=[sigpower_dB noiseplusintfpower_dB]; -else - retvalue=[sigpower_dB +Inf]; -end diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/write_table.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/write_table.m deleted file mode 100644 index 31845530213195def98d08c64bfe273add5c9d66..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/write_table.m +++ /dev/null @@ -1,33 +0,0 @@ -card = input('Input card number: ', 's'); - -filename_h = ['gain_table_' card '.h']; % file to store the gain table to -filename_mat = ['gain_table_' card '.mat']; - -save('-mat',filename_mat,'ALL_power_dBm','ALL_rxrfmode','ALL_gain2391','ALL_gain9862','min_agc_level','max_agc_level','gain_levels','SpN0','SpN1','N0','N1','S0','S1','G0','G1','NF0','NF1','SNR0','SNR1'); - -fid = fopen(filename_h,'w'); - -fprintf(fid,'#ifndef _GAIN_TABLE_H__\n'); -fprintf(fid,'#define _GAIN_TABLE_H__\n'); - -fprintf(fid,'#define MAX_RF_GAIN %d\n',max_agc_level); -fprintf(fid,'#define MIN_RF_GAIN %d\n',min_agc_level); - -%fprintf(fid,'#define TCXO_OFFSET\n'); - -fprintf(fid,'struct gain_table_entry {\n'); -fprintf(fid,' unsigned char gain0;\n'); -fprintf(fid,' unsigned char gain1;\n'); -fprintf(fid,'};\n'); - -fprintf(fid,'struct gain_table_entry gain_table[MAX_RF_GAIN-MIN_RF_GAIN+1] = {\n'); -for agc_level = 1:(max_agc_level-min_agc_level) - fprintf(fid,'%d, %d,\n',gain_levels(agc_level,:)); -end -fprintf(fid,'%d, %d};\n',gain_levels(end,:)); - - -fprintf(fid,'#endif /* _GAIN_TABLE_H__ */\n'); - -fclose(fid); - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/write_tcxo.m b/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/write_tcxo.m deleted file mode 100644 index a2b6d8dd8e6d8a246196674e2717eda77daa5a6d..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS/write_tcxo.m +++ /dev/null @@ -1,15 +0,0 @@ -card = input('Input card number: ', 's'); - -filename_h = ['tcxo_val_' card '.h']; % file to store the gain table to - -fid = fopen(filename_h,'w'); - -fprintf(fid,"#ifndef _TCXO_VAL_H__\n"); -fprintf(fid,"#define _TCXO_VAL_H__\n"); - -fprintf(fid,"#define TCXO_VAL %d\n",tcxo_freq_min); - -fprintf(fid,"#endif /* _TCXO_VAL_H__ */\n"); - -fclose(fid); - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/Makefile b/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/Makefile deleted file mode 100644 index 73054a5cd4446e22996a95c3c23eeef987b08999..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Maxime Guillaud - created Wed May 10 17:47:36 CEST 2006 -# see http://etow.com/UsingGPIBOctaveLinux.htm - -all: gpibcmd querygpib - - -gpibcmd: gpibcmd.c - gcc gpibcmd.c -I/usr/include/gpib/ -o gpibcmd -lgpib - - -querygpib: querygpib.c - gcc querygpib.c -I/usr/include/gpib/ -o querygpib -lgpib - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/gpibcmd.c b/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/gpibcmd.c deleted file mode 100644 index 95da0a6fb1fa1ce24abf0c18f2dc8ee6050ff335..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/gpibcmd.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Code of gpibcmd.c */ -// -// BrettFrymire -// 04/07/2004 -// Version 0.9 -//Compile like this -//gcc gpibcmd.c -o test -lgpib - - - -#include <stdio.h> -#include <stdlib.h> -#include "/usr/include/gpib/ib.h" -#include <strings.h> - -/* Forward declares */ -void check_args(int argc); - - -/* Type declarations */ - - - -void check_args(int argc) -{ - if (argc != 3) { - printf("\nUsage: program Gpibaddress Command\n"); - exit(EXIT_FAILURE); - } -} - - -int main(int argc, char *argv[]) -{ - check_args(argc); - unsigned short addlist[2] = {atoi(argv[1]), NOADDR}; // list to enable inst - //Reset Card 0 (i.e:gpib0) - SendIFC(0); - - // ENABLE all on GPIB bus - EnableRemote(0, addlist); - - // If error, Bye! - if (ibsta & ERR) { - printf("Instrument enable failed!\n"); - exit(1); - } - - // Send (BoardID, GPIBAddr, Command, LengthCommand, Endline) - // typical command: - // Send(0, 20, "*RST", 4l, NLend); - - Send(0, atoi(argv[1]), argv[2], strlen(argv[2]), NLend); -} - - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib b/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib deleted file mode 100755 index 81a2193a3793172198764709cf0d9116418d5f3a..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib.c b/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib.c deleted file mode 100644 index 06035651db435f9a827e821ae80af2ed711a2fe0..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Code of QueryGpib.c */ -// -// BrettFrymire -// 04/07/2004 -// Version 0.9 -//Compile like this -//gcc test.c -o test -lgpib - -#include <stdio.h> -#include <stdlib.h> -#include "ib.h" -#include <strings.h> - - -/* Type declarations */ -char inData[19]; - - -void check_args(int argc) -{ - if (argc != 3) { - printf("\nUsage: program Gpibaddress Command\n"); - exit(EXIT_FAILURE); - } -} - - -int main(int argc, char *argv[]) -{ - int loop; - check_args(argc); - - for (loop=0; loop<=19-1; loop++) { - inData[loop] = 0; - } - - unsigned short addlist[2] = {atoi(argv[1]), NOADDR}; // list to enable inst - - //Reset Card 0 (i.e:gpib0) - SendIFC(0); - // ENABLE all on GPIB bus - EnableRemote(0, addlist); - - // If error, Bye! - if (ibsta & ERR) { - printf("Instrument enable failed!\n"); - exit(1); - } - - // Send (BoardID, GPIBAddr, Command, LengthCommand, Endline) - // typical command: - // Send(0, 20, "*RST", 4l, NLend); - Send(0, atoi(argv[1]), argv[2], strlen(argv[2]), NLend); - Receive(0, atoi(argv[1]), inData, 19, STOPend); - printf("%s",inData); -} - diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib.m b/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib.m deleted file mode 100644 index df4713a271be49a5d876e52fd1053b519893e91f..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/querygpib.m +++ /dev/null @@ -1,7 +0,0 @@ -function [qresult]=QueryGPIB(addr,cmdstr); -% Pass address of GPIB instrument and the command string to -% trigger the query. -% example querygpib(20, FREQ?) - -A = system('/local/gpibquery ' sprintf('%i ',addr) cmdstr); -qresult = sscanf(A, "%f") diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/sendgpib.m b/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/sendgpib.m deleted file mode 100644 index aac693d2b8ace0bb33bdd2c4adbb6f6b0a06a8c2..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/GPIB/sendgpib.m +++ /dev/null @@ -1,12 +0,0 @@ -function [] = sendgpib(addr, command); -% Sample file showing how to interface with gpibcmd -% Command in Octave: sendgpib (20, '"FREQ 5000"') -% Must have the quotes around the command to work -% addr = 20; -% command = '"FREQ 2000"'; - -% this could be rewritten as native octave, see http://www.gnu.org/software/octave/doc/interpreter/Dynamically-Linked-Functions.html#Dynamically-Linked-Functions - -cmdstr= ["./gpibcmd " sprintf('%i' , addr) " '" command "'"]; -disp(['sendgpib: executing >> ' cmdstr ' <<']) -system(cmdstr); diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH0_sync_4xf0.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH0_sync_4xf0.m deleted file mode 100644 index f4dcf822f70d0d3912c27325f6a34f8d31bce211..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH0_sync_4xf0.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch0_sync_f_4x0 = [225 + j*(-290) --1024 + j*(758) --275 + j*(1023) -402 + j*(1023) --1024 + j*(-1024) --1024 + j*(1023) --266 + j*(1023) --203 + j*(-529) --1024 + j*(-60) --223 + j*(201) --166 + j*(-992) --867 + j*(-1024) --964 + j*(437) -564 + j*(-99) -344 + j*(-1024) -288 + j*(-1024) --1024 + j*(-242) --877 + j*(-313) --871 + j*(1023) -530 + j*(1023) --1024 + j*(-776) --1024 + j*(1023) --303 + j*(1023) --1024 + j*(-1024) --1024 + j*(543) --1024 + j*(1023) --1024 + j*(-1024) --1024 + j*(-832) --1024 + j*(1023) --28 + j*(-1024) --1013 + j*(-1024) --1024 + j*(-2) --1024 + j*(1023) -13 + j*(1023) -961 + j*(1023) -1023 + j*(295) --1024 + j*(925) -661 + j*(1023) -1023 + j*(1023) --1024 + j*(224) --895 + j*(1023) -942 + j*(1023) --1024 + j*(-540) --1024 + j*(580) --255 + j*(1023) --1024 + j*(-1024) --1024 + j*(-639) --1024 + j*(1023) -710 + j*(1023) -1023 + j*(1023) -1023 + j*(-879) --444 + j*(-451) -593 + j*(-240) -329 + j*(-681) --129 + j*(357) -480 + j*(-223) --510 + j*(627) --50 + j*(315) --1024 + j*(-803) --1024 + j*(1023) -384 + j*(1023) --1024 + j*(-966) --1024 + j*(413) -891 + j*(1023) -1023 + j*(919) -1023 + j*(-553) -1007 + j*(-1024) --991 + j*(-879) -1023 + j*(-663) -347 + j*(-1024) --1024 + j*(-696) -1023 + j*(-1024) -1023 + j*(-1024) --1024 + j*(-259) -931 + j*(-992) --971 + j*(-1024) --1024 + j*(-92) -785 + j*(-991) --1019 + j*(-1024) --1024 + j*(67) --865 + j*(1023) -517 + j*(1023) -1023 + j*(-319) -861 + j*(-901) -875 + j*(1023) -1023 + j*(252) -916 + j*(-931) -545 + j*(1023) -1023 + j*(76) -871 + j*(-1024) -509 + j*(1023) -1023 + j*(-147) -792 + j*(-1024) -672 + j*(931) -1023 + j*(-852) --705 + j*(-1024) --1024 + j*(-1024) --1024 + j*(901) -331 + j*(1023) -1014 + j*(1023) --1024 + j*(971) --265 + j*(1023) -926 + j*(1023) --1024 + j*(-167) --1024 + j*(1023) -930 + j*(1023) --1024 + j*(-689) --1024 + j*(1023) -766 + j*(1023) --1024 + j*(-858) --1024 + j*(1023) -873 + j*(1023) -1023 + j*(-468) -1023 + j*(-1024) --307 + j*(-1024) --434 + j*(-742) -1023 + j*(368) -850 + j*(-802) -136 + j*(-538) -666 + j*(213) -708 + j*(203) -511 + j*(-597) --355 + j*(754) -516 + j*(1014) -1023 + j*(412) --683 + j*(846) -96 + j*(1023) -1023 + j*(920) -1023 + j*(-572) -682 + j*(-1024) --1024 + j*(-1007) --1024 + j*(1023) -192 + j*(-1024) --1024 + j*(-980) --1024 + j*(1023) -62 + j*(-1024) --1024 + j*(-1024) --1024 + j*(925) -245 + j*(-1024) --1024 + j*(-1024) --1024 + j*(315) -607 + j*(-1024) --1024 + j*(-319) --1024 + j*(215) -770 + j*(1023) -388 + j*(1023) -799 + j*(380) -982 + j*(-109) --1024 + j*(1023) --564 + j*(934) -924 + j*(844) --1024 + j*(628) --515 + j*(615) -1023 + j*(1023) --1024 + j*(-571) --1024 + j*(1023) --370 + j*(1023) --1024 + j*(-845) --1024 + j*(936) --250 + j*(1023) -1023 + j*(895) -1023 + j*(-1024) -100 + j*(-1024) --947 + j*(-630) -1023 + j*(0) -1023 + j*(-1024) --1024 + j*(-331) -1023 + j*(-1024) --708 + j*(-1024) --1024 + j*(-490) -747 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-309) -799 + j*(-1024) -7 + j*(-1024) --1024 + j*(210) --791 + j*(915) -313 + j*(1023) -936 + j*(460) -1023 + j*(-284) --716 + j*(1023) -93 + j*(1023) -1023 + j*(490) --596 + j*(566) --677 + j*(206) -837 + j*(391) --1024 + j*(-226) --932 + j*(1023) --244 + j*(1023) --1024 + j*(-729) --618 + j*(377) --1 + j*(985) -1023 + j*(469) -461 + j*(-102) -204 + j*(-1024) --697 + j*(-856) -1023 + j*(-206) -289 + j*(-1024) --754 + j*(-623) -1023 + j*(-833) -505 + j*(-1024) --1024 + j*(-1024) -672 + j*(-849) --597 + j*(-1024) --1024 + j*(-605) -703 + j*(-985) -20 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-231) --817 + j*(1023) -1023 + j*(1023) -946 + j*(-596) --1024 + j*(318) --1 + j*(1023) -778 + j*(52) --1024 + j*(619) -287 + j*(1023) -842 + j*(808) --1024 + j*(4) --1 + j*(1023) --1 + j*(1023) --1024 + j*(-410) --1024 + j*(1023) --1 + j*(1007) -1023 + j*(535) -833 + j*(95) -381 + j*(-1024) --688 + j*(-1024) -1023 + j*(17) -1023 + j*(-486) --535 + j*(-1024) -515 + j*(522) -363 + j*(-943) --150 + j*(-421) -626 + j*(-251) -526 + j*(-312) --731 + j*(-251) -718 + j*(-587) -9 + j*(-1024) --1024 + j*(-90) --1024 + j*(317) -116 + j*(1023) -1023 + j*(1023) -1023 + j*(-877) --662 + j*(1023) -1023 + j*(1023) -1023 + j*(-726) --996 + j*(1023) -1023 + j*(1023) -1023 + j*(-311) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(250) --1024 + j*(1023) -8 + j*(1023) -1023 + j*(-1) -1023 + j*(-1024) --7 + j*(-1024) --935 + j*(-1) --569 + j*(802) --9 + j*(-1024) --521 + j*(575) --298 + j*(775) --1024 + j*(-1024) --984 + j*(1023) --946 + j*(1023) --1024 + j*(-763) --1024 + j*(1023) --1 + j*(1023) --1024 + j*(-858) --1024 + j*(131) --1 + j*(1023) -366 + j*(1023) -1023 + j*(-27) -1023 + j*(-1024) --519 + j*(-828) -895 + j*(582) -625 + j*(316) --45 + j*(-414) -112 + j*(780) -495 + j*(-392) -679 + j*(-27) --644 + j*(-207) --728 + j*(354) -3 + j*(1023) --959 + j*(-597) --1024 + j*(1023) -822 + j*(974) -1023 + j*(824) -738 + j*(-614) -811 + j*(-1024) --377 + j*(-1024) -1023 + j*(-1) -678 + j*(27) --1 + j*(-1024) -651 + j*(133) -1023 + j*(-1) --147 + j*(-292) --220 + j*(8) -797 + j*(-1) --1 + j*(978) --604 + j*(-367) --1024 + j*(70) --268 + j*(1023) -966 + j*(1023) -1019 + j*(57) -1023 + j*(-1024) --923 + j*(-1024) -1023 + j*(36) -1023 + j*(-1024) --686 + j*(-1024) -1023 + j*(308) -1023 + j*(-353) --585 + j*(-1024) -1023 + j*(592) -1023 + j*(-1) -398 + j*(-1024) -590 + j*(322) -1023 + j*(-1) --1 + j*(-1024) --22 + j*(-462) --3 + j*(-91) --345 + j*(16) --134 + j*(-343) -438 + j*(-222) --47 + j*(-759) --214 + j*(-691) --562 + j*(210) -114 + j*(-452) --58 + j*(258) -637 + j*(254) --211 + j*(-113) --286 + j*(-1) -326 + j*(139) --212 + j*(-588) --90 + j*(-84) --425 + j*(-177) --44 + j*(185) --692 + j*(212) --19 + j*(-277) -356 + j*(-12) --99 + j*(-73) --39 + j*(-500) -24 + j*(461) -506 + j*(-829) --5 + j*(-181) -381 + j*(257) -963 + j*(-48) -213 + j*(-795) -164 + j*(132) -187 + j*(317) --1024 + j*(123) -875 + j*(-443) -317 + j*(1023) --57 + j*(-459) --74 + j*(-249) --1 + j*(143) -276 + j*(22) --87 + j*(-118) --233 + j*(1023) -188 + j*(-517) -1023 + j*(-185) -385 + j*(177) -6 + j*(637) -492 + j*(-178) -193 + j*(154) -1023 + j*(-362) -846 + j*(666) --349 + j*(-1024) --194 + j*(-174) --1024 + j*(-1) --41 + j*(-133) -224 + j*(-384) -135 + j*(-1) --75 + j*(-302) -327 + j*(1023) -206 + j*(254) -624 + j*(-684) -198 + j*(133) -313 + j*(-285) --256 + j*(-1) -180 + j*(82) -740 + j*(-178) -16 + j*(-1024) --1024 + j*(-877) --1024 + j*(-173) -763 + j*(1023) -15 + j*(-104) -140 + j*(-90) -425 + j*(247) --23 + j*(-208) --188 + j*(453) --742 + j*(1023) -259 + j*(111) -204 + j*(64) -167 + j*(-284) --418 + j*(105) -135 + j*(-3) -235 + j*(110) --1 + j*(-141) -800 + j*(721) -674 + j*(420) --1 + j*(-175) -79 + j*(-165) -771 + j*(-1) -792 + j*(-641) -96 + j*(-229) --887 + j*(757) -762 + j*(302) -739 + j*(566) -94 + j*(150) -14 + j*(-253) -11 + j*(-1) -22 + j*(35) -276 + j*(3) -1023 + j*(860) -125 + j*(-132) -978 + j*(-728) --151 + j*(175) --8 + j*(-196) --199 + j*(308) -413 + j*(-27) -32 + j*(-290) -642 + j*(588) --364 + j*(-590) -377 + j*(-559) -157 + j*(179) --515 + j*(616) -814 + j*(143) -53 + j*(83) --520 + j*(384) -97 + j*(325) --158 + j*(865) -262 + j*(425) -339 + j*(-1) --26 + j*(-144) --1 + j*(16) -485 + j*(98) --5 + j*(-252) -454 + j*(428) -76 + j*(37) -391 + j*(-779) -179 + j*(151) -356 + j*(90) -223 + j*(138) -86 + j*(88) -479 + j*(-295) --902 + j*(626) --216 + j*(-370) -179 + j*(-93) -398 + j*(151) --5 + j*(-77) -166 + j*(-101) --133 + j*(-1) --11 + j*(-152) --386 + j*(274) --1024 + j*(298) -364 + j*(330) -126 + j*(54) --122 + j*(-207) -249 + j*(-1) -76 + j*(-6) --696 + j*(-358) -310 + j*(196) --867 + j*(1018) -732 + j*(-194) -838 + j*(245) -61 + j*(-140) -26 + j*(371) -999 + j*(223) -94 + j*(-182) --583 + j*(-18) --218 + j*(1023) -89 + j*(717) -44 + j*(131) --129 + j*(-115) -83 + j*(-7) --12 + j*(25) --1 + j*(581) -227 + j*(-414) -1023 + j*(-1) --1 + j*(-58) --579 + j*(-852) --4 + j*(-175) -195 + j*(-430) -118 + j*(-560) -57 + j*(-243) --170 + j*(-74) --1024 + j*(-733) --8 + j*(378) -78 + j*(175) -346 + j*(-210) -38 + j*(-272) --17 + j*(72) --109 + j*(-139) --313 + j*(1023) --482 + j*(-43) -975 + j*(186) --1 + j*(-289) --63 + j*(-167) -69 + j*(249) -104 + j*(-507) --14 + j*(-277) --252 + j*(578) --361 + j*(283) -698 + j*(292) -168 + j*(187) -172 + j*(84) -719 + j*(-906) -52 + j*(124) -312 + j*(435) --2 + j*(-546) --602 + j*(-290) --181 + j*(-770) --319 + j*(46) --57 + j*(-67) -488 + j*(-47) -673 + j*(-477) --53 + j*(-286) -886 + j*(845) -749 + j*(740) -685 + j*(-879) -145 + j*(76) -600 + j*(-50) -322 + j*(24) -68 + j*(38) --345 + j*(-77) -704 + j*(-331) -0 + j*(242) -446 + j*(-852) -165 + j*(0) -5 + j*(-65) -0 + j*(57) --141 + j*(0) -82 + j*(0) --400 + j*(-66) -0 + j*(1023) -290 + j*(109) -36 + j*(-91) -0 + j*(646) --191 + j*(-144) -20 + j*(37) -38 + j*(32) -0 + j*(619) -635 + j*(-191) -322 + j*(0) --446 + j*(-292) --14 + j*(-135) --165 + j*(-455) --662 + j*(125) -160 + j*(103) --510 + j*(-93) --951 + j*(-103) -330 + j*(480) -0 + j*(-84) --147 + j*(129) -29 + j*(0) --27 + j*(76) -178 + j*(214) --326 + j*(-308) --711 + j*(394) -0 + j*(578) -714 + j*(349) --104 + j*(-156) -331 + j*(-153) -208 + j*(-280) --66 + j*(-281) -538 + j*(-273) --308 + j*(-301) --190 + j*(-281) -202 + j*(180) --264 + j*(-189) --10 + j*(54) -62 + j*(142) -439 + j*(655) -284 + j*(249) -843 + j*(-920) --677 + j*(-1024) --1024 + j*(-893) --107 + j*(-51) -95 + j*(-706) --419 + j*(-285) --123 + j*(-179) -255 + j*(-683) --180 + j*(-551) --442 + j*(69) -212 + j*(77) --319 + j*(-716) --434 + j*(-381) -103 + j*(81) --23 + j*(-584) --216 + j*(1023) --1024 + j*(726) -1023 + j*(0) -23 + j*(-165) --64 + j*(-41) -590 + j*(-72) -0 + j*(-556) --101 + j*(-140) -257 + j*(-147) -0 + j*(-483) --28 + j*(-7) -184 + j*(34) -139 + j*(73) -201 + j*(0) -100 + j*(31) --39 + j*(-776) --1024 + j*(129) --846 + j*(744) -718 + j*(1023) -642 + j*(0) --25 + j*(-77) -187 + j*(1023) -849 + j*(41) -112 + j*(-123) -49 + j*(693) -289 + j*(80) -806 + j*(-202) -0 + j*(53) -244 + j*(333) -1023 + j*(0) -25 + j*(56) -907 + j*(878) -1023 + j*(0) -638 + j*(-1024) --616 + j*(-752) --848 + j*(-442) --128 + j*(-112) -525 + j*(-311) -630 + j*(-505) --147 + j*(-240) --235 + j*(-509) --1024 + j*(-252) --94 + j*(495) -255 + j*(97) -367 + j*(-79) -219 + j*(-748) -107 + j*(109) --936 + j*(208) -0 + j*(293) -299 + j*(876) -1023 + j*(0) -0 + j*(-1024) --156 + j*(-32) -290 + j*(0) -0 + j*(-1024) --273 + j*(-83) -467 + j*(-166) -7 + j*(-683) --246 + j*(-210) -320 + j*(0) -0 + j*(-651) -0 + j*(102) -182 + j*(73) --241 + j*(999) -384 + j*(-51) -1023 + j*(746) -86 + j*(-837) --418 + j*(-658) --149 + j*(33) -587 + j*(-59) -102 + j*(-475) --308 + j*(-82) -758 + j*(-418) --316 + j*(-1024) --390 + j*(-460) -339 + j*(-158) -89 + j*(-86) --865 + j*(-219) -235 + j*(-50) -125 + j*(-189) -79 + j*(0) -0 + j*(442) -0 + j*(-735) -1023 + j*(324) --113 + j*(8) -0 + j*(130) -264 + j*(-49) --325 + j*(-61) -257 + j*(-672) --152 + j*(0) --399 + j*(-3) -336 + j*(-251) --406 + j*(682) -138 + j*(314) -219 + j*(-121) --158 + j*(698) --124 + j*(1023) -1023 + j*(1023) -1023 + j*(-258) -1023 + j*(-1024) --358 + j*(55) -120 + j*(-139) --330 + j*(-866) --874 + j*(50) -562 + j*(-682) --833 + j*(-1024) --1024 + j*(-192) -707 + j*(-1024) --1024 + j*(-901) --1024 + j*(257) -895 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(64) -869 + j*(-801) -661 + j*(1023) -1023 + j*(53) -621 + j*(-698) -339 + j*(309) -1023 + j*(-67) --304 + j*(-537) -503 + j*(46) -409 + j*(-624) --160 + j*(-1024) -703 + j*(-497) --398 + j*(-54) --392 + j*(0) --139 + j*(1023) -1023 + j*(333) -896 + j*(-318) -1023 + j*(-1024) -637 + j*(1023) -1023 + j*(436) -1023 + j*(-1024) -263 + j*(1023) -1023 + j*(152) -1023 + j*(-1024) --322 + j*(1023) -1023 + j*(975) -1023 + j*(-6) --619 + j*(1023) -969 + j*(972) -1023 + j*(-588) -86 + j*(-537) --834 + j*(-1024) --494 + j*(-438) --1016 + j*(239) -183 + j*(-1024) --55 + j*(-1024) --1024 + j*(-649) -1023 + j*(-424) -989 + j*(-1024) --814 + j*(-1024) -1023 + j*(278) -1023 + j*(-1024) --266 + j*(-1024) -1023 + j*(722) -1023 + j*(-885) --493 + j*(-1024) --706 + j*(-1024) --1024 + j*(675) --722 + j*(783) -571 + j*(893) --1024 + j*(0) --176 + j*(808) -9 + j*(564) -124 + j*(29) -179 + j*(0) -9 + j*(-792) -502 + j*(42) -623 + j*(0) -24 + j*(-1024) -904 + j*(469) -1023 + j*(12) -6 + j*(-1024) --907 + j*(-611) --1024 + j*(0) --1024 + j*(1023) -715 + j*(1023) --1024 + j*(-674) --1024 + j*(1023) -119 + j*(1023) --954 + j*(-840) --1024 + j*(521) --1024 + j*(718) --554 + j*(-1024) --789 + j*(-858) --1024 + j*(78) -371 + j*(-1024) --92 + j*(-1024) --1024 + j*(7) --1024 + j*(357) -112 + j*(1023) -866 + j*(1023) -1023 + j*(-404) --896 + j*(1023) -182 + j*(1023) -1023 + j*(184) --361 + j*(677) --641 + j*(211) -267 + j*(-172) --582 + j*(-65) --19 + j*(236) --1024 + j*(735) -195 + j*(-710) --805 + j*(-981) --1024 + j*(1023) --173 + j*(1023) -1023 + j*(1023) -1023 + j*(698) -1023 + j*(-874) --108 + j*(1023) -1023 + j*(1023) -1023 + j*(-436) --633 + j*(1023) -991 + j*(1023) -1023 + j*(-590) --1024 + j*(1023) -613 + j*(1023) -1023 + j*(971) --1024 + j*(1023) --637 + j*(1023) -1023 + j*(681) -1023 + j*(-187) -241 + j*(-1024) --73 + j*(0) --201 + j*(474) -0 + j*(-456) -317 + j*(0) -576 + j*(140) --369 + j*(-516) -261 + j*(1023) -89 + j*(36) --921 + j*(952) -429 + j*(1023) -1023 + j*(641) --1024 + j*(962) -666 + j*(1023) -1023 + j*(84) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-944) --733 + j*(903) --993 + j*(-1024) --1024 + j*(-112) --441 + j*(1023) --1024 + j*(-1024) --1024 + j*(543) --971 + j*(1023) --1024 + j*(-883) --1024 + j*(1023) --439 + j*(1023) --1024 + j*(-874) --1024 + j*(726) --703 + j*(1023) -1023 + j*(977) -1023 + j*(902) -846 + j*(-1024) --571 + j*(-992) -1023 + j*(-72) -905 + j*(-826) --85 + j*(-786) -470 + j*(-527) --474 + j*(-725) --865 + j*(122) --357 + j*(183) --267 + j*(596) -658 + j*(1010) --822 + j*(-349) --1024 + j*(610) -718 + j*(953) -310 + j*(1023) -1023 + j*(-753) -1023 + j*(-847) --603 + j*(-1024) -1023 + j*(-124) -1023 + j*(-1024) -94 + j*(-1024) -1023 + j*(646) -1023 + j*(-1024) -21 + j*(-1024) -870 + j*(1023) -1023 + j*(-78) -1023 + j*(-1024) --173 + j*(1023) -773 + j*(1023) -621 + j*(-559) -1000 + j*(-206) -784 + j*(-1024) --900 + j*(-1024) --1024 + j*(-44) -1023 + j*(-1024) -330 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-916) -670 + j*(-1024) --1024 + j*(-980) -1023 + j*(472) -1023 + j*(-1024) --185 + j*(-1024) -1023 + j*(837) -1023 + j*(-391) --1024 + j*(-832) --266 + j*(571) --63 + j*(852) -876 + j*(-250) -666 + j*(555) --825 + j*(221) -1023 + j*(951) -773 + j*(131) --599 + j*(456) -1023 + j*(929) -405 + j*(73) --390 + j*(1023) -1023 + j*(871) -1023 + j*(-554) --630 + j*(1023) -1023 + j*(1023) -1023 + j*(-445) -901 + j*(-1024) -270 + j*(-1024) --1024 + j*(144) --1024 + j*(366) -516 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-527) -934 + j*(-436) -1023 + j*(-1024) --846 + j*(-735) -1023 + j*(-45) -1023 + j*(-1024) --347 + j*(-1024) -1023 + j*(644) -1023 + j*(-1024) -871 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-146) --1024 + j*(1023) -428 + j*(893) --1024 + j*(-860) --857 + j*(550) --28 + j*(456) --707 + j*(189) -150 + j*(517) --82 + j*(303) -651 + j*(137) -754 + j*(-1016) --309 + j*(-1024) -941 + j*(548) -668 + j*(-1024) --1013 + j*(-1024) --1024 + j*(-238) --1024 + j*(1023) -898 + j*(1023) -998 + j*(999) --1024 + j*(1023) --392 + j*(1023) -1023 + j*(1013) --1024 + j*(1023) --543 + j*(1023) -1023 + j*(1023) --1024 + j*(765) --485 + j*(1023) -1023 + j*(1023) --975 + j*(858) --328 + j*(1023) -986 + j*(1023) -215 + j*(369) -938 + j*(-1024) --1024 + j*(-1024) --1024 + j*(588) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(29) -851 + j*(-808) -507 + j*(-1024) --1024 + j*(-455) -1023 + j*(-332) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(434) -1023 + j*(-1024) -639 + j*(-1024) --1024 + j*(-164) --1024 + j*(193) --839 + j*(1023) -407 + j*(1023) --1024 + j*(-372) --1024 + j*(1023) --34 + j*(842) -103 + j*(503) -1023 + j*(40) -322 + j*(-452) -330 + j*(-80) -861 + j*(114) -402 + j*(-1024) -763 + j*(484) -1023 + j*(424) -295 + j*(-1024) --335 + j*(-1024) --1024 + j*(535) --1024 + j*(1023) -874 + j*(1023) --1024 + j*(-602) --1024 + j*(1023) -868 + j*(1023) --1024 + j*(1023) --805 + j*(1023) -1023 + j*(947) --1024 + j*(244) --380 + j*(1016) -749 + j*(669) --993 + j*(606) -1023 + j*(1023) -1023 + j*(17) -481 + j*(-1024) --919 + j*(-1024) --1024 + j*(-360) --1024 + j*(1012) --470 + j*(-1024) --1024 + j*(-645) --1024 + j*(784) -171 + j*(-922) --864 + j*(-307) --574 + j*(306) -927 + j*(-1002) --83 + j*(-1024) --1024 + j*(-1024) -1023 + j*(35) -337 + j*(-1024) -1 + j*(-930) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH0_sync_4xf1.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH0_sync_4xf1.m deleted file mode 100644 index 4a954beb84ecdb5eb9660d9a6648f5f2eb852bf8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH0_sync_4xf1.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch0_sync_f_4x1 = [-1024 + j*(311) -76 + j*(-1024) --1024 + j*(-726) --1024 + j*(1023) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(504) -923 + j*(-741) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(88) --871 + j*(1023) -1023 + j*(1023) -1023 + j*(-51) --1024 + j*(32) --668 + j*(1023) -365 + j*(1023) --1024 + j*(-548) --1024 + j*(24) --175 + j*(1023) --235 + j*(1023) -1023 + j*(429) -1023 + j*(-1024) --732 + j*(-1024) -1023 + j*(1023) -1023 + j*(-1024) --421 + j*(-1024) -1023 + j*(1023) -1023 + j*(-434) -947 + j*(-1024) -1023 + j*(938) -1023 + j*(-1024) -779 + j*(-1024) -773 + j*(923) -1023 + j*(-428) -1023 + j*(-1024) --706 + j*(-1024) --1024 + j*(408) -389 + j*(1023) -879 + j*(645) --1024 + j*(1023) -550 + j*(1023) -980 + j*(849) --1024 + j*(1023) -750 + j*(1023) -1023 + j*(612) --1024 + j*(622) -319 + j*(1023) -1023 + j*(752) --1024 + j*(686) -661 + j*(1023) -1023 + j*(837) -956 + j*(-820) -123 + j*(-1024) --1024 + j*(-390) --1023 + j*(720) --741 + j*(-1024) --1024 + j*(-249) --982 + j*(1023) --1024 + j*(909) -609 + j*(-159) -1023 + j*(798) --1024 + j*(-1024) --1024 + j*(1023) --273 + j*(1023) --1024 + j*(-1024) --1024 + j*(1023) -107 + j*(1023) -1023 + j*(818) -1023 + j*(-1024) -1023 + j*(-1024) --1010 + j*(-1024) -1023 + j*(-325) -1023 + j*(-1024) --1015 + j*(-817) -284 + j*(726) -825 + j*(-467) -759 + j*(-185) --19 + j*(-654) --159 + j*(-328) -362 + j*(496) --711 + j*(-717) --1024 + j*(-253) -1023 + j*(1023) -28 + j*(1023) -1023 + j*(-1024) -489 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-402) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(678) -1023 + j*(-759) --339 + j*(-1024) -1023 + j*(452) -1023 + j*(-1024) --542 + j*(-1024) -1023 + j*(754) -1023 + j*(-1024) -1023 + j*(-1024) --747 + j*(-1024) --1024 + j*(-956) --689 + j*(1023) -147 + j*(392) --839 + j*(70) --345 + j*(-43) --580 + j*(-133) --138 + j*(1023) -76 + j*(-891) -974 + j*(-1024) -1020 + j*(-255) -1023 + j*(-702) -122 + j*(-1024) -959 + j*(329) -1023 + j*(-392) -1013 + j*(-1024) --918 + j*(-1024) --1024 + j*(265) --1024 + j*(1023) -336 + j*(971) --1024 + j*(-590) --1024 + j*(1023) --541 + j*(1023) --1024 + j*(-165) --1024 + j*(942) -827 + j*(1023) --66 + j*(-1024) --1024 + j*(-1024) --1024 + j*(775) -407 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-896) --1024 + j*(1023) -388 + j*(1023) -1023 + j*(826) -988 + j*(-964) -541 + j*(1023) -1023 + j*(1001) -837 + j*(-904) --922 + j*(830) --132 + j*(746) -946 + j*(193) -364 + j*(606) -1023 + j*(638) -1023 + j*(-1024) -500 + j*(498) -1023 + j*(539) -220 + j*(-1024) --1024 + j*(-757) --1024 + j*(1014) --89 + j*(1023) -1023 + j*(779) --1024 + j*(908) --596 + j*(1023) -982 + j*(1023) --1024 + j*(404) --1024 + j*(1023) -1023 + j*(1023) --1024 + j*(-620) --1024 + j*(1023) -361 + j*(1023) --1024 + j*(-927) --1024 + j*(904) --967 + j*(1023) -950 + j*(1023) -1023 + j*(-1018) -1023 + j*(-1024) --618 + j*(-1024) -1023 + j*(811) -1023 + j*(-1024) --397 + j*(-1024) -508 + j*(1023) -1023 + j*(553) -1023 + j*(-1024) -1023 + j*(754) -1023 + j*(-506) -1023 + j*(-1024) -900 + j*(699) -1023 + j*(394) -1023 + j*(313) -396 + j*(-1024) -135 + j*(-1024) -63 + j*(1023) -920 + j*(360) --1024 + j*(1023) -488 + j*(1023) -1023 + j*(182) --1024 + j*(786) -22 + j*(1023) -1023 + j*(411) --803 + j*(734) -446 + j*(1023) -1023 + j*(33) --844 + j*(668) -211 + j*(1023) -1023 + j*(-1) -576 + j*(-1024) --1 + j*(-887) --1024 + j*(-767) --729 + j*(219) -329 + j*(-1024) --895 + j*(-370) --678 + j*(-189) --429 + j*(-118) --422 + j*(-774) -287 + j*(-35) -796 + j*(-262) -789 + j*(-160) -664 + j*(-1024) -807 + j*(244) -977 + j*(-1024) --313 + j*(-1024) --1024 + j*(-436) --606 + j*(1023) --146 + j*(1023) -991 + j*(706) --1024 + j*(-189) --272 + j*(1023) -805 + j*(670) --1024 + j*(-257) --481 + j*(1017) -519 + j*(1023) --1024 + j*(65) --227 + j*(747) -32 + j*(1023) --1024 + j*(247) --658 + j*(665) -986 + j*(-630) --568 + j*(-228) --66 + j*(-483) --1015 + j*(764) --515 + j*(803) --1024 + j*(-1024) --1024 + j*(542) --577 + j*(1023) --1024 + j*(-569) --1024 + j*(576) -394 + j*(1023) --1024 + j*(-1024) --1024 + j*(911) -124 + j*(1023) --954 + j*(-1024) --1024 + j*(897) --90 + j*(837) -1019 + j*(1023) -509 + j*(144) -568 + j*(93) --165 + j*(-647) --25 + j*(621) -385 + j*(44) -174 + j*(-119) --1024 + j*(648) --41 + j*(1023) -1023 + j*(839) --40 + j*(573) --2 + j*(1023) -1023 + j*(0) --627 + j*(533) -199 + j*(1023) -1023 + j*(998) -1023 + j*(-1024) --717 + j*(-1024) --1024 + j*(-1020) --836 + j*(687) --320 + j*(-1024) --1024 + j*(-207) --1024 + j*(876) --992 + j*(-1024) --1024 + j*(255) --345 + j*(1023) --584 + j*(-1024) --1024 + j*(217) --155 + j*(1023) --742 + j*(-1024) --1024 + j*(-1) --260 + j*(1023) --1 + j*(1023) -1023 + j*(-1) -244 + j*(-739) --450 + j*(-964) -847 + j*(148) --82 + j*(-60) --404 + j*(-725) --505 + j*(229) --190 + j*(1001) -575 + j*(741) --41 + j*(-591) --772 + j*(1023) --340 + j*(1023) --586 + j*(-824) --1024 + j*(-333) --808 + j*(1023) -432 + j*(233) -1023 + j*(-16) -754 + j*(-582) --470 + j*(-588) -170 + j*(425) --68 + j*(-380) --262 + j*(-110) -71 + j*(-166) --1024 + j*(-501) -153 + j*(532) --1 + j*(-256) --468 + j*(-191) -716 + j*(43) --331 + j*(-738) --280 + j*(707) -886 + j*(708) -1023 + j*(539) -1023 + j*(-1024) -150 + j*(-1024) --727 + j*(-1024) -1023 + j*(-502) -1023 + j*(-1024) --592 + j*(-1024) -867 + j*(570) -1023 + j*(-510) -504 + j*(-806) -1023 + j*(430) -737 + j*(-627) -50 + j*(-916) -725 + j*(146) -719 + j*(572) -426 + j*(-1024) --619 + j*(502) --836 + j*(-74) -616 + j*(208) --28 + j*(-522) --1 + j*(254) -544 + j*(-1) --173 + j*(-1024) --95 + j*(215) -398 + j*(301) -420 + j*(-97) -948 + j*(309) -326 + j*(-151) --232 + j*(-36) -509 + j*(165) -116 + j*(-550) -93 + j*(142) --505 + j*(-142) --1 + j*(-158) -72 + j*(-1) -11 + j*(-223) -141 + j*(255) --173 + j*(-638) --195 + j*(-269) --381 + j*(-441) --1 + j*(-12) -11 + j*(352) -716 + j*(-120) -38 + j*(-196) --348 + j*(-920) -386 + j*(-43) -805 + j*(-400) --149 + j*(-449) --649 + j*(293) --341 + j*(-1) -653 + j*(308) -59 + j*(-312) --282 + j*(305) -833 + j*(-1) -131 + j*(-522) --428 + j*(-308) --902 + j*(573) -60 + j*(486) -183 + j*(71) --764 + j*(-1) -131 + j*(105) -368 + j*(-15) --613 + j*(-1) --378 + j*(283) --110 + j*(-172) -386 + j*(-1) -417 + j*(-93) -157 + j*(-260) -240 + j*(154) -358 + j*(-233) -127 + j*(-643) --1024 + j*(-458) --1024 + j*(962) -532 + j*(1023) -627 + j*(233) -419 + j*(94) --51 + j*(22) -284 + j*(37) -34 + j*(-523) --1024 + j*(184) -560 + j*(467) -512 + j*(-100) -348 + j*(-1) -22 + j*(-217) -72 + j*(35) -249 + j*(-1) --40 + j*(-609) --100 + j*(-1024) --927 + j*(-66) --760 + j*(888) -775 + j*(72) --302 + j*(-1) --1 + j*(-30) -482 + j*(-105) --397 + j*(-1) --366 + j*(143) --624 + j*(-345) --615 + j*(-1) --1 + j*(288) -313 + j*(-283) -167 + j*(290) -316 + j*(219) -332 + j*(-621) -230 + j*(-157) --670 + j*(1023) --201 + j*(-218) -583 + j*(349) --525 + j*(28) --189 + j*(104) -339 + j*(67) -157 + j*(-383) --537 + j*(-162) -208 + j*(-437) --352 + j*(667) --455 + j*(170) -230 + j*(-184) --736 + j*(240) --269 + j*(971) -288 + j*(-519) --963 + j*(-590) --787 + j*(-763) -108 + j*(1023) -527 + j*(296) --150 + j*(647) --317 + j*(465) -305 + j*(4) --592 + j*(752) --1 + j*(-80) -146 + j*(1023) -311 + j*(-1) -928 + j*(-960) -210 + j*(-307) -710 + j*(120) -824 + j*(-514) -303 + j*(-710) -316 + j*(-1024) -33 + j*(329) --1024 + j*(489) -749 + j*(498) -493 + j*(-717) -182 + j*(-416) -530 + j*(220) -446 + j*(-425) --154 + j*(-1024) --411 + j*(-80) --1024 + j*(835) --3 + j*(-127) -414 + j*(8) --431 + j*(-1) --1 + j*(384) -505 + j*(-304) -213 + j*(-1) --268 + j*(742) --397 + j*(-220) -383 + j*(413) --1 + j*(-77) -201 + j*(-182) -316 + j*(108) --1 + j*(-666) --328 + j*(362) --13 + j*(178) -260 + j*(-245) --862 + j*(-230) -384 + j*(-94) -266 + j*(-1024) --45 + j*(461) -559 + j*(-328) --224 + j*(-612) -19 + j*(886) --205 + j*(556) -342 + j*(546) --244 + j*(-893) --684 + j*(697) -274 + j*(203) --1006 + j*(-820) --1 + j*(309) --350 + j*(92) -182 + j*(-1) --1 + j*(669) -369 + j*(-45) --960 + j*(-1) -85 + j*(348) -389 + j*(-329) --538 + j*(7) --2 + j*(-1) --1 + j*(689) -273 + j*(627) --24 + j*(193) -353 + j*(328) -213 + j*(322) --826 + j*(250) -259 + j*(-1) --1 + j*(-76) --180 + j*(-341) --176 + j*(-129) -237 + j*(89) -56 + j*(-890) --591 + j*(-139) -119 + j*(-224) -470 + j*(-1024) --307 + j*(348) --940 + j*(188) -281 + j*(359) -392 + j*(-76) --193 + j*(-312) -275 + j*(283) --355 + j*(-668) --1 + j*(966) --901 + j*(0) -837 + j*(5) -0 + j*(231) -380 + j*(196) --458 + j*(-196) --359 + j*(346) -640 + j*(36) -53 + j*(0) --922 + j*(511) -1 + j*(74) --30 + j*(522) -394 + j*(-78) --269 + j*(26) -36 + j*(229) --41 + j*(-170) -174 + j*(-143) -1023 + j*(-348) --491 + j*(-416) --447 + j*(-100) -199 + j*(125) -0 + j*(-81) -133 + j*(-80) -482 + j*(-16) -9 + j*(-142) -85 + j*(730) --358 + j*(0) -41 + j*(465) -88 + j*(-76) -663 + j*(0) -83 + j*(193) -97 + j*(710) -919 + j*(0) -789 + j*(-143) -435 + j*(-600) -361 + j*(441) -208 + j*(100) --58 + j*(666) -306 + j*(414) -596 + j*(-53) --191 + j*(-88) --1024 + j*(261) -0 + j*(123) -37 + j*(529) --208 + j*(34) -0 + j*(-613) -87 + j*(273) --662 + j*(159) -0 + j*(-2) --137 + j*(1023) --124 + j*(305) -0 + j*(-503) -164 + j*(242) -740 + j*(-151) --185 + j*(-687) -346 + j*(212) -111 + j*(-702) --1024 + j*(-874) --497 + j*(486) --117 + j*(242) --155 + j*(60) --480 + j*(0) -11 + j*(81) --497 + j*(694) --25 + j*(0) -518 + j*(613) -0 + j*(-857) -455 + j*(0) -136 + j*(53) --380 + j*(-544) -157 + j*(204) -416 + j*(8) -157 + j*(-486) --826 + j*(209) --381 + j*(224) --8 + j*(429) --116 + j*(-312) --341 + j*(-260) -59 + j*(165) --265 + j*(-745) -926 + j*(0) --643 + j*(-205) --134 + j*(-953) --286 + j*(119) -32 + j*(-19) -0 + j*(-883) --376 + j*(-448) --36 + j*(-173) -323 + j*(-860) --627 + j*(-1024) --1003 + j*(0) -0 + j*(360) -0 + j*(-760) --537 + j*(0) -164 + j*(155) -452 + j*(-48) --24 + j*(-72) --198 + j*(414) --139 + j*(297) -363 + j*(-408) -194 + j*(132) --281 + j*(-200) --375 + j*(133) -420 + j*(120) --98 + j*(-491) --375 + j*(423) --459 + j*(398) --35 + j*(379) --133 + j*(179) --762 + j*(-298) -119 + j*(137) -0 + j*(-53) -319 + j*(137) --1024 + j*(0) -0 + j*(460) --356 + j*(234) -194 + j*(101) -0 + j*(-90) --112 + j*(503) -432 + j*(116) -0 + j*(-765) --63 + j*(-733) --1024 + j*(516) --68 + j*(359) -164 + j*(-632) --125 + j*(-323) -99 + j*(121) --268 + j*(-218) --638 + j*(1023) -711 + j*(577) -1023 + j*(5) -809 + j*(-1024) -198 + j*(-23) -909 + j*(0) -374 + j*(-618) -480 + j*(-75) -905 + j*(45) -1023 + j*(-783) --428 + j*(-721) -60 + j*(650) -24 + j*(-628) --369 + j*(-492) -187 + j*(407) -91 + j*(518) -579 + j*(-670) -773 + j*(-1024) --572 + j*(-874) --857 + j*(0) -160 + j*(275) -0 + j*(346) --386 + j*(0) -362 + j*(240) -0 + j*(-431) --526 + j*(-112) --346 + j*(407) --69 + j*(400) -0 + j*(564) --204 + j*(0) -163 + j*(240) -0 + j*(304) --798 + j*(0) -439 + j*(0) -0 + j*(-366) -312 + j*(-477) -186 + j*(126) -176 + j*(413) -79 + j*(-393) -399 + j*(48) -985 + j*(-280) -416 + j*(-491) --681 + j*(-633) -72 + j*(577) -101 + j*(765) --33 + j*(-216) -260 + j*(388) -54 + j*(640) --414 + j*(146) -75 + j*(477) -124 + j*(1023) --64 + j*(-331) -214 + j*(75) -0 + j*(202) -497 + j*(0) -437 + j*(-236) -693 + j*(-201) -995 + j*(-178) --362 + j*(-689) -597 + j*(1023) -1023 + j*(156) -469 + j*(-1024) -850 + j*(1023) -1023 + j*(246) -974 + j*(-1024) --1024 + j*(-814) --1024 + j*(281) --440 + j*(1023) -836 + j*(1023) --1024 + j*(285) --574 + j*(1023) -903 + j*(1023) --96 + j*(-910) -656 + j*(-419) --651 + j*(179) --1024 + j*(762) --52 + j*(1023) -1023 + j*(568) --822 + j*(968) -772 + j*(641) -1023 + j*(-885) --158 + j*(-1024) --1024 + j*(-919) --1024 + j*(338) --1024 + j*(1023) --145 + j*(-1024) --1024 + j*(0) --1024 + j*(1023) -0 + j*(-1024) --1024 + j*(-1024) --1024 + j*(516) -88 + j*(-1024) --1024 + j*(-1024) --1024 + j*(349) -719 + j*(-1024) --325 + j*(-1024) --1024 + j*(-294) --1024 + j*(227) -813 + j*(482) -1014 + j*(1023) -884 + j*(8) --546 + j*(1023) -439 + j*(1023) -863 + j*(408) --141 + j*(-1007) --208 + j*(-40) --1024 + j*(260) --192 + j*(557) -0 + j*(-912) --125 + j*(0) -485 + j*(673) -0 + j*(-838) -252 + j*(-838) --1020 + j*(923) --1024 + j*(-659) --1024 + j*(1023) -871 + j*(1023) --1024 + j*(-407) --1024 + j*(1023) -903 + j*(1023) --518 + j*(-1024) --1024 + j*(518) --826 + j*(1023) --1024 + j*(-946) --1024 + j*(771) --225 + j*(1023) --1024 + j*(-872) --1024 + j*(12) --850 + j*(1023) --31 + j*(899) -328 + j*(170) -908 + j*(-1024) --820 + j*(-188) -1023 + j*(-43) --30 + j*(-1024) --872 + j*(388) -805 + j*(-454) --1008 + j*(-765) --1024 + j*(-109) -139 + j*(-733) --175 + j*(-1024) --1024 + j*(-19) -539 + j*(-794) --120 + j*(-1024) --1024 + j*(-659) --1024 + j*(678) --40 + j*(1023) -1023 + j*(496) -868 + j*(-427) -30 + j*(1023) -1013 + j*(567) -988 + j*(-54) -683 + j*(1023) -1023 + j*(-786) -651 + j*(-1024) --162 + j*(840) -1023 + j*(-211) -808 + j*(-998) -447 + j*(800) -864 + j*(-757) -683 + j*(-370) --1024 + j*(-1024) --808 + j*(33) --765 + j*(1023) -879 + j*(1023) --1024 + j*(-159) --1024 + j*(1023) -849 + j*(1023) --1024 + j*(-227) --724 + j*(1023) -123 + j*(1023) --1024 + j*(-930) --1024 + j*(1023) --39 + j*(1023) --1024 + j*(-845) --1024 + j*(845) --1024 + j*(1023) -105 + j*(1023) -935 + j*(332) -733 + j*(-513) --596 + j*(-290) -52 + j*(-356) --220 + j*(-146) --312 + j*(223) -1023 + j*(407) -459 + j*(353) --335 + j*(-629) --785 + j*(-545) --1024 + j*(413) --661 + j*(1023) --1024 + j*(-606) --1024 + j*(929) --556 + j*(1023) -1023 + j*(1023) -1023 + j*(-801) -1023 + j*(-1024) --1024 + j*(-871) -1023 + j*(4) -1023 + j*(-1024) --1024 + j*(-919) -1023 + j*(561) -1023 + j*(-1024) --451 + j*(-1024) -1023 + j*(185) -1023 + j*(-1024) --877 + j*(-1024) -1023 + j*(637) -1023 + j*(-1024) -883 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-914) --666 + j*(1023) -368 + j*(1023) --1024 + j*(-449) --1024 + j*(502) --235 + j*(1023) --593 + j*(-914) --1024 + j*(-63) --1024 + j*(937) --857 + j*(-1024) --1024 + j*(-778) --1024 + j*(742) -146 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-394) --1024 + j*(1023) -107 + j*(1023) -1023 + j*(1023) -1023 + j*(161) --1024 + j*(1023) -426 + j*(1023) -1023 + j*(1023) --1024 + j*(1023) -164 + j*(1023) -1023 + j*(1023) --1024 + j*(-248) --1024 + j*(1023) -1023 + j*(1023) --1024 + j*(-616) --947 + j*(1023) -1023 + j*(1023) -1023 + j*(974) -657 + j*(-1024) --742 + j*(-1024) --795 + j*(-388) -1023 + j*(-781) --64 + j*(-1024) --571 + j*(379) -166 + j*(-235) -0 + j*(561) --507 + j*(456) --978 + j*(-780) --1024 + j*(272) --618 + j*(1023) --976 + j*(-739) --1024 + j*(938) -142 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) --98 + j*(-1024) --1024 + j*(-678) -1023 + j*(-1004) --90 + j*(-1024) --1024 + j*(-361) -1023 + j*(-640) --13 + j*(-1024) --1024 + j*(-889) -795 + j*(-1024) --721 + j*(-1024) --1024 + j*(-693) -725 + j*(-917) --187 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --432 + j*(1023) -1023 + j*(-289) -268 + j*(-396) -558 + j*(1023) -1023 + j*(-221) --274 + j*(103) -712 + j*(138) -250 + j*(-799) --822 + j*(-410) -104 + j*(-917) --215 + j*(-1024) --1024 + j*(-32) -461 + j*(-890) --554 + j*(-1024) --966 + j*(161) --1024 + j*(867) -877 + j*(1023) -1023 + j*(702) -587 + j*(-539) -594 + j*(1023) -1023 + j*(801) -235 + j*(-21) -645 + j*(722) -749 + j*(679) --472 + j*(-807) --113 + j*(-510) --737 + j*(-827) --1024 + j*(-164) -327 + j*(-660) --1024 + j*(-1024) --1024 + j*(-381) --201 + j*(975) -829 + j*(1023) -1023 + j*(1023) -750 + j*(-504) --227 + j*(1023) -1023 + j*(1023) -556 + j*(19) --266 + j*(930) --250 + j*(966) -378 + j*(-225) --431 + j*(-321) -76 + j*(273) --660 + j*(-695) -41 + j*(-669) -485 + j*(-523) --214 + j*(53) --1024 + j*(290) -937 + j*(1023) -1023 + j*(518) -791 + j*(-1024) -770 + j*(1023) -1023 + j*(176) -976 + j*(-1020) -1023 + j*(1023) -1023 + j*(-560) -1023 + j*(-1024) -190 + j*(1023) -1023 + j*(180) -1023 + j*(-1024) -394 + j*(1023) -1023 + j*(-1024) -642 + j*(-1024) --1024 + j*(-1024) --1024 + j*(453) --177 + j*(495) -574 + j*(1023) --871 + j*(718) --884 + j*(853) -272 + j*(1023) --1024 + j*(440) --1024 + j*(970) -203 + j*(674) --1024 + j*(-1024) --599 + j*(835) --794 + j*(736) --282 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(304) -1023 + j*(-767) -219 + j*(1023) -1023 + j*(1023) -1023 + j*(-142) --792 + j*(1023) -1023 + j*(1023) -1023 + j*(-279) --1024 + j*(1023) -919 + j*(1023) -1023 + j*(693) --1024 + j*(1023) -463 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) -985 + j*(-1024) --1024 + j*(-1024) --1024 + j*(742) --609 + j*(-1024) --1024 + j*(-176) --1024 + j*(1023) -556 + j*(-334) --1024 + j*(-1024) --897 + j*(-364) --298 + j*(-1024) --1024 + j*(-89) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH1_sync_4xf0.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH1_sync_4xf0.m deleted file mode 100644 index be063e0c024e65771827856fb246b81f2ae323f5..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH1_sync_4xf0.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch1_sync_f_4x0 = [1023 + j*(-1024) --156 + j*(-826) --1024 + j*(-1024) --467 + j*(516) -18 + j*(-1024) --509 + j*(-160) -189 + j*(339) --748 + j*(-384) --446 + j*(1023) -470 + j*(414) --817 + j*(750) -796 + j*(1023) -1023 + j*(402) --929 + j*(881) -1023 + j*(1023) -1023 + j*(985) -1023 + j*(-1024) --876 + j*(-1024) --1024 + j*(-725) --922 + j*(1023) --731 + j*(-1024) --1024 + j*(-519) --856 + j*(1023) --1024 + j*(-1024) --1024 + j*(-359) --763 + j*(1023) --1024 + j*(-1024) --1024 + j*(523) --777 + j*(1023) --1024 + j*(-1024) --1024 + j*(231) --752 + j*(1023) -1023 + j*(1023) -1023 + j*(-415) -847 + j*(-1024) --838 + j*(-806) -1023 + j*(-678) -636 + j*(-1024) --666 + j*(-545) -1023 + j*(-407) -540 + j*(-708) --615 + j*(-349) --69 + j*(-413) --776 + j*(742) --488 + j*(1023) --575 + j*(-588) --1024 + j*(289) -102 + j*(1023) -1023 + j*(1023) -1023 + j*(-353) --74 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-49) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-484) --366 + j*(-1024) --1024 + j*(-1024) -1023 + j*(388) -1023 + j*(-1024) --758 + j*(-1024) -1023 + j*(650) -1023 + j*(-1024) -786 + j*(-1024) --834 + j*(-1024) --1024 + j*(-514) --1024 + j*(1023) -327 + j*(1023) --1024 + j*(-656) --1024 + j*(1016) --404 + j*(1023) --967 + j*(-1024) --1024 + j*(-55) --1024 + j*(1023) -46 + j*(-1024) --1024 + j*(-909) --1024 + j*(181) -616 + j*(-1024) --286 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(-348) --246 + j*(1023) -818 + j*(1023) -928 + j*(246) --1024 + j*(426) --1024 + j*(995) -163 + j*(808) --472 + j*(-469) -332 + j*(-318) --1024 + j*(-58) -198 + j*(-935) --370 + j*(-1024) --1024 + j*(-341) --1024 + j*(1023) --484 + j*(1023) -1023 + j*(1023) -1023 + j*(-636) --587 + j*(1023) -847 + j*(1023) -1023 + j*(154) --1024 + j*(1023) -351 + j*(1023) -1023 + j*(491) --1024 + j*(805) --261 + j*(1023) -706 + j*(1023) --1024 + j*(-275) --1024 + j*(1023) -622 + j*(1023) -1023 + j*(873) -1023 + j*(-1024) -549 + j*(-1024) --94 + j*(-1024) -1023 + j*(664) -1023 + j*(55) -965 + j*(-1024) -315 + j*(1023) -1023 + j*(906) -1023 + j*(-714) --409 + j*(1023) -1023 + j*(1023) -1023 + j*(-50) --861 + j*(1023) -1023 + j*(1023) -1023 + j*(-1017) -1023 + j*(-963) --1009 + j*(-1024) --1024 + j*(-1024) --849 + j*(690) -101 + j*(-1024) --1024 + j*(-650) --653 + j*(804) --388 + j*(-1008) -1023 + j*(-454) --387 + j*(1023) --814 + j*(-847) --982 + j*(1023) --352 + j*(1023) --887 + j*(-802) --1024 + j*(-422) --826 + j*(1023) -773 + j*(821) -1023 + j*(-764) -105 + j*(-1024) --838 + j*(-809) -1023 + j*(-494) --216 + j*(-1024) --930 + j*(-677) -1023 + j*(-1024) --612 + j*(-1024) --1024 + j*(-690) -766 + j*(-859) --749 + j*(-1024) --1024 + j*(248) -704 + j*(-1006) --312 + j*(-1024) --1024 + j*(262) --1024 + j*(436) -52 + j*(1023) -1023 + j*(-876) -1023 + j*(-813) -119 + j*(1023) -1023 + j*(1023) -1023 + j*(-230) --743 + j*(1023) -428 + j*(1023) -1023 + j*(445) --1024 + j*(642) --131 + j*(1023) -722 + j*(1023) --1024 + j*(-302) --1024 + j*(643) --560 + j*(1023) -1023 + j*(1023) -1023 + j*(164) -674 + j*(-1024) --389 + j*(-1024) -1023 + j*(498) -1023 + j*(-1024) -276 + j*(-1024) -56 + j*(-67) -1023 + j*(-674) --276 + j*(351) --363 + j*(530) -436 + j*(853) -325 + j*(640) --850 + j*(-204) --1024 + j*(796) -123 + j*(1023) -739 + j*(239) -1023 + j*(-734) -280 + j*(-1024) --849 + j*(-1024) -1023 + j*(-123) -378 + j*(-1024) --678 + j*(-1024) -1023 + j*(449) -660 + j*(-600) --317 + j*(-1024) -1023 + j*(143) -261 + j*(-885) --1 + j*(-865) -864 + j*(-360) --320 + j*(-766) --1024 + j*(-18) --1024 + j*(526) -1023 + j*(1023) -1023 + j*(563) -1023 + j*(-1024) -1023 + j*(1023) -1023 + j*(302) -1023 + j*(-1024) --139 + j*(1023) -1023 + j*(1023) -1023 + j*(-587) --480 + j*(1023) -1023 + j*(539) -1023 + j*(-135) --874 + j*(1023) -1021 + j*(1023) -1023 + j*(181) -219 + j*(-963) --329 + j*(-1024) --1024 + j*(-195) --750 + j*(192) -108 + j*(-1024) --620 + j*(-9) --188 + j*(-123) --650 + j*(37) -1023 + j*(-1024) -492 + j*(761) --491 + j*(221) --423 + j*(613) -159 + j*(1023) --835 + j*(-220) --753 + j*(885) -207 + j*(1023) -663 + j*(869) -1023 + j*(-209) -91 + j*(-1024) --417 + j*(-1024) -1023 + j*(73) -1023 + j*(-928) -296 + j*(-1024) -1023 + j*(1023) -1023 + j*(-204) -954 + j*(-1024) -705 + j*(1023) -1023 + j*(383) -1023 + j*(-1024) --318 + j*(1023) -1023 + j*(1023) -1023 + j*(255) -1023 + j*(-1024) --1 + j*(-1024) --717 + j*(-1024) --1024 + j*(-62) -225 + j*(-1024) --1 + j*(-1024) --1024 + j*(-597) -973 + j*(143) -1023 + j*(-1024) -127 + j*(-848) -1023 + j*(682) -972 + j*(-1024) -607 + j*(-1024) -1023 + j*(962) -1016 + j*(-831) -147 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) -53 + j*(1023) -856 + j*(680) --898 + j*(622) -188 + j*(939) -836 + j*(327) --840 + j*(182) -436 + j*(1023) -848 + j*(304) --720 + j*(1023) -1023 + j*(920) -1023 + j*(403) --861 + j*(1023) -915 + j*(1023) -1023 + j*(446) -1023 + j*(-1024) -299 + j*(-1024) --1024 + j*(-753) --830 + j*(599) -519 + j*(-915) --466 + j*(-1024) --453 + j*(168) --493 + j*(319) --492 + j*(989) -995 + j*(130) --155 + j*(575) --1 + j*(1023) -1023 + j*(-1) --543 + j*(921) -589 + j*(1023) -1023 + j*(-445) -1023 + j*(-1024) --386 + j*(-1024) --1024 + j*(287) --1024 + j*(795) --443 + j*(-1024) --1024 + j*(-693) --1024 + j*(504) -616 + j*(-1024) --1024 + j*(-1024) --1024 + j*(79) -417 + j*(-807) --503 + j*(-214) --575 + j*(-3) -182 + j*(-248) -254 + j*(-456) --1 + j*(-86) -274 + j*(-157) --615 + j*(-1) --1 + j*(-596) --372 + j*(92) -234 + j*(-15) --25 + j*(-710) --399 + j*(27) -447 + j*(-77) --864 + j*(-1024) --69 + j*(-303) -337 + j*(-328) --1 + j*(-394) --1 + j*(-44) -198 + j*(-159) --313 + j*(-1) --308 + j*(-415) --267 + j*(-139) --446 + j*(-175) --618 + j*(498) --112 + j*(-49) -66 + j*(-635) --589 + j*(204) --225 + j*(-107) -414 + j*(-1024) --495 + j*(-666) --1024 + j*(-276) -228 + j*(-89) --770 + j*(164) --1 + j*(71) -128 + j*(-29) --753 + j*(348) --1 + j*(-169) --1024 + j*(1023) -504 + j*(-78) -718 + j*(1023) --60 + j*(-52) --631 + j*(147) --1 + j*(246) --41 + j*(-120) --544 + j*(136) --1 + j*(550) -290 + j*(567) -175 + j*(-1) --59 + j*(-102) --1 + j*(531) -102 + j*(8) --1024 + j*(412) --96 + j*(278) -1023 + j*(800) -272 + j*(-174) --2 + j*(-156) -3 + j*(-65) --517 + j*(-422) --109 + j*(304) -3 + j*(-132) -1023 + j*(-299) -800 + j*(530) --465 + j*(-976) -94 + j*(114) --240 + j*(-1) -78 + j*(501) -27 + j*(95) --251 + j*(-338) -84 + j*(88) -38 + j*(332) --138 + j*(-96) --1 + j*(767) --64 + j*(-3) --609 + j*(-1) -409 + j*(-1) --78 + j*(-67) -58 + j*(-278) -373 + j*(-737) --228 + j*(-10) -107 + j*(0) --335 + j*(-154) --171 + j*(-1) -71 + j*(-6) --1 + j*(-583) --868 + j*(-1) --1024 + j*(111) --61 + j*(1023) -682 + j*(817) -59 + j*(-77) --110 + j*(664) --252 + j*(642) -95 + j*(-115) -401 + j*(-487) --600 + j*(1023) --699 + j*(-459) -12 + j*(149) --176 + j*(-87) --17 + j*(54) --24 + j*(92) --564 + j*(-456) -71 + j*(609) --900 + j*(956) -964 + j*(-1024) -495 + j*(-32) --24 + j*(-30) -23 + j*(166) --99 + j*(-569) -13 + j*(-23) -41 + j*(312) --1 + j*(615) -216 + j*(-1) -25 + j*(83) --1 + j*(281) -942 + j*(-1) --7 + j*(49) --1 + j*(167) --1 + j*(-1) --1024 + j*(831) --1 + j*(-266) -781 + j*(194) --2 + j*(-41) --1 + j*(260) -232 + j*(105) -32 + j*(-70) -472 + j*(-475) -813 + j*(-300) --547 + j*(-617) -3 + j*(70) --332 + j*(-91) --126 + j*(-1) --22 + j*(24) --381 + j*(-421) -1023 + j*(102) --591 + j*(223) -161 + j*(-773) --799 + j*(28) --6 + j*(-67) -488 + j*(171) --245 + j*(-478) -22 + j*(-88) --258 + j*(-609) --1024 + j*(-1024) --521 + j*(312) -27 + j*(36) --274 + j*(22) -264 + j*(-471) -12 + j*(-30) -32 + j*(-628) --96 + j*(36) --892 + j*(1023) -553 + j*(301) -10 + j*(147) -78 + j*(-160) -99 + j*(-247) --142 + j*(163) -113 + j*(-109) -48 + j*(-292) -962 + j*(-14) --647 + j*(-50) -191 + j*(280) -243 + j*(-181) --188 + j*(-247) -21 + j*(154) -420 + j*(-157) -437 + j*(-114) --241 + j*(-371) --1 + j*(614) --364 + j*(-45) -56 + j*(29) -529 + j*(402) -108 + j*(-248) -98 + j*(3) --400 + j*(76) --1024 + j*(1023) -197 + j*(399) --52 + j*(71) --884 + j*(76) --68 + j*(861) --23 + j*(13) --654 + j*(17) --475 + j*(121) --1 + j*(302) -244 + j*(37) -116 + j*(85) -103 + j*(-71) -170 + j*(-134) --625 + j*(-1) --1 + j*(-70) --11 + j*(-84) --407 + j*(-1) -54 + j*(-79) --97 + j*(-175) --507 + j*(229) --161 + j*(128) --89 + j*(90) --276 + j*(586) --685 + j*(377) -1023 + j*(0) -180 + j*(825) -0 + j*(-764) -11 + j*(-42) --19 + j*(85) -637 + j*(159) -84 + j*(-71) --29 + j*(-174) -381 + j*(-339) --217 + j*(-150) --12 + j*(120) --503 + j*(-63) --4 + j*(-371) -0 + j*(65) --834 + j*(88) --286 + j*(-866) --267 + j*(804) -406 + j*(-62) -0 + j*(1023) -111 + j*(0) -171 + j*(-48) -0 + j*(883) -191 + j*(15) --374 + j*(286) --538 + j*(1023) -490 + j*(0) --150 + j*(131) --22 + j*(94) -776 + j*(-81) --108 + j*(55) -0 + j*(327) -871 + j*(0) --178 + j*(165) -38 + j*(166) -563 + j*(0) -41 + j*(-18) -67 + j*(151) -192 + j*(220) -129 + j*(6) -272 + j*(478) -523 + j*(1023) -453 + j*(-321) --142 + j*(83) --565 + j*(458) -390 + j*(-28) --118 + j*(10) --708 + j*(872) -381 + j*(674) -257 + j*(948) -318 + j*(-572) -1023 + j*(-544) -5 + j*(-80) -104 + j*(144) -25 + j*(-74) -74 + j*(-82) -0 + j*(-307) --1024 + j*(-282) --264 + j*(-169) -0 + j*(85) -391 + j*(0) --635 + j*(0) -8 + j*(21) -152 + j*(-704) --339 + j*(139) --1024 + j*(-351) -143 + j*(513) -685 + j*(95) -138 + j*(-34) -126 + j*(570) -377 + j*(277) -215 + j*(-8) --96 + j*(580) -446 + j*(1023) -444 + j*(-4) --135 + j*(127) -410 + j*(339) -490 + j*(233) --74 + j*(32) -202 + j*(346) -153 + j*(-256) --58 + j*(-595) --300 + j*(0) --71 + j*(624) -122 + j*(-50) --323 + j*(-202) --760 + j*(296) -232 + j*(-30) --218 + j*(374) -0 + j*(1023) -550 + j*(195) --143 + j*(185) --287 + j*(809) -474 + j*(458) --89 + j*(96) --713 + j*(0) -613 + j*(242) --425 + j*(77) -64 + j*(0) -0 + j*(543) -94 + j*(33) --318 + j*(0) --56 + j*(88) -0 + j*(68) -399 + j*(282) -127 + j*(0) -131 + j*(-514) --78 + j*(98) --330 + j*(0) --33 + j*(13) --110 + j*(31) --476 + j*(522) --1024 + j*(400) -759 + j*(741) -408 + j*(484) --39 + j*(-192) -102 + j*(5) -0 + j*(-135) -0 + j*(-140) -203 + j*(58) --274 + j*(-617) --539 + j*(610) --473 + j*(215) --190 + j*(99) -160 + j*(430) -0 + j*(68) --99 + j*(26) -206 + j*(67) -422 + j*(678) -82 + j*(51) --578 + j*(209) -97 + j*(18) -156 + j*(19) --550 + j*(579) --49 + j*(753) -286 + j*(99) -78 + j*(563) -693 + j*(1023) -621 + j*(-192) --298 + j*(144) -407 + j*(249) -60 + j*(72) --199 + j*(57) -524 + j*(-203) -168 + j*(-46) --146 + j*(-1024) --372 + j*(-462) --143 + j*(0) -62 + j*(41) --267 + j*(-21) -156 + j*(0) -182 + j*(119) -186 + j*(-493) -259 + j*(-365) --85 + j*(-189) --253 + j*(58) --219 + j*(270) -7 + j*(638) --145 + j*(0) --186 + j*(218) -0 + j*(26) --187 + j*(-351) -276 + j*(0) -68 + j*(-694) -153 + j*(37) --110 + j*(189) -467 + j*(226) -299 + j*(155) -217 + j*(0) --42 + j*(622) --21 + j*(-428) --369 + j*(101) -807 + j*(570) -656 + j*(-95) --226 + j*(-7) -631 + j*(1023) --127 + j*(-163) -910 + j*(-116) --669 + j*(4) -1023 + j*(0) -262 + j*(-73) --113 + j*(1023) -912 + j*(785) -660 + j*(-13) --927 + j*(-316) --115 + j*(291) -177 + j*(601) --661 + j*(864) -475 + j*(1023) -1023 + j*(288) --760 + j*(878) --234 + j*(1023) -1023 + j*(243) -1023 + j*(-1024) -36 + j*(-1024) --1024 + j*(-471) --1024 + j*(823) -274 + j*(-1024) --1024 + j*(-429) --1024 + j*(653) -412 + j*(-1024) --1024 + j*(-88) --1024 + j*(188) -267 + j*(-1024) --1024 + j*(-1024) --1024 + j*(492) -625 + j*(-1024) --1024 + j*(-1024) --971 + j*(9) --682 + j*(1023) --307 + j*(8) -271 + j*(1023) -852 + j*(-210) --532 + j*(249) -0 + j*(1023) -519 + j*(406) --1024 + j*(-119) --70 + j*(980) -115 + j*(1023) --1024 + j*(0) --68 + j*(1023) -0 + j*(1023) --1024 + j*(-535) --845 + j*(486) -37 + j*(1023) -1023 + j*(1023) -1023 + j*(-79) -124 + j*(-1024) --646 + j*(-994) -1023 + j*(-224) -1023 + j*(-1024) --592 + j*(-802) -863 + j*(-318) --128 + j*(-791) --1023 + j*(-332) -645 + j*(-596) --1001 + j*(-1024) --1024 + j*(-367) -624 + j*(-865) -267 + j*(-1024) --1024 + j*(0) --1024 + j*(1023) -61 + j*(1023) -1023 + j*(0) -1023 + j*(-606) -0 + j*(1023) -499 + j*(1023) -1023 + j*(-44) --916 + j*(810) -174 + j*(1023) -1023 + j*(596) --1024 + j*(270) -0 + j*(1023) -0 + j*(950) --1024 + j*(-110) --295 + j*(0) -0 + j*(1023) -0 + j*(726) -1023 + j*(-7) -1023 + j*(-654) --478 + j*(-1024) -1023 + j*(819) -1023 + j*(-516) -81 + j*(-1024) -1023 + j*(1023) -943 + j*(970) -1023 + j*(-1024) -795 + j*(1023) -1023 + j*(-481) -1023 + j*(-656) -858 + j*(1023) -1023 + j*(71) -723 + j*(-506) --13 + j*(-1018) --860 + j*(-185) -347 + j*(534) -1023 + j*(714) --1024 + j*(993) --133 + j*(1023) -1023 + j*(677) --1024 + j*(336) -117 + j*(991) -1023 + j*(687) --1024 + j*(931) --58 + j*(1023) -800 + j*(1023) --1024 + j*(888) --1024 + j*(712) -377 + j*(907) -396 + j*(536) -677 + j*(-911) --45 + j*(-206) --700 + j*(882) --792 + j*(-1024) --1024 + j*(380) --422 + j*(1023) --1024 + j*(-765) --745 + j*(354) -214 + j*(1023) --1024 + j*(-790) --1024 + j*(543) -310 + j*(1023) --1024 + j*(-764) --1024 + j*(325) -245 + j*(1023) -341 + j*(711) -1023 + j*(-350) --302 + j*(-1024) --592 + j*(-1024) -1023 + j*(-323) -156 + j*(-989) --57 + j*(-1024) -1023 + j*(339) -434 + j*(134) -219 + j*(-1024) -195 + j*(1023) -1023 + j*(915) -1023 + j*(-4) --435 + j*(1023) -1023 + j*(1023) -1023 + j*(914) -1023 + j*(-1024) -512 + j*(-1024) --1024 + j*(-649) --1024 + j*(820) --263 + j*(-1024) --1024 + j*(-1024) --1024 + j*(670) -915 + j*(-1024) --1024 + j*(-865) --1024 + j*(-21) -726 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-54) -783 + j*(-1024) --786 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --455 + j*(1023) -1023 + j*(1023) -981 + j*(-753) --116 + j*(1023) -1023 + j*(1023) -1023 + j*(-576) -118 + j*(723) -1023 + j*(501) -570 + j*(-720) --501 + j*(1023) -1023 + j*(1023) -1023 + j*(433) --663 + j*(1023) --330 + j*(1023) -1023 + j*(-36) --142 + j*(-843) --586 + j*(-1024) --1024 + j*(419) --1024 + j*(1023) --665 + j*(-1024) --1024 + j*(-1023) --1024 + j*(1023) --150 + j*(-1024) --1024 + j*(-327) --1024 + j*(1023) -518 + j*(-1024) --1024 + j*(-1024) --1024 + j*(102) -782 + j*(-1024) --865 + j*(-1024) --1024 + j*(-279) --1024 + j*(1023) -93 + j*(1023) -1023 + j*(839) -871 + j*(-315) --120 + j*(247) --834 + j*(1023) -524 + j*(320) -269 + j*(-478) --1024 + j*(455) --939 + j*(-37) --329 + j*(-818) --824 + j*(-1024) --1024 + j*(712) -260 + j*(-1024) --1024 + j*(-1024) --1024 + j*(249) --1024 + j*(1023) -923 + j*(1023) -1023 + j*(1023) -1023 + j*(-605) --698 + j*(1023) -1023 + j*(1023) -1023 + j*(222) --1024 + j*(1023) -90 + j*(1023) -1023 + j*(1023) --1024 + j*(448) --1004 + j*(1023) -42 + j*(1023) --1024 + j*(-441) --1024 + j*(158) --823 + j*(1023) --195 + j*(1023) -1023 + j*(751) -794 + j*(-1024) --312 + j*(-1024) -1023 + j*(1023) -1023 + j*(-458) -324 + j*(-828) -822 + j*(-23) -1023 + j*(620) --326 + j*(-438) --551 + j*(343) --452 + j*(1023) -539 + j*(1023) --886 + j*(-332) --1024 + j*(1023) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(902) -1023 + j*(-1024) --635 + j*(-1024) -1023 + j*(833) -1023 + j*(-1024) --251 + j*(-1024) -1023 + j*(1023) -1023 + j*(-88) -85 + j*(-1024) -1023 + j*(1023) -1023 + j*(-528) -1023 + j*(-1024) -1023 + j*(1023) -1023 + j*(-153) -514 + j*(-1024) --786 + j*(-1024) --1024 + j*(-626) --38 + j*(1023) -931 + j*(1023) --1024 + j*(731) --826 + j*(1023) -1019 + j*(1023) --1024 + j*(-631) --267 + j*(1023) -198 + j*(1023) --1024 + j*(-349) --1024 + j*(1023) -516 + j*(1023) --1024 + j*(-705) --1024 + j*(1023) --112 + j*(1023) -1023 + j*(1023) -1023 + j*(-579) -1023 + j*(-1024) --487 + j*(-1021) -1023 + j*(677) -1023 + j*(142) -18 + j*(-818) -197 + j*(-333) -930 + j*(-862) --423 + j*(170) --319 + j*(225) --472 + j*(-23) -449 + j*(1023) --756 + j*(-303) --1024 + j*(1007) -191 + j*(1023) -1023 + j*(58) -1023 + j*(-766) -1023 + j*(-1024) --826 + j*(-1024) -1023 + j*(754) -1023 + j*(-1024) --530 + j*(-1024) -1023 + j*(291) --259 + j*(-320) --529 + j*(-1024) -1023 + j*(1002) -1023 + j*(180) -1023 + j*(-1024) -1023 + j*(982) -1023 + j*(345) --85 + j*(-1024) --1024 + j*(-223) --1024 + j*(950) -71 + j*(1023) -605 + j*(815) --1024 + j*(440) --1024 + j*(971) -288 + j*(794) --1024 + j*(-523) -589 + j*(121) --391 + j*(1023) --223 + j*(-597) --574 + j*(-768) --1024 + j*(105) -336 + j*(-775) -554 + j*(-1024) --1024 + j*(-678) --1024 + j*(636) --654 + j*(1023) -1023 + j*(888) -1023 + j*(-858) --167 + j*(1023) -624 + j*(1023) -1023 + j*(-684) --922 + j*(1023) -1023 + j*(1023) -1023 + j*(-387) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(420) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(990) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH1_sync_4xf1.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH1_sync_4xf1.m deleted file mode 100644 index 7b02fd2cdf222e7c8e15a517461c4c05cf3a3095..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH1_sync_4xf1.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch1_sync_f_4x1 = [-1024 + j*(-437) -1023 + j*(-1024) --77 + j*(-1024) --1024 + j*(95) --834 + j*(487) -78 + j*(1023) -1023 + j*(168) -913 + j*(-554) -428 + j*(1023) -1015 + j*(201) -1023 + j*(-407) -631 + j*(-240) --142 + j*(448) --460 + j*(-43) --345 + j*(585) --397 + j*(29) --153 + j*(855) --515 + j*(-177) --867 + j*(-89) --184 + j*(537) -1023 + j*(950) -1023 + j*(-400) -853 + j*(-1024) --564 + j*(-1024) -1023 + j*(803) -1023 + j*(-1024) --91 + j*(-1024) -1023 + j*(323) -1023 + j*(-1024) --540 + j*(-1024) -1023 + j*(1023) -1023 + j*(-1024) -683 + j*(-1024) -1023 + j*(1023) -1023 + j*(-967) -766 + j*(-1024) --346 + j*(-1024) --1024 + j*(1023) --1024 + j*(1023) -819 + j*(733) --1024 + j*(938) -497 + j*(1023) -1023 + j*(209) --970 + j*(-267) -63 + j*(-796) -104 + j*(978) --482 + j*(1023) -728 + j*(1023) -1023 + j*(6) --517 + j*(1023) -713 + j*(788) -579 + j*(969) -1023 + j*(-1024) --352 + j*(-706) --837 + j*(-1024) --850 + j*(737) -787 + j*(-1024) --655 + j*(-1024) --513 + j*(172) --47 + j*(-555) --525 + j*(-1024) --251 + j*(480) -255 + j*(666) -877 + j*(386) -955 + j*(-654) --155 + j*(986) -858 + j*(824) -1023 + j*(1023) -93 + j*(-1024) -933 + j*(-1024) --1024 + j*(-1024) --1024 + j*(963) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(574) -980 + j*(-1024) --979 + j*(-1024) --1024 + j*(-360) -1023 + j*(-1024) -152 + j*(-1024) --1024 + j*(-858) -1023 + j*(-907) -647 + j*(-1024) --1024 + j*(503) --628 + j*(1023) -667 + j*(1023) -1023 + j*(-48) -692 + j*(-581) -1023 + j*(1023) -1023 + j*(-389) -640 + j*(-855) -1023 + j*(274) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(1023) -1023 + j*(-1024) -404 + j*(-1024) -1023 + j*(1013) -1023 + j*(-456) -44 + j*(-1024) --989 + j*(-879) --1024 + j*(743) --603 + j*(1023) -1023 + j*(1023) --1024 + j*(358) --577 + j*(1023) -1023 + j*(1023) --1024 + j*(-755) --453 + j*(1023) --484 + j*(1023) --1024 + j*(65) --1024 + j*(1023) -31 + j*(1023) --1024 + j*(-345) --1024 + j*(1023) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(245) -763 + j*(-1024) --555 + j*(-1024) -1023 + j*(682) -1023 + j*(-1024) -219 + j*(-1024) -1023 + j*(599) -1023 + j*(-1024) --89 + j*(-960) -580 + j*(1023) -1023 + j*(712) -1023 + j*(-1024) --114 + j*(1023) -1023 + j*(1023) -1023 + j*(460) -1023 + j*(-1024) -215 + j*(-1024) --1024 + j*(-918) --1024 + j*(661) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-204) -1023 + j*(-835) --1024 + j*(-1024) --1024 + j*(-866) -1023 + j*(92) -1011 + j*(-1024) --585 + j*(-1024) -1023 + j*(775) -1023 + j*(-1024) -216 + j*(-1024) --456 + j*(-1024) --1024 + j*(173) --1024 + j*(1023) -142 + j*(1023) --1024 + j*(-1024) --1024 + j*(663) --389 + j*(910) -308 + j*(-473) --423 + j*(-1024) --889 + j*(-221) -694 + j*(-169) -294 + j*(-1024) --1024 + j*(-1024) -1023 + j*(487) -1023 + j*(-783) --398 + j*(-1024) --610 + j*(-926) --1024 + j*(-291) --997 + j*(1023) -482 + j*(1023) --1024 + j*(-1024) --1024 + j*(583) -6 + j*(1023) --370 + j*(-1024) --529 + j*(-386) --1024 + j*(697) --509 + j*(-1024) --1024 + j*(-1024) --1024 + j*(475) -537 + j*(-1024) --492 + j*(-1024) --1024 + j*(-579) --1024 + j*(620) --714 + j*(1023) -1004 + j*(1023) -1023 + j*(-38) --1024 + j*(1023) -996 + j*(1023) -1023 + j*(713) --569 + j*(-34) --247 + j*(1023) --658 + j*(652) --853 + j*(-44) --471 + j*(-113) --647 + j*(65) --1 + j*(-508) --1024 + j*(-497) --1024 + j*(547) --191 + j*(1023) -1023 + j*(1023) -1023 + j*(212) -1023 + j*(-402) --207 + j*(1023) -1023 + j*(803) -1023 + j*(109) --1 + j*(1023) -28 + j*(88) -257 + j*(386) --1024 + j*(1023) -719 + j*(1023) -1023 + j*(952) --1024 + j*(1023) --205 + j*(339) -138 + j*(394) -520 + j*(-227) -622 + j*(141) --132 + j*(-361) --646 + j*(950) --794 + j*(-1024) --1024 + j*(184) --248 + j*(1023) --545 + j*(-510) --192 + j*(159) --549 + j*(1023) --1024 + j*(-610) --1024 + j*(1023) --180 + j*(1023) --1024 + j*(-593) --1024 + j*(763) --144 + j*(1023) -1023 + j*(1023) -1023 + j*(-9) -657 + j*(-1024) --831 + j*(-630) -1023 + j*(-1) --1 + j*(-1024) --604 + j*(-421) -1023 + j*(422) -777 + j*(-269) --383 + j*(-655) -413 + j*(-222) --34 + j*(-652) --366 + j*(-647) -495 + j*(-489) --1024 + j*(-505) --85 + j*(1023) --284 + j*(1023) -1023 + j*(61) -1023 + j*(699) -960 + j*(-735) -177 + j*(1023) -1023 + j*(1023) -1023 + j*(-541) --207 + j*(1023) -1023 + j*(455) -1023 + j*(-452) --1014 + j*(1023) -1023 + j*(1023) -1023 + j*(335) --1021 + j*(1023) --1 + j*(1023) -1023 + j*(625) --1 + j*(-506) -506 + j*(-1024) --1024 + j*(-75) --939 + j*(562) -116 + j*(-1024) --1 + j*(-1024) --606 + j*(439) -797 + j*(-89) -829 + j*(-1024) --182 + j*(-218) --836 + j*(-289) --79 + j*(98) -70 + j*(1023) --893 + j*(-323) --1024 + j*(119) --1 + j*(985) -101 + j*(-139) -1023 + j*(-101) --334 + j*(-1024) --959 + j*(-1024) -1023 + j*(-542) -1023 + j*(-1024) --675 + j*(-1024) -1023 + j*(589) -503 + j*(-1024) --119 + j*(-1024) -1023 + j*(1023) -1023 + j*(-1024) -320 + j*(-1024) -975 + j*(1023) -973 + j*(-679) -114 + j*(-1024) --425 + j*(-673) --649 + j*(1023) --261 + j*(400) -498 + j*(660) --91 + j*(658) -690 + j*(724) -641 + j*(281) --645 + j*(1008) -1023 + j*(-150) -1023 + j*(12) --606 + j*(803) -578 + j*(1023) -1023 + j*(-126) --852 + j*(1023) -472 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) -169 + j*(-1024) --1024 + j*(-1024) --1024 + j*(851) --363 + j*(-1024) --1024 + j*(-227) --1024 + j*(779) -101 + j*(-517) --75 + j*(-1024) --574 + j*(152) --51 + j*(-750) --462 + j*(-29) --478 + j*(152) --12 + j*(-116) --223 + j*(-778) -186 + j*(-492) --807 + j*(-506) --959 + j*(377) --253 + j*(16) --370 + j*(343) -213 + j*(-226) --96 + j*(-757) --385 + j*(337) -461 + j*(70) -8 + j*(-469) --412 + j*(-161) --200 + j*(-177) -86 + j*(360) --1 + j*(-728) --202 + j*(-66) --1 + j*(557) --1 + j*(-169) --626 + j*(-1) -350 + j*(-197) --1 + j*(883) --406 + j*(162) -489 + j*(-242) --139 + j*(-370) --539 + j*(353) -1003 + j*(419) --175 + j*(-916) --219 + j*(-1016) --157 + j*(-351) -196 + j*(-183) --1 + j*(-381) --75 + j*(-54) -1023 + j*(76) -484 + j*(-717) -396 + j*(-419) --959 + j*(-1) --277 + j*(-1024) --226 + j*(149) --163 + j*(-1) --479 + j*(-879) --327 + j*(373) --79 + j*(410) --1 + j*(-399) -115 + j*(-146) --347 + j*(-255) --18 + j*(-230) --323 + j*(-174) --260 + j*(-24) -16 + j*(696) -501 + j*(109) -69 + j*(-282) --1 + j*(-132) -935 + j*(23) --378 + j*(67) --1 + j*(97) --121 + j*(-667) --486 + j*(238) -681 + j*(-31) -715 + j*(-928) --577 + j*(-828) --179 + j*(-294) -332 + j*(265) --291 + j*(-1024) --146 + j*(-33) -1023 + j*(-466) -739 + j*(-1) --893 + j*(-151) -372 + j*(34) -678 + j*(-382) --301 + j*(74) -129 + j*(-1) --2 + j*(-266) --432 + j*(252) -149 + j*(630) --808 + j*(-978) -204 + j*(-510) --226 + j*(-311) --247 + j*(-842) --664 + j*(-111) --193 + j*(-65) --1 + j*(-54) -19 + j*(56) --1024 + j*(580) --1 + j*(129) -560 + j*(-1) --325 + j*(6) --1 + j*(-96) -338 + j*(-119) --462 + j*(156) --422 + j*(704) -300 + j*(-93) -511 + j*(-56) --148 + j*(-292) --240 + j*(-796) --131 + j*(335) --150 + j*(-38) -230 + j*(227) -578 + j*(-409) --428 + j*(-230) --851 + j*(-699) -170 + j*(239) --308 + j*(45) -4 + j*(29) -229 + j*(-160) --442 + j*(-1) --1 + j*(270) -878 + j*(70) --169 + j*(-149) -221 + j*(-120) --1 + j*(-887) --231 + j*(-10) --137 + j*(-119) --1 + j*(-233) -1023 + j*(141) --87 + j*(562) -725 + j*(-444) --21 + j*(45) --273 + j*(-61) -70 + j*(316) -529 + j*(-208) --420 + j*(94) -554 + j*(1023) --224 + j*(-40) -784 + j*(-812) --186 + j*(-313) -433 + j*(808) -437 + j*(119) --234 + j*(-99) --5 + j*(291) -430 + j*(384) -790 + j*(278) -845 + j*(383) -669 + j*(-366) --393 + j*(-117) -127 + j*(290) --160 + j*(290) --512 + j*(-185) -206 + j*(449) -692 + j*(-351) --55 + j*(-667) --31 + j*(-204) -227 + j*(-890) --708 + j*(-331) --28 + j*(-109) -325 + j*(-1) --305 + j*(-590) -110 + j*(-91) -121 + j*(-1) -265 + j*(659) --184 + j*(-62) -128 + j*(414) -467 + j*(-1) --360 + j*(54) -239 + j*(693) -46 + j*(335) -388 + j*(-652) --170 + j*(-294) --1 + j*(392) -132 + j*(158) --245 + j*(-89) -179 + j*(177) -1023 + j*(352) -510 + j*(-485) -455 + j*(-856) --887 + j*(227) --404 + j*(-118) -800 + j*(-205) --129 + j*(-264) --620 + j*(-62) -532 + j*(565) --48 + j*(-79) -415 + j*(-951) -77 + j*(-447) --222 + j*(371) --366 + j*(-533) --47 + j*(-199) --476 + j*(-862) --341 + j*(-913) --742 + j*(680) --111 + j*(478) -1023 + j*(175) --225 + j*(-179) -20 + j*(602) -441 + j*(136) --83 + j*(-88) --548 + j*(277) -581 + j*(429) -314 + j*(-167) -30 + j*(-360) -55 + j*(645) -200 + j*(-159) --89 + j*(-185) -1021 + j*(23) -19 + j*(-19) -774 + j*(-1024) -50 + j*(-39) --59 + j*(397) --196 + j*(-247) -261 + j*(452) -432 + j*(162) --361 + j*(-221) --63 + j*(1023) --274 + j*(715) -904 + j*(-535) -24 + j*(-213) -699 + j*(607) -901 + j*(62) --160 + j*(-54) -210 + j*(135) -183 + j*(949) --598 + j*(-157) -545 + j*(399) --901 + j*(0) --367 + j*(-166) -0 + j*(-159) -161 + j*(0) --623 + j*(0) -68 + j*(115) -114 + j*(-237) --178 + j*(-17) -102 + j*(-151) -18 + j*(-831) -168 + j*(0) -34 + j*(-247) -22 + j*(-543) --799 + j*(0) -564 + j*(-231) --8 + j*(876) --46 + j*(-84) --108 + j*(-304) -140 + j*(107) -203 + j*(15) --170 + j*(-344) --294 + j*(1023) -461 + j*(-98) -1023 + j*(-290) -136 + j*(-28) -32 + j*(699) -371 + j*(-418) --126 + j*(-82) -656 + j*(609) --160 + j*(1023) -422 + j*(-878) -511 + j*(-765) --538 + j*(-452) --316 + j*(-247) --723 + j*(-227) --137 + j*(-75) --554 + j*(-328) --63 + j*(390) --428 + j*(-75) -463 + j*(-139) -312 + j*(-399) -151 + j*(-70) -567 + j*(-237) -89 + j*(-245) -87 + j*(848) -879 + j*(629) -242 + j*(-473) -521 + j*(-613) -396 + j*(-626) --46 + j*(-349) -555 + j*(0) -196 + j*(-436) --177 + j*(-410) -55 + j*(96) -584 + j*(230) -0 + j*(401) -178 + j*(-164) -881 + j*(-56) -0 + j*(-530) --50 + j*(-118) -638 + j*(0) -29 + j*(279) -549 + j*(-381) -281 + j*(-1) -477 + j*(-469) --138 + j*(-354) -288 + j*(267) -14 + j*(-134) --276 + j*(-480) -0 + j*(329) -638 + j*(572) -218 + j*(-235) -236 + j*(-102) -245 + j*(53) -534 + j*(0) --59 + j*(-45) -197 + j*(755) -861 + j*(-61) -1023 + j*(-384) --134 + j*(-287) --143 + j*(-1) --271 + j*(-281) -0 + j*(603) --169 + j*(0) --326 + j*(-199) --513 + j*(527) --447 + j*(-809) -555 + j*(104) -378 + j*(-402) --206 + j*(142) -287 + j*(0) -167 + j*(-344) -324 + j*(158) --810 + j*(-144) --172 + j*(450) -16 + j*(915) -354 + j*(0) -110 + j*(-598) --12 + j*(642) -751 + j*(201) -23 + j*(-680) --513 + j*(1023) -671 + j*(-533) -1023 + j*(-296) -392 + j*(200) -0 + j*(682) -619 + j*(21) -69 + j*(167) -298 + j*(823) --92 + j*(224) -776 + j*(0) --809 + j*(-440) -0 + j*(-540) --67 + j*(-188) -659 + j*(34) --427 + j*(-117) --207 + j*(-392) --396 + j*(260) --918 + j*(349) -555 + j*(-64) -249 + j*(-170) -620 + j*(0) --301 + j*(0) --10 + j*(-198) --863 + j*(-849) -421 + j*(551) -1023 + j*(-163) -502 + j*(-199) --244 + j*(129) --41 + j*(-543) --491 + j*(363) -461 + j*(754) --123 + j*(-782) --204 + j*(812) -975 + j*(-129) -1023 + j*(-435) -467 + j*(39) -763 + j*(0) -277 + j*(-498) -117 + j*(-118) -589 + j*(-1000) -771 + j*(-713) --1024 + j*(-707) --353 + j*(-70) -189 + j*(372) -79 + j*(-527) -436 + j*(227) -968 + j*(-463) --121 + j*(-513) --94 + j*(280) -1023 + j*(-510) -209 + j*(-175) -747 + j*(457) -418 + j*(-561) -0 + j*(-489) -321 + j*(353) -788 + j*(-34) -0 + j*(-1024) --812 + j*(-1024) --1024 + j*(0) --506 + j*(236) -145 + j*(-422) -114 + j*(197) -648 + j*(0) -113 + j*(-1024) --961 + j*(377) --204 + j*(140) -641 + j*(327) -1023 + j*(732) -1023 + j*(-788) -325 + j*(-1024) -855 + j*(706) -827 + j*(-1024) -0 + j*(-476) --1024 + j*(-314) -474 + j*(0) -0 + j*(1023) -858 + j*(429) --1024 + j*(85) -210 + j*(1023) -584 + j*(193) --1024 + j*(983) --836 + j*(1023) -1023 + j*(1023) --634 + j*(676) -1023 + j*(952) -977 + j*(924) --849 + j*(880) -884 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) -1023 + j*(-1024) --1024 + j*(-1024) --616 + j*(503) --998 + j*(-979) --619 + j*(41) --386 + j*(147) --975 + j*(-47) --1024 + j*(1023) -1023 + j*(811) --118 + j*(148) -5 + j*(919) -1023 + j*(204) --471 + j*(511) --31 + j*(1023) -1023 + j*(197) -471 + j*(-443) -142 + j*(-1024) --1024 + j*(-176) --995 + j*(835) -100 + j*(-1024) --1024 + j*(-477) --1024 + j*(772) --738 + j*(-1024) --1024 + j*(-116) --1023 + j*(1023) -503 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) -614 + j*(-1024) --163 + j*(-1024) --1024 + j*(0) --1024 + j*(0) -86 + j*(1023) -536 + j*(1021) -1023 + j*(-636) -115 + j*(555) -311 + j*(932) -812 + j*(-153) --1024 + j*(0) --56 + j*(1023) -397 + j*(1023) --1024 + j*(91) --208 + j*(810) -0 + j*(1023) --1024 + j*(-634) --1024 + j*(747) -7 + j*(1023) -1023 + j*(1023) -1023 + j*(-16) -27 + j*(-1024) --47 + j*(-1024) -1023 + j*(736) -1023 + j*(58) -765 + j*(-1024) --618 + j*(1023) -918 + j*(518) -1023 + j*(-36) -253 + j*(1023) -1023 + j*(1023) -1023 + j*(-171) --508 + j*(1023) -923 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) -159 + j*(-1024) --1024 + j*(-401) --725 + j*(328) --353 + j*(-1024) --801 + j*(-416) --558 + j*(40) --629 + j*(-483) --1024 + j*(-427) -225 + j*(788) --151 + j*(-447) --809 + j*(89) -409 + j*(933) --620 + j*(-589) --880 + j*(457) --578 + j*(1023) -1023 + j*(876) -1023 + j*(233) -1023 + j*(-1024) --700 + j*(-1024) -1023 + j*(394) -1023 + j*(-1024) --464 + j*(-1024) -1023 + j*(-170) --341 + j*(-1024) --334 + j*(-750) -1023 + j*(928) -1023 + j*(-641) -336 + j*(-1024) -1023 + j*(721) -1023 + j*(0) -767 + j*(-609) --342 + j*(-454) --560 + j*(0) --591 + j*(768) -971 + j*(650) --1024 + j*(148) --197 + j*(1023) -1016 + j*(730) --1024 + j*(405) --550 + j*(685) -1023 + j*(1023) --1024 + j*(208) --1024 + j*(1023) -664 + j*(1023) --1024 + j*(-434) --1024 + j*(1023) --872 + j*(1023) -1023 + j*(536) -1023 + j*(208) -785 + j*(-1024) --73 + j*(-1024) -1023 + j*(1023) -1023 + j*(-677) -732 + j*(-1024) -175 + j*(821) -1023 + j*(777) -1023 + j*(-437) -241 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) --417 + j*(1023) -1023 + j*(1023) -1023 + j*(-387) -146 + j*(-1024) --878 + j*(-1024) --1024 + j*(145) --530 + j*(356) --178 + j*(-1024) --897 + j*(-134) -2 + j*(-260) --785 + j*(-749) --1024 + j*(1023) -203 + j*(1023) --71 + j*(857) -327 + j*(1023) -1023 + j*(527) --584 + j*(845) --189 + j*(1023) -1023 + j*(1023) -237 + j*(-1024) -49 + j*(-1024) --1024 + j*(-1000) --873 + j*(582) --66 + j*(-1024) --1024 + j*(-917) --716 + j*(384) --987 + j*(-1024) --1024 + j*(-353) --473 + j*(1023) --209 + j*(-642) --1024 + j*(538) --322 + j*(1023) --530 + j*(-696) --1024 + j*(1023) --631 + j*(1023) -1023 + j*(776) -1023 + j*(63) -1023 + j*(-1024) --303 + j*(-1024) -1023 + j*(742) -1023 + j*(-1024) -325 + j*(-1024) -137 + j*(481) --602 + j*(658) -881 + j*(367) -381 + j*(1023) -1023 + j*(1023) -1023 + j*(-753) --423 + j*(1023) -322 + j*(1023) -1023 + j*(1023) -1023 + j*(-270) -1023 + j*(-1024) --924 + j*(-1024) --1024 + j*(548) -726 + j*(-1024) --1024 + j*(-1024) --955 + j*(284) --40 + j*(-1024) --915 + j*(-1024) --839 + j*(1023) --7 + j*(-767) --1024 + j*(588) --847 + j*(1023) --453 + j*(-791) --1024 + j*(827) --836 + j*(1023) -786 + j*(1023) -1023 + j*(548) -567 + j*(-1024) --655 + j*(-1024) -1023 + j*(-521) -1023 + j*(-1024) --387 + j*(-1024) -152 + j*(-509) --514 + j*(-231) --88 + j*(894) -643 + j*(213) --782 + j*(150) --322 + j*(906) --166 + j*(-327) --1024 + j*(827) --313 + j*(1023) -793 + j*(1023) -1023 + j*(-1024) -839 + j*(-1024) --707 + j*(-1024) -1023 + j*(610) -1023 + j*(-1024) --469 + j*(-1024) -1023 + j*(-509) -1023 + j*(-633) --1024 + j*(-1024) -1023 + j*(1023) -1023 + j*(-822) -319 + j*(-1024) -1023 + j*(1023) -1023 + j*(-262) -590 + j*(-1024) -86 + j*(-1024) --1024 + j*(596) --781 + j*(1023) -810 + j*(718) --1024 + j*(468) --497 + j*(1023) -946 + j*(499) --841 + j*(-585) --1024 + j*(-1024) --150 + j*(1014) --742 + j*(300) --1024 + j*(1023) -470 + j*(1023) --706 + j*(-316) --1024 + j*(1009) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(-384) -1023 + j*(-1024) --32 + j*(-1024) -1023 + j*(1023) -1023 + j*(-861) -901 + j*(-1024) -347 + j*(751) -1023 + j*(738) -704 + j*(-308) -617 + j*(1023) -1023 + j*(890) -1023 + j*(-933) --362 + j*(1023) -1023 + j*(1023) -1023 + j*(744) -1023 + j*(-1024) -282 + j*(-1024) --1024 + j*(-980) --925 + j*(195) -1023 + j*(-1024) --468 + j*(-1024) --355 + j*(-788) -932 + j*(-1024) -898 + j*(-892) --820 + j*(-155) -711 + j*(1023) -1023 + j*(580) -1023 + j*(-1024) --68 + j*(1023) -1023 + j*(1023) -961 + j*(-353) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-1010) --1024 + j*(630) -558 + j*(-1024) --1024 + j*(-1024) --895 + j*(-142) -478 + j*(-855) --1024 + j*(-1024) --817 + j*(174) -725 + j*(489) -888 + j*(-424) -366 + j*(-1024) -73 + j*(868) -1023 + j*(862) -340 + j*(282) -1023 + j*(-1001) --506 + j*(-1024) --893 + j*(-1024) --1024 + j*(898) -86 + j*(-1024) --1024 + j*(-1024) --1024 + j*(501) -812 + j*(-1024) --1024 + j*(-1024) --1024 + j*(780) -1023 + j*(-1024) --1024 + j*(-1024) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH2_sync_4xf0.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH2_sync_4xf0.m deleted file mode 100644 index 320646567e01b117edd126bfe94059dfe0089d2a..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH2_sync_4xf0.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch2_sync_f_4x0 = [-1024 + j*(-1024) --1024 + j*(-321) --960 + j*(788) -724 + j*(899) --1024 + j*(2) --545 + j*(48) -467 + j*(650) --684 + j*(-367) --315 + j*(-453) --234 + j*(68) -111 + j*(303) -264 + j*(302) -206 + j*(-1024) -556 + j*(555) --42 + j*(-886) --1024 + j*(-1024) --1024 + j*(226) --1024 + j*(1023) -335 + j*(1023) -952 + j*(947) --1024 + j*(672) --85 + j*(1023) -1023 + j*(1023) --1024 + j*(839) --1024 + j*(668) -1023 + j*(1023) --1024 + j*(776) --54 + j*(1023) -1023 + j*(1023) --1024 + j*(816) --820 + j*(1023) -1023 + j*(1023) -1023 + j*(-691) -969 + j*(-1024) --1024 + j*(-1024) --1006 + j*(658) -83 + j*(-1024) --1024 + j*(-986) --1024 + j*(308) -1023 + j*(-1024) --282 + j*(-1024) --1024 + j*(-1024) -755 + j*(-309) -997 + j*(-1024) --934 + j*(-1024) -818 + j*(321) -1023 + j*(-1024) --358 + j*(-1024) --1024 + j*(-683) --1024 + j*(1023) -396 + j*(1023) -752 + j*(1023) --1024 + j*(626) --89 + j*(1023) -709 + j*(1023) --1024 + j*(-182) --892 + j*(-584) -142 + j*(1023) --1024 + j*(282) -115 + j*(619) -1023 + j*(491) --841 + j*(548) -301 + j*(545) -878 + j*(224) --107 + j*(-281) --349 + j*(-1024) --1024 + j*(755) --689 + j*(1023) --1024 + j*(-1024) --1024 + j*(-28) --815 + j*(1023) --1024 + j*(-1024) --1024 + j*(-434) --674 + j*(1023) --1024 + j*(-1024) --1024 + j*(70) --654 + j*(1023) --839 + j*(-1024) --1024 + j*(450) --1024 + j*(1023) -502 + j*(1023) -1023 + j*(184) -1023 + j*(-1024) --758 + j*(-969) -1023 + j*(-121) -987 + j*(-1024) --796 + j*(-1024) -1023 + j*(347) -1023 + j*(-1024) --484 + j*(-1024) -1023 + j*(258) -1023 + j*(-1024) --85 + j*(-1024) -1023 + j*(562) -1023 + j*(-1024) -506 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-379) --1024 + j*(1023) -1004 + j*(1023) --1024 + j*(-466) --1024 + j*(1023) -874 + j*(1023) --1024 + j*(-69) --1024 + j*(1023) -932 + j*(1023) --1024 + j*(-627) --1024 + j*(1023) --59 + j*(1023) --1024 + j*(-778) --1024 + j*(522) --672 + j*(1023) -1023 + j*(963) -1023 + j*(-31) --143 + j*(-1024) --539 + j*(-1007) -1023 + j*(445) -1023 + j*(-1024) -13 + j*(-1024) -966 + j*(404) -1023 + j*(-779) -303 + j*(-964) -210 + j*(1023) -1023 + j*(1023) -1023 + j*(-643) --357 + j*(1023) -1023 + j*(1023) -1023 + j*(-99) -1023 + j*(-395) -72 + j*(-1024) --1024 + j*(-1012) --1024 + j*(848) -98 + j*(-1024) --1024 + j*(-1024) --1024 + j*(610) -547 + j*(-1024) -370 + j*(-1024) --1024 + j*(40) -766 + j*(-1024) --1024 + j*(-1024) --1024 + j*(34) -819 + j*(-934) -654 + j*(-1024) --1024 + j*(-1024) --1024 + j*(510) --589 + j*(1023) -652 + j*(1023) -968 + j*(-487) --463 + j*(1023) -945 + j*(1023) -1023 + j*(-413) --916 + j*(880) -1023 + j*(1023) -969 + j*(333) --554 + j*(1023) -818 + j*(1023) -1023 + j*(-16) --698 + j*(1023) -863 + j*(1023) -1023 + j*(-959) --1024 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --1024 + j*(694) --704 + j*(-1024) --1024 + j*(-425) --1024 + j*(278) -530 + j*(-254) --978 + j*(97) --258 + j*(-411) -894 + j*(-450) -341 + j*(-987) --384 + j*(-1024) -897 + j*(278) -1023 + j*(-83) -1023 + j*(-1024) --641 + j*(-1024) --1024 + j*(-611) --1024 + j*(1023) -602 + j*(1023) --1024 + j*(-777) --1024 + j*(1023) -317 + j*(1023) --1024 + j*(-1024) --1024 + j*(1023) --277 + j*(1023) --1024 + j*(-1024) --1024 + j*(863) --373 + j*(1023) --1024 + j*(-1024) --1024 + j*(-1) --849 + j*(-1) -458 + j*(1023) -20 + j*(375) -302 + j*(-794) --855 + j*(-808) -927 + j*(-1024) -110 + j*(-910) --915 + j*(-552) -1023 + j*(-580) -230 + j*(-875) --1024 + j*(-553) -666 + j*(-721) -183 + j*(-1024) --1024 + j*(232) -581 + j*(-777) --657 + j*(-1024) --773 + j*(-684) --1024 + j*(1023) -451 + j*(1023) -1023 + j*(670) -915 + j*(-982) -843 + j*(1023) -1023 + j*(661) -1023 + j*(-1024) --70 + j*(1023) -1023 + j*(612) -1023 + j*(-810) --608 + j*(1023) -1023 + j*(1023) -1023 + j*(-126) --845 + j*(1023) --1 + j*(1023) -1023 + j*(1023) -150 + j*(-1) -1023 + j*(-1024) --411 + j*(-886) --724 + j*(366) -101 + j*(-865) --66 + j*(-368) --309 + j*(9) --458 + j*(474) -795 + j*(52) -873 + j*(158) --154 + j*(609) -509 + j*(816) -1023 + j*(-45) --483 + j*(865) -880 + j*(1023) -1023 + j*(112) -1023 + j*(-539) --926 + j*(-1024) --1024 + j*(-523) --934 + j*(781) -62 + j*(-1024) --1024 + j*(-851) --913 + j*(574) --42 + j*(-875) --778 + j*(-1024) --216 + j*(242) --84 + j*(-209) --45 + j*(277) -905 + j*(-129) --366 + j*(437) -379 + j*(149) -1023 + j*(0) --1 + j*(-1024) --9 + j*(-1006) --1024 + j*(-1) --1024 + j*(1023) --1 + j*(-1024) --1024 + j*(-705) --1024 + j*(1023) --297 + j*(-1024) --1024 + j*(-449) --1024 + j*(1023) -581 + j*(-1024) --1024 + j*(-1024) --1024 + j*(476) -827 + j*(-1024) --572 + j*(-1024) --1024 + j*(26) --357 + j*(783) -111 + j*(1023) -1023 + j*(114) -1004 + j*(-159) --40 + j*(1023) -1023 + j*(433) -920 + j*(499) --724 + j*(404) -101 + j*(1023) -737 + j*(742) --1024 + j*(-404) --1024 + j*(1023) -242 + j*(1023) --1024 + j*(-776) --1024 + j*(753) --222 + j*(958) -809 + j*(1023) -938 + j*(-691) -1023 + j*(-402) --577 + j*(-677) -21 + j*(-314) -396 + j*(-1) --259 + j*(-173) --1 + j*(-567) -559 + j*(-1) --559 + j*(-1) --1 + j*(-116) -253 + j*(-1) --572 + j*(-87) --623 + j*(-339) --372 + j*(271) --769 + j*(714) --269 + j*(-407) -902 + j*(545) -766 + j*(-1024) --902 + j*(-652) -761 + j*(32) --1 + j*(-923) --732 + j*(-268) -360 + j*(171) -43 + j*(-724) --81 + j*(-1) -497 + j*(127) -53 + j*(-466) -437 + j*(-1) -399 + j*(161) --1 + j*(-1024) -461 + j*(509) --579 + j*(-101) -859 + j*(-589) --102 + j*(-1006) --224 + j*(-199) -740 + j*(154) -13 + j*(-127) --302 + j*(-419) -229 + j*(-167) -115 + j*(288) --248 + j*(-1) -392 + j*(103) -300 + j*(-193) --59 + j*(-1) -89 + j*(109) --1 + j*(400) -306 + j*(423) -874 + j*(359) --1 + j*(-358) --566 + j*(-1024) --352 + j*(-132) -753 + j*(84) -871 + j*(-1018) --455 + j*(-319) -709 + j*(59) -475 + j*(-395) --81 + j*(-335) -444 + j*(-86) -798 + j*(-633) -99 + j*(-655) -192 + j*(-29) -1023 + j*(-398) -225 + j*(57) --275 + j*(-141) -237 + j*(169) -11 + j*(636) --169 + j*(-192) -165 + j*(-385) --504 + j*(-8) --227 + j*(-356) -886 + j*(30) -968 + j*(-248) --166 + j*(-944) -334 + j*(121) -410 + j*(-1) -245 + j*(-1) -102 + j*(147) -675 + j*(1023) -685 + j*(343) -727 + j*(-43) --361 + j*(-687) --200 + j*(-753) --297 + j*(-23) -897 + j*(-671) -30 + j*(-1024) --409 + j*(-189) -524 + j*(-646) --553 + j*(196) --794 + j*(-270) -369 + j*(-100) --1 + j*(-898) --271 + j*(-1) -165 + j*(3) --1 + j*(-676) -383 + j*(-36) --224 + j*(-309) --1 + j*(-523) --530 + j*(51) --243 + j*(-40) --178 + j*(-93) --579 + j*(265) --418 + j*(-153) -265 + j*(-753) --864 + j*(-1024) --890 + j*(-101) -400 + j*(-245) -503 + j*(-1024) --542 + j*(-745) -264 + j*(-168) -454 + j*(-165) --372 + j*(-1) -5 + j*(744) --1 + j*(763) -1023 + j*(98) -5 + j*(-190) --1 + j*(426) -192 + j*(248) --50 + j*(-231) --165 + j*(455) --970 + j*(-30) -378 + j*(406) -210 + j*(12) --24 + j*(224) --3 + j*(-1) -123 + j*(-36) -187 + j*(408) --453 + j*(-340) -148 + j*(36) -48 + j*(229) -231 + j*(-17) --62 + j*(-235) -322 + j*(-347) --1 + j*(-383) --87 + j*(-385) -916 + j*(357) -450 + j*(-315) -268 + j*(-1018) -341 + j*(144) -124 + j*(445) --1 + j*(-583) -171 + j*(163) -442 + j*(-1) --1 + j*(284) --1 + j*(-457) -337 + j*(-1) --201 + j*(722) --81 + j*(-20) -85 + j*(-188) -124 + j*(1023) --136 + j*(-157) --220 + j*(-584) --367 + j*(-305) --479 + j*(390) -220 + j*(42) --525 + j*(533) -27 + j*(200) -95 + j*(46) --351 + j*(22) --541 + j*(408) --423 + j*(-311) -742 + j*(-1) -82 + j*(171) --127 + j*(-134) -41 + j*(-1) -139 + j*(250) --182 + j*(-312) -767 + j*(324) -1023 + j*(-527) -123 + j*(-968) -409 + j*(124) -511 + j*(-675) -294 + j*(-590) -274 + j*(158) -120 + j*(-145) -1023 + j*(-559) --851 + j*(-281) --1 + j*(-958) --370 + j*(1023) -42 + j*(72) --995 + j*(-278) --647 + j*(831) --41 + j*(31) --346 + j*(-783) --142 + j*(272) --733 + j*(427) -139 + j*(59) --479 + j*(196) --333 + j*(292) -111 + j*(83) --291 + j*(-598) --141 + j*(369) -20 + j*(-717) -738 + j*(-37) --357 + j*(-1) -38 + j*(48) --1 + j*(-351) --360 + j*(-50) -43 + j*(14) --57 + j*(491) -538 + j*(482) -699 + j*(80) -4 + j*(78) --1 + j*(252) --11 + j*(-23) --99 + j*(57) --1 + j*(708) -809 + j*(-657) -1023 + j*(-1) --670 + j*(-629) --48 + j*(-666) --163 + j*(-41) -210 + j*(-502) --489 + j*(-537) --147 + j*(-94) -283 + j*(-657) --631 + j*(-1) --582 + j*(47) -60 + j*(-2) --1 + j*(-32) -42 + j*(-1) --61 + j*(-2) --32 + j*(-309) -590 + j*(-1) --148 + j*(762) -5 + j*(-333) -174 + j*(157) --221 + j*(-148) --303 + j*(-3) -54 + j*(-52) --236 + j*(-261) -704 + j*(-78) -957 + j*(-1024) --256 + j*(-429) -277 + j*(35) -9 + j*(-680) --482 + j*(-916) -113 + j*(55) -41 + j*(76) --652 + j*(-831) -219 + j*(25) --63 + j*(434) -109 + j*(6) --123 + j*(-66) --36 + j*(-23) --333 + j*(7) --179 + j*(-181) -5 + j*(-918) --712 + j*(-1024) --633 + j*(-28) -254 + j*(19) -672 + j*(0) -0 + j*(-564) -138 + j*(52) -819 + j*(0) -0 + j*(-378) -2 + j*(690) --625 + j*(0) -446 + j*(277) --76 + j*(7) --84 + j*(-153) -139 + j*(-161) --168 + j*(-43) --66 + j*(256) -27 + j*(350) --84 + j*(35) -151 + j*(-151) --395 + j*(-59) --368 + j*(-336) -99 + j*(-156) --131 + j*(0) --733 + j*(0) -0 + j*(-43) --2 + j*(801) -695 + j*(-596) -22 + j*(-252) -887 + j*(728) -808 + j*(-934) --62 + j*(-550) -826 + j*(376) -1023 + j*(-990) --128 + j*(-1024) -245 + j*(163) -222 + j*(107) -626 + j*(-492) -125 + j*(48) -123 + j*(617) -194 + j*(639) --196 + j*(-496) --371 + j*(601) --79 + j*(-31) -40 + j*(-171) --71 + j*(-164) -0 + j*(352) -55 + j*(-293) --74 + j*(374) -11 + j*(828) -416 + j*(-137) -209 + j*(200) -335 + j*(-203) -254 + j*(-334) -139 + j*(132) -114 + j*(-49) --736 + j*(-282) -485 + j*(0) --1 + j*(33) -620 + j*(0) -110 + j*(-92) -0 + j*(276) -1023 + j*(-62) -187 + j*(-212) -560 + j*(238) -672 + j*(626) -137 + j*(-712) -52 + j*(356) -749 + j*(-408) -740 + j*(-505) --29 + j*(282) -697 + j*(-307) -1023 + j*(-139) --214 + j*(-335) --225 + j*(-1024) --1012 + j*(0) --127 + j*(67) -0 + j*(-648) --568 + j*(-145) --100 + j*(-28) --182 + j*(-408) --707 + j*(-389) --437 + j*(257) -146 + j*(43) --346 + j*(-432) --136 + j*(-136) -137 + j*(72) -183 + j*(702) --370 + j*(0) -133 + j*(-225) -0 + j*(-297) --392 + j*(0) -98 + j*(28) -0 + j*(232) -361 + j*(146) -110 + j*(-12) --307 + j*(613) -0 + j*(-270) -653 + j*(192) --8 + j*(100) -0 + j*(70) -0 + j*(-80) -24 + j*(54) -572 + j*(149) -590 + j*(98) -205 + j*(-1024) --87 + j*(-76) --584 + j*(1018) -158 + j*(-17) --293 + j*(0) --460 + j*(-130) -277 + j*(-10) -51 + j*(288) -142 + j*(880) -291 + j*(-53) --218 + j*(246) --820 + j*(0) -0 + j*(-179) --201 + j*(144) --291 + j*(15) --413 + j*(1023) -0 + j*(1023) -473 + j*(-69) -833 + j*(-201) --44 + j*(-6) -209 + j*(302) -1023 + j*(-106) -98 + j*(-17) -620 + j*(126) -767 + j*(687) -111 + j*(-473) --166 + j*(167) -996 + j*(34) -0 + j*(24) --181 + j*(114) -1023 + j*(133) -0 + j*(-411) -179 + j*(11) --558 + j*(0) -450 + j*(258) --44 + j*(49) --493 + j*(23) -297 + j*(815) -84 + j*(111) --90 + j*(-489) -281 + j*(248) --451 + j*(99) --291 + j*(12) -163 + j*(-84) -266 + j*(76) --246 + j*(-54) --217 + j*(-252) --398 + j*(-950) -297 + j*(0) -0 + j*(-279) --263 + j*(372) -108 + j*(-7) -0 + j*(-323) -0 + j*(458) -381 + j*(84) --594 + j*(429) -556 + j*(536) -738 + j*(511) --594 + j*(-72) --9 + j*(1023) -1023 + j*(483) --879 + j*(-448) --706 + j*(1023) -354 + j*(1023) -1023 + j*(489) -1023 + j*(-1020) -1023 + j*(-1024) --531 + j*(-1024) -1023 + j*(502) -1023 + j*(-1024) -101 + j*(-1024) -966 + j*(1023) -184 + j*(-137) -920 + j*(-1024) -361 + j*(1023) -1023 + j*(592) -919 + j*(-1024) --406 + j*(1023) -677 + j*(0) -1023 + j*(401) -282 + j*(341) --452 + j*(-685) --676 + j*(-449) --1024 + j*(228) -559 + j*(-815) -220 + j*(-1024) --945 + j*(-339) -1023 + j*(-91) -279 + j*(-1024) --506 + j*(-1024) -1023 + j*(10) -581 + j*(-662) -176 + j*(-1024) -1023 + j*(396) -1023 + j*(-254) -226 + j*(-968) --1024 + j*(-1024) --1024 + j*(433) --1024 + j*(1003) -714 + j*(1023) --1024 + j*(-98) --1024 + j*(1023) -465 + j*(1023) --1024 + j*(-503) --1024 + j*(1023) -264 + j*(1023) --1024 + j*(-1024) --1024 + j*(1023) -362 + j*(1023) --1024 + j*(-1024) --881 + j*(127) --213 + j*(1023) -432 + j*(538) -925 + j*(0) -1023 + j*(-1024) --532 + j*(-901) -1023 + j*(0) -527 + j*(-1024) --196 + j*(-550) -196 + j*(-302) -641 + j*(-123) --374 + j*(377) --377 + j*(-121) --922 + j*(970) -218 + j*(1023) --747 + j*(-432) --1024 + j*(1023) -884 + j*(1023) -1023 + j*(-1) -1023 + j*(-1024) --13 + j*(-1024) --706 + j*(-886) -1023 + j*(-26) --10 + j*(-1024) --211 + j*(-801) -754 + j*(-22) -0 + j*(1023) --41 + j*(-260) --40 + j*(0) -0 + j*(-72) -0 + j*(1023) --635 + j*(-464) --1024 + j*(0) --694 + j*(1023) -1023 + j*(1023) -1023 + j*(-407) -663 + j*(-1024) --962 + j*(-1024) -1023 + j*(621) -1015 + j*(-1024) --763 + j*(-1024) -1023 + j*(304) -1023 + j*(-802) --327 + j*(-587) -639 + j*(104) --784 + j*(-416) --332 + j*(60) --263 + j*(-287) --963 + j*(374) --790 + j*(1023) -1023 + j*(981) -1023 + j*(141) -274 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-733) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(937) -1023 + j*(-1024) --436 + j*(-1024) -1023 + j*(63) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-298) -1023 + j*(-1024) --941 + j*(135) --329 + j*(1023) -884 + j*(1023) -1023 + j*(-891) -509 + j*(-1024) -1023 + j*(1023) -1023 + j*(-1024) -639 + j*(-1024) -1023 + j*(1023) -1023 + j*(-1024) -995 + j*(-1024) -1023 + j*(1023) -1023 + j*(-1024) -1023 + j*(-1024) -1023 + j*(1023) -1023 + j*(-207) -1023 + j*(-1024) --1024 + j*(-1024) --929 + j*(-798) --1024 + j*(280) -415 + j*(301) -151 + j*(354) -756 + j*(-199) -347 + j*(-675) -1023 + j*(967) -1023 + j*(-571) -578 + j*(-1024) -1023 + j*(1023) -1023 + j*(-720) -539 + j*(-1024) -874 + j*(1023) -1023 + j*(86) -1023 + j*(-1024) --91 + j*(-1024) --1024 + j*(-104) --1024 + j*(688) -596 + j*(488) --1024 + j*(200) --104 + j*(1023) -828 + j*(-65) --602 + j*(81) -21 + j*(-1024) -459 + j*(-184) --228 + j*(1023) -831 + j*(1023) -1023 + j*(-389) --472 + j*(1023) -939 + j*(1023) -1023 + j*(-995) -1023 + j*(-705) --435 + j*(-878) --1024 + j*(-799) --1024 + j*(309) -782 + j*(-1024) --120 + j*(-1024) --1024 + j*(-593) -938 + j*(-213) -400 + j*(-1024) --514 + j*(-1014) -1023 + j*(120) -1023 + j*(-1024) --432 + j*(-1024) -1023 + j*(616) -714 + j*(-912) -526 + j*(-1024) --572 + j*(-1024) --983 + j*(-621) --829 + j*(511) -339 + j*(521) --891 + j*(-3) --196 + j*(-63) --40 + j*(-61) -738 + j*(-90) --122 + j*(-1024) --408 + j*(-1024) -977 + j*(420) -1023 + j*(-1024) -147 + j*(-1024) -1023 + j*(720) -1023 + j*(-641) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(107) --1024 + j*(1023) -709 + j*(880) --1024 + j*(132) --580 + j*(1023) -454 + j*(627) --1024 + j*(608) --1024 + j*(705) -806 + j*(214) -147 + j*(234) -934 + j*(-328) --33 + j*(-1024) -634 + j*(463) -1023 + j*(-1024) --852 + j*(-1024) --1024 + j*(657) --1024 + j*(1023) -355 + j*(1023) -1023 + j*(1023) --1024 + j*(780) --1024 + j*(1023) -1023 + j*(1023) --1024 + j*(202) --704 + j*(1023) -1023 + j*(1023) --1024 + j*(-179) --1024 + j*(1023) -492 + j*(1023) --1024 + j*(-550) --1024 + j*(939) --9 + j*(1023) -1023 + j*(1023) -1023 + j*(-514) -1023 + j*(-1024) --125 + j*(-1024) -1023 + j*(1023) -1023 + j*(-316) -736 + j*(-1024) -286 + j*(1023) -1023 + j*(1023) -1023 + j*(-915) -30 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) --555 + j*(1023) -1023 + j*(1023) -1023 + j*(-539) -1023 + j*(-1024) --697 + j*(-1024) --1024 + j*(-650) --905 + j*(399) -19 + j*(-1024) -13 + j*(-978) --578 + j*(-262) -599 + j*(-439) -599 + j*(-1024) -95 + j*(-521) -309 + j*(751) -1023 + j*(213) -1023 + j*(-336) --253 + j*(1023) -949 + j*(1023) -1023 + j*(-409) -1023 + j*(-1024) --187 + j*(-1024) --1024 + j*(-1024) --1024 + j*(462) -370 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-310) -1023 + j*(-1024) -13 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-117) -1023 + j*(-1024) --677 + j*(-1024) -1023 + j*(600) -1023 + j*(-717) -310 + j*(-1024) --1024 + j*(-1024) --1024 + j*(523) --1024 + j*(923) -491 + j*(1023) --1024 + j*(-66) --1024 + j*(907) -217 + j*(1023) --1024 + j*(-743) --79 + j*(601) -156 + j*(1023) --1024 + j*(-638) --741 + j*(1023) -846 + j*(1023) --920 + j*(-599) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(-310) -1023 + j*(-1024) --190 + j*(-1024) --982 + j*(-1024) -1023 + j*(-1024) -397 + j*(-1024) --911 + j*(-1024) -1023 + j*(-271) -441 + j*(-1024) --1024 + j*(-1024) -1023 + j*(919) -1023 + j*(-1024) -481 + j*(-1024) -1023 + j*(1023) -1023 + j*(-211) -1023 + j*(-830) --700 + j*(-1024) --1024 + j*(-874) --1024 + j*(699) -89 + j*(776) --1024 + j*(-1024) --1024 + j*(-440) --356 + j*(121) -590 + j*(-349) --1024 + j*(-1024) --566 + j*(-899) -1023 + j*(180) -1023 + j*(-1024) --474 + j*(-1024) -1023 + j*(617) -1023 + j*(-1024) -678 + j*(-1024) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH2_sync_4xf1.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH2_sync_4xf1.m deleted file mode 100644 index 0c1f82aec317bad4b0f4bf070e4a8d1966da8283..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH2_sync_4xf1.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch2_sync_f_4x1 = [-47 + j*(-885) -736 + j*(44) -1012 + j*(-410) --506 + j*(-871) --1024 + j*(-995) --1002 + j*(1023) --793 + j*(1023) -1023 + j*(957) --1024 + j*(236) --883 + j*(1023) -887 + j*(1023) --1024 + j*(144) --1024 + j*(1023) -1023 + j*(1023) --1024 + j*(-58) --668 + j*(1023) -1023 + j*(1023) --1024 + j*(266) --578 + j*(1023) -1023 + j*(120) -1023 + j*(-887) --1024 + j*(-770) --1024 + j*(-656) --1007 + j*(947) --1024 + j*(-1024) --1024 + j*(36) --1024 + j*(1023) --1024 + j*(-887) --1024 + j*(337) -262 + j*(1023) --611 + j*(-1024) --1024 + j*(8) --1024 + j*(1023) --795 + j*(-1024) --394 + j*(153) -100 + j*(664) -926 + j*(-278) -0 + j*(-424) -225 + j*(-1024) --918 + j*(-939) -1023 + j*(-658) --261 + j*(-1024) --1024 + j*(-856) --670 + j*(-650) --122 + j*(-217) -46 + j*(1023) -635 + j*(-1024) --1024 + j*(-465) --1017 + j*(1023) --173 + j*(-1024) --1024 + j*(-984) --1024 + j*(899) -353 + j*(1023) -1023 + j*(1023) -1023 + j*(-895) --1024 + j*(-1024) -1023 + j*(401) -636 + j*(-1024) --1009 + j*(-1024) -1023 + j*(688) -1023 + j*(-1024) -258 + j*(-1024) -1023 + j*(167) -1023 + j*(-1024) --917 + j*(-1024) -1023 + j*(462) -1023 + j*(-1024) -391 + j*(-1024) --957 + j*(-1024) --1024 + j*(614) --783 + j*(1023) -409 + j*(241) --1024 + j*(95) --570 + j*(692) --345 + j*(-516) --92 + j*(-90) -416 + j*(1023) -354 + j*(-411) -1023 + j*(-75) -1023 + j*(-1024) --416 + j*(-1024) -1023 + j*(326) -1023 + j*(-605) --172 + j*(-1024) --1024 + j*(-1024) --1024 + j*(223) --882 + j*(1023) -418 + j*(843) --1024 + j*(-1023) --1024 + j*(1023) --408 + j*(654) --1024 + j*(-1024) --1024 + j*(1001) --1024 + j*(1023) -554 + j*(-1024) --1024 + j*(-1024) --1024 + j*(403) -780 + j*(-1024) --978 + j*(-1024) --1024 + j*(44) --1024 + j*(952) -498 + j*(1023) -1023 + j*(359) -1023 + j*(-1024) --17 + j*(1023) -1023 + j*(657) -1023 + j*(-1024) --130 + j*(1023) -888 + j*(1023) -1023 + j*(-805) -89 + j*(1023) -1023 + j*(1023) -1023 + j*(-600) --413 + j*(1023) -1023 + j*(1023) -1023 + j*(972) -1023 + j*(-1024) --512 + j*(-1024) --1024 + j*(-1024) --990 + j*(169) -892 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-794) -378 + j*(-1000) --1024 + j*(-166) --478 + j*(-343) -1023 + j*(-125) -1023 + j*(-1024) --788 + j*(-1024) -1023 + j*(399) -1023 + j*(-772) --1024 + j*(-998) --1024 + j*(-79) --980 + j*(1023) --331 + j*(760) -944 + j*(748) --1024 + j*(899) -17 + j*(1023) -735 + j*(355) --757 + j*(172) -198 + j*(1002) -1023 + j*(502) --139 + j*(484) -406 + j*(1023) -977 + j*(854) --312 + j*(613) -179 + j*(1018) -833 + j*(1023) -1023 + j*(-1024) -497 + j*(-609) --1024 + j*(-666) --1013 + j*(515) -743 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-271) -437 + j*(-1024) --359 + j*(-1024) --988 + j*(-245) -1023 + j*(-759) -417 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-23) -1023 + j*(-996) --348 + j*(-1024) --1024 + j*(-1024) --1024 + j*(689) --690 + j*(1023) -823 + j*(918) --1024 + j*(190) --1024 + j*(1023) -146 + j*(635) --1024 + j*(-260) --1024 + j*(885) -174 + j*(1023) -699 + j*(-455) -120 + j*(-25) --614 + j*(-153) -1023 + j*(-7) -456 + j*(-632) -947 + j*(-844) --1024 + j*(-1024) --1024 + j*(-278) --594 + j*(1023) -889 + j*(1023) --1024 + j*(-667) --1024 + j*(1023) -269 + j*(1023) --1024 + j*(-1024) --1024 + j*(451) --283 + j*(1023) --375 + j*(-1024) --1024 + j*(-601) --724 + j*(474) -405 + j*(-1024) --1024 + j*(-688) --1024 + j*(-176) --749 + j*(1023) -486 + j*(1023) -1023 + j*(518) -1023 + j*(-261) --1024 + j*(1023) -730 + j*(1023) -1023 + j*(448) --1024 + j*(431) --388 + j*(1023) -1023 + j*(1023) --1024 + j*(306) --991 + j*(1000) -741 + j*(1023) --1024 + j*(-481) --834 + j*(1023) --18 + j*(1023) -1023 + j*(960) -1023 + j*(-312) -129 + j*(-175) -63 + j*(-985) -678 + j*(550) -1023 + j*(61) -779 + j*(-1013) --541 + j*(68) --717 + j*(1023) -1023 + j*(762) -132 + j*(1023) -1023 + j*(1023) -1023 + j*(161) --343 + j*(1023) -406 + j*(1023) -1023 + j*(752) -121 + j*(-451) --210 + j*(-1024) --1024 + j*(-1) --498 + j*(780) --314 + j*(-1024) --1024 + j*(-1) --395 + j*(492) --987 + j*(-1024) --1024 + j*(813) --801 + j*(1023) --353 + j*(-878) --1024 + j*(-423) --427 + j*(1023) --643 + j*(-994) --1024 + j*(-38) --124 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) --1 + j*(-1024) --386 + j*(-953) -1023 + j*(-1) --1 + j*(-1024) --1 + j*(-942) -1023 + j*(-292) -510 + j*(-87) -121 + j*(-325) -930 + j*(367) -186 + j*(36) -28 + j*(-1024) -10 + j*(747) -1023 + j*(1023) -1023 + j*(60) -1023 + j*(-1024) --419 + j*(-1024) --815 + j*(-1024) --1024 + j*(411) -928 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-461) -1023 + j*(-1006) --659 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-228) -339 + j*(-1024) --1024 + j*(-911) -1023 + j*(301) -777 + j*(-1024) --759 + j*(-1024) --1024 + j*(-783) --1024 + j*(1023) --333 + j*(1023) -761 + j*(1023) --1024 + j*(-848) --883 + j*(982) -427 + j*(1023) --1024 + j*(-569) --1024 + j*(352) -203 + j*(1023) --1024 + j*(-916) --1024 + j*(742) --194 + j*(1023) --848 + j*(-1006) --1024 + j*(234) -241 + j*(1023) -210 + j*(1023) -1023 + j*(-257) -249 + j*(-1024) --644 + j*(-820) -1023 + j*(-360) -51 + j*(-1024) --361 + j*(-1024) -1023 + j*(-1024) --326 + j*(-1024) --1024 + j*(-241) -1023 + j*(-701) --796 + j*(-1024) --1024 + j*(-1) -1023 + j*(-769) --446 + j*(-1024) --1024 + j*(-230) --1024 + j*(677) --1 + j*(752) -1023 + j*(1023) -1023 + j*(-583) -326 + j*(499) -1023 + j*(14) -701 + j*(-282) -227 + j*(-448) -342 + j*(-542) --518 + j*(337) -558 + j*(225) -601 + j*(-251) --195 + j*(-673) -544 + j*(369) -736 + j*(104) --223 + j*(-985) --1010 + j*(57) --1024 + j*(407) -53 + j*(1023) -519 + j*(134) --750 + j*(-226) --484 + j*(-215) -651 + j*(-86) --270 + j*(-195) --817 + j*(1023) -0 + j*(757) -263 + j*(449) -281 + j*(-609) --491 + j*(-701) -363 + j*(106) -804 + j*(-617) --418 + j*(-1012) --719 + j*(-834) --1024 + j*(646) -338 + j*(1023) -487 + j*(18) --596 + j*(247) --1 + j*(107) -731 + j*(-126) -410 + j*(-428) --826 + j*(773) --337 + j*(341) -104 + j*(591) --1 + j*(-749) -211 + j*(-1) -178 + j*(205) -88 + j*(-1024) --28 + j*(127) --716 + j*(-862) --1 + j*(477) --1024 + j*(-1) -301 + j*(7) --1 + j*(129) --1024 + j*(-1) -600 + j*(-171) -109 + j*(-51) --525 + j*(373) --1 + j*(61) -152 + j*(647) -258 + j*(30) --125 + j*(82) -179 + j*(300) --1 + j*(663) --49 + j*(-379) -690 + j*(-1) --803 + j*(582) --1 + j*(-49) -219 + j*(84) -295 + j*(-1) --1 + j*(-445) -210 + j*(46) -693 + j*(-585) --670 + j*(-453) --715 + j*(163) -233 + j*(246) --597 + j*(-1) --1 + j*(-298) -162 + j*(347) --15 + j*(-1) --1 + j*(-841) --1 + j*(988) -910 + j*(-1) -202 + j*(403) -129 + j*(132) --131 + j*(-1) -184 + j*(426) -409 + j*(-76) -745 + j*(210) -323 + j*(238) --1 + j*(-414) -203 + j*(644) -316 + j*(273) --1 + j*(-154) -225 + j*(422) -766 + j*(-55) --388 + j*(241) --56 + j*(-353) -178 + j*(586) -394 + j*(-946) -79 + j*(288) -890 + j*(-862) --99 + j*(-646) -271 + j*(102) -784 + j*(-17) -429 + j*(-281) --155 + j*(-601) -240 + j*(462) -325 + j*(-95) --14 + j*(105) -353 + j*(335) -897 + j*(59) --1 + j*(516) -14 + j*(-856) --185 + j*(-1) --202 + j*(-307) -245 + j*(403) --191 + j*(-234) --993 + j*(-1) -17 + j*(142) --393 + j*(-669) --702 + j*(-1024) --228 + j*(746) --28 + j*(312) -86 + j*(-198) --246 + j*(-1) -226 + j*(150) --1 + j*(-587) --1 + j*(-134) --339 + j*(-109) -60 + j*(-898) --266 + j*(242) -343 + j*(242) --99 + j*(-209) --268 + j*(422) -612 + j*(297) -159 + j*(-184) --804 + j*(-87) -146 + j*(-43) --257 + j*(468) --81 + j*(1018) --296 + j*(214) --11 + j*(228) --74 + j*(904) --429 + j*(481) -372 + j*(-72) --392 + j*(-277) -92 + j*(-232) -158 + j*(130) --1 + j*(861) -733 + j*(123) -177 + j*(-135) -303 + j*(-130) -1023 + j*(406) --137 + j*(-55) --1 + j*(713) -431 + j*(-136) -48 + j*(-1) --2 + j*(425) --1 + j*(852) -765 + j*(-33) -584 + j*(-1) --1 + j*(-1024) --118 + j*(-64) -7 + j*(281) -427 + j*(-428) --372 + j*(-665) -286 + j*(239) -825 + j*(-1024) -592 + j*(300) --1024 + j*(141) --79 + j*(512) --259 + j*(-258) -212 + j*(-82) -94 + j*(398) -108 + j*(-122) -44 + j*(-139) --16 + j*(-726) -576 + j*(-166) -38 + j*(-96) -46 + j*(375) -524 + j*(-648) -326 + j*(-798) -272 + j*(393) -798 + j*(-442) --789 + j*(-1024) --845 + j*(-26) --178 + j*(406) --111 + j*(-896) --1024 + j*(-117) -54 + j*(332) -88 + j*(-617) --1024 + j*(-82) --623 + j*(889) --795 + j*(697) -890 + j*(592) -42 + j*(365) --291 + j*(100) -152 + j*(510) -187 + j*(410) -876 + j*(142) -283 + j*(471) --619 + j*(-1006) --72 + j*(385) -710 + j*(-157) --286 + j*(-885) -26 + j*(333) -1023 + j*(-1024) -872 + j*(-905) --780 + j*(-1024) --1024 + j*(535) --989 + j*(480) -19 + j*(412) --412 + j*(44) --1024 + j*(6) -204 + j*(533) -0 + j*(270) --257 + j*(0) --253 + j*(20) --309 + j*(256) --585 + j*(221) -608 + j*(36) --6 + j*(234) -118 + j*(567) -404 + j*(-330) -37 + j*(-151) --9 + j*(-1024) --354 + j*(-140) -68 + j*(353) --431 + j*(-730) --13 + j*(-277) -163 + j*(568) -158 + j*(519) -276 + j*(450) -361 + j*(-170) --510 + j*(146) --19 + j*(-379) --521 + j*(551) --186 + j*(218) --467 + j*(168) -1023 + j*(373) -918 + j*(-313) -673 + j*(-579) --747 + j*(503) --67 + j*(212) --156 + j*(657) --34 + j*(941) -361 + j*(363) -905 + j*(165) -69 + j*(165) --178 + j*(-533) --422 + j*(433) -439 + j*(464) -494 + j*(-909) --234 + j*(395) --81 + j*(848) -253 + j*(269) -911 + j*(-378) -354 + j*(-667) -327 + j*(-595) --329 + j*(249) -67 + j*(-511) -238 + j*(-451) --622 + j*(-4) -901 + j*(-336) --21 + j*(-480) --1024 + j*(-608) -39 + j*(314) -74 + j*(-681) --493 + j*(-33) --24 + j*(396) -42 + j*(-715) -1023 + j*(-65) --1024 + j*(90) -0 + j*(946) -198 + j*(126) --262 + j*(485) -744 + j*(-383) --53 + j*(-134) --229 + j*(623) -208 + j*(-502) -335 + j*(-434) --881 + j*(114) --244 + j*(-33) --398 + j*(-565) --815 + j*(-15) -16 + j*(159) -0 + j*(-1024) --1024 + j*(0) --16 + j*(-419) -0 + j*(1023) -358 + j*(54) --106 + j*(392) --75 + j*(236) -310 + j*(768) --71 + j*(646) -116 + j*(-93) --48 + j*(346) --382 + j*(127) --446 + j*(-45) -547 + j*(-690) --124 + j*(-586) --158 + j*(75) -648 + j*(-341) -0 + j*(707) --150 + j*(-209) -874 + j*(0) -4 + j*(-694) --178 + j*(199) -835 + j*(0) -0 + j*(-272) -40 + j*(338) -1023 + j*(358) -587 + j*(-3) --180 + j*(-1024) --397 + j*(68) -354 + j*(-120) -0 + j*(-884) --195 + j*(164) -257 + j*(232) -0 + j*(668) -972 + j*(11) -835 + j*(-253) -124 + j*(-927) --284 + j*(168) -753 + j*(216) --41 + j*(-548) --250 + j*(290) -1023 + j*(827) -982 + j*(-973) --112 + j*(-1024) --149 + j*(88) -347 + j*(-695) -245 + j*(-170) --185 + j*(189) -79 + j*(127) -1023 + j*(-1024) -418 + j*(-402) --1024 + j*(-960) -330 + j*(1023) --350 + j*(114) --216 + j*(-399) --17 + j*(-37) --290 + j*(240) -866 + j*(664) --57 + j*(713) --72 + j*(-1024) --244 + j*(126) -600 + j*(-216) -62 + j*(-962) --207 + j*(277) -1023 + j*(1023) -1023 + j*(-75) -398 + j*(-661) --431 + j*(-1024) -0 + j*(-624) --540 + j*(77) -737 + j*(0) --97 + j*(-558) --516 + j*(67) -1023 + j*(857) -1023 + j*(-855) -289 + j*(-1024) -52 + j*(137) -964 + j*(0) --231 + j*(-369) --15 + j*(405) -226 + j*(410) -347 + j*(0) -392 + j*(-341) --146 + j*(-628) --1024 + j*(0) --647 + j*(220) -0 + j*(-514) --550 + j*(-202) --857 + j*(115) -776 + j*(-497) -25 + j*(-610) --616 + j*(-1008) -367 + j*(-129) -1023 + j*(-769) --88 + j*(-1024) -269 + j*(262) -93 + j*(-113) -1023 + j*(-1024) -76 + j*(247) --183 + j*(-954) --1024 + j*(0) --560 + j*(54) -52 + j*(-981) --620 + j*(-399) --945 + j*(-285) -342 + j*(-596) -226 + j*(-743) --1014 + j*(-313) -1023 + j*(103) -463 + j*(-1024) --1024 + j*(-1024) -1023 + j*(649) -766 + j*(-1024) --171 + j*(-1024) --1024 + j*(0) --1024 + j*(775) -127 + j*(1023) -329 + j*(928) --386 + j*(-11) -642 + j*(228) -9 + j*(639) --53 + j*(1023) -1023 + j*(372) -558 + j*(-242) -74 + j*(-34) -1023 + j*(-507) -18 + j*(-980) -527 + j*(536) -833 + j*(450) -991 + j*(-488) --603 + j*(-599) --877 + j*(3) --1024 + j*(1023) -296 + j*(1014) --1024 + j*(604) --495 + j*(1023) -19 + j*(911) --85 + j*(297) --35 + j*(-71) -21 + j*(-424) --326 + j*(-85) -745 + j*(-432) -149 + j*(-1024) -278 + j*(548) -1023 + j*(-307) -197 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-123) --870 + j*(1023) -504 + j*(1023) --1024 + j*(-95) --341 + j*(1023) -478 + j*(1023) --1024 + j*(420) --6 + j*(1023) -1023 + j*(110) --1024 + j*(-36) --113 + j*(1023) -1023 + j*(148) --1024 + j*(579) --80 + j*(1023) -1023 + j*(459) -567 + j*(-458) --235 + j*(-736) --1024 + j*(-514) --1024 + j*(1023) --113 + j*(-1024) --1024 + j*(-394) --1024 + j*(1023) -317 + j*(-1024) --1024 + j*(-1024) --1024 + j*(292) --102 + j*(-1024) --1024 + j*(-1024) --1024 + j*(885) -393 + j*(-1024) --1000 + j*(12) --884 + j*(-733) --511 + j*(588) --705 + j*(279) -1023 + j*(847) -659 + j*(-184) --1017 + j*(175) --286 + j*(872) -497 + j*(782) --338 + j*(719) --402 + j*(641) -713 + j*(301) --854 + j*(-615) --1024 + j*(537) -171 + j*(963) --908 + j*(-686) --1024 + j*(233) --1024 + j*(561) -249 + j*(983) -661 + j*(217) -1023 + j*(0) --927 + j*(-784) -767 + j*(877) -882 + j*(-1008) --693 + j*(-691) -769 + j*(1023) -849 + j*(453) -900 + j*(-736) -330 + j*(598) -696 + j*(76) -1023 + j*(-409) --356 + j*(932) -0 + j*(1023) -1023 + j*(0) -1023 + j*(-730) -0 + j*(-1024) --1024 + j*(-979) --1024 + j*(556) -73 + j*(-1024) --1024 + j*(-1024) --1024 + j*(141) -744 + j*(-418) --303 + j*(-16) --534 + j*(-1024) -841 + j*(-1024) -827 + j*(-753) --273 + j*(-1024) -871 + j*(-95) -1023 + j*(-283) -543 + j*(-1024) --373 + j*(-1024) --1024 + j*(-659) --615 + j*(1013) --145 + j*(1023) --1024 + j*(-1024) --881 + j*(-15) --879 + j*(1023) --807 + j*(-696) --1024 + j*(653) --804 + j*(621) --156 + j*(-1024) --1024 + j*(-1024) --1024 + j*(672) -300 + j*(-1024) --519 + j*(-1024) --1024 + j*(-193) --180 + j*(1023) -1023 + j*(1023) -1023 + j*(-429) -207 + j*(-731) -228 + j*(1023) -1023 + j*(-105) --431 + j*(-296) -90 + j*(1023) -735 + j*(-44) -390 + j*(-608) -352 + j*(-950) --22 + j*(-874) --1024 + j*(-231) -456 + j*(-897) --1024 + j*(-1024) --1024 + j*(1011) --627 + j*(833) -1023 + j*(1023) -1023 + j*(-27) -554 + j*(-1024) -799 + j*(1023) -1023 + j*(229) -370 + j*(-1024) -633 + j*(1023) -1023 + j*(1023) -787 + j*(-1024) -792 + j*(869) -1023 + j*(-173) -824 + j*(-1024) -719 + j*(899) -1023 + j*(-23) -76 + j*(-1024) --909 + j*(-1024) --1024 + j*(-26) --855 + j*(1023) -729 + j*(755) --1024 + j*(687) --609 + j*(1023) -673 + j*(829) --1006 + j*(1023) -686 + j*(1023) -1023 + j*(63) --1024 + j*(363) -1023 + j*(1023) -1023 + j*(128) --1024 + j*(657) -1023 + j*(1023) -1023 + j*(233) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-352) --1024 + j*(720) --247 + j*(-1024) --1024 + j*(-928) --1024 + j*(591) -526 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-454) -490 + j*(-1024) --1024 + j*(-1024) --1024 + j*(0) -680 + j*(-1024) --51 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) -375 + j*(1023) -1023 + j*(1023) -1023 + j*(-865) --507 + j*(1023) -1023 + j*(1023) -1023 + j*(-922) --668 + j*(1023) -1023 + j*(1023) -1023 + j*(-438) --950 + j*(968) -1023 + j*(1023) -1023 + j*(367) -1023 + j*(-708) --686 + j*(-1024) --1024 + j*(-1024) --995 + j*(86) --144 + j*(-2) --168 + j*(31) --924 + j*(-308) -237 + j*(1023) -922 + j*(280) -1023 + j*(-927) -63 + j*(145) -844 + j*(722) -1023 + j*(-451) --641 + j*(624) -108 + j*(1023) -1023 + j*(-300) -1023 + j*(-217) --495 + j*(-1024) --1024 + j*(-991) --1024 + j*(124) -858 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-393) -1023 + j*(-323) -1023 + j*(-999) --411 + j*(-1024) -1023 + j*(-833) -1023 + j*(-1024) --953 + j*(-1024) -1023 + j*(251) -1023 + j*(-1024) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-92) --1024 + j*(1023) -28 + j*(1023) --1024 + j*(-1024) --1024 + j*(987) --793 + j*(1023) --1024 + j*(-921) --1024 + j*(333) --357 + j*(1023) --648 + j*(-1024) --1024 + j*(223) --967 + j*(1023) --776 + j*(-1024) --1024 + j*(144) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(508) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-16) -1 + j*(-1024) --1024 + j*(-1024) -1023 + j*(294) -407 + j*(-1024) --258 + j*(-1024) -1023 + j*(-242) -1023 + j*(-1024) --419 + j*(-1024) -1023 + j*(422) -1023 + j*(-545) -1023 + j*(-1024) --918 + j*(-1024) --1024 + j*(-801) --1024 + j*(1023) -184 + j*(417) --1024 + j*(-395) --842 + j*(453) --741 + j*(-203) -70 + j*(335) --527 + j*(329) -219 + j*(-990) -1023 + j*(-424) -1023 + j*(-1024) --314 + j*(-1024) -1023 + j*(209) -1023 + j*(-1024) --726 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --481 + j*(1023) -311 + j*(543) --821 + j*(-40) --327 + j*(453) --477 + j*(106) -24 + j*(71) -788 + j*(285) -108 + j*(-988) -990 + j*(-444) -706 + j*(-1024) --413 + j*(-1024) -1006 + j*(180) -1023 + j*(-853) -185 + j*(-1024) --472 + j*(-1024) --1024 + j*(-49) --1024 + j*(592) -549 + j*(773) --1024 + j*(189) --1024 + j*(440) --50 + j*(571) --1024 + j*(306) --614 + j*(509) -1023 + j*(577) -290 + j*(-527) -43 + j*(67) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH3_sync_4xf0.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH3_sync_4xf0.m deleted file mode 100644 index ffdb5f87812b4e27ed211d16fdbad053ebf301ce..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH3_sync_4xf0.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch3_sync_f_4x0 = [1023 + j*(-1024) -658 + j*(-1024) --1024 + j*(-1024) --801 + j*(607) --51 + j*(-1024) --718 + j*(-640) --485 + j*(626) --68 + j*(-221) --470 + j*(1023) -301 + j*(140) --856 + j*(-447) -49 + j*(1023) -166 + j*(349) --1024 + j*(-501) --1024 + j*(1023) -93 + j*(1023) -1023 + j*(1023) -1023 + j*(-923) -433 + j*(-1024) --827 + j*(-1024) -1023 + j*(-133) -1023 + j*(-1024) --336 + j*(-1024) -1023 + j*(-65) -482 + j*(-1024) --159 + j*(-1024) -559 + j*(1023) -1023 + j*(153) -1023 + j*(-864) --202 + j*(1023) -1023 + j*(759) -1023 + j*(-209) -710 + j*(-1024) --704 + j*(-1024) --1024 + j*(-837) --1024 + j*(758) -594 + j*(-1024) --1024 + j*(-1024) --1024 + j*(584) -369 + j*(-1024) --1024 + j*(-1024) --1024 + j*(438) -608 + j*(-1024) --769 + j*(-1024) --1024 + j*(-145) -607 + j*(-1024) --1024 + j*(-229) --60 + j*(-719) --189 + j*(1023) --574 + j*(-299) -1023 + j*(356) -800 + j*(-735) --48 + j*(1023) -1023 + j*(569) -1010 + j*(-354) -43 + j*(591) -777 + j*(346) -383 + j*(6) --855 + j*(441) --648 + j*(1023) -1023 + j*(1023) --960 + j*(-218) --1024 + j*(1023) -25 + j*(1023) -1023 + j*(216) -1023 + j*(692) -980 + j*(-1024) --506 + j*(-1024) -1023 + j*(950) -1023 + j*(-1024) -115 + j*(-1024) -582 + j*(1023) -1023 + j*(-1024) -916 + j*(-697) -459 + j*(1023) -1023 + j*(1023) -1023 + j*(-928) --363 + j*(1023) -574 + j*(1023) -1023 + j*(502) -1023 + j*(-213) -6 + j*(-1024) --1024 + j*(-1024) --1024 + j*(224) -737 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-286) -1023 + j*(-687) --6 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-985) --328 + j*(-1024) --1024 + j*(-855) -1009 + j*(-807) --784 + j*(-1024) --1024 + j*(-824) --1024 + j*(1023) -786 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) -716 + j*(1023) -1023 + j*(825) -1023 + j*(-1024) --73 + j*(1023) -1023 + j*(1023) -1023 + j*(-835) --125 + j*(1023) -1023 + j*(1023) -1023 + j*(-528) --515 + j*(1023) -1023 + j*(1023) -1023 + j*(-292) -1023 + j*(-1024) -207 + j*(-1024) --750 + j*(-1024) --623 + j*(160) -740 + j*(-310) -449 + j*(-1024) --161 + j*(-443) -291 + j*(765) -1023 + j*(831) -1023 + j*(-521) -32 + j*(1023) -1023 + j*(1023) -1023 + j*(-527) --582 + j*(1023) -465 + j*(1023) -1023 + j*(11) -1023 + j*(-437) --9 + j*(-1024) --1024 + j*(-535) --1024 + j*(186) -829 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-596) -1023 + j*(-748) -1023 + j*(-844) --731 + j*(-1024) -953 + j*(522) -1023 + j*(113) -1023 + j*(-1024) -84 + j*(1023) -1023 + j*(1023) -1023 + j*(-659) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-1024) --1024 + j*(699) -846 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-133) -1023 + j*(-1024) --436 + j*(-1024) --1024 + j*(-513) -1023 + j*(-885) -495 + j*(-1024) --576 + j*(-1024) -1023 + j*(122) -1023 + j*(-1024) --480 + j*(-1024) --1024 + j*(-918) --1024 + j*(621) --710 + j*(1023) -42 + j*(1023) --1024 + j*(-1024) --1024 + j*(1022) --986 + j*(1020) -442 + j*(-1024) --713 + j*(-255) --1024 + j*(-107) -650 + j*(-1024) --1000 + j*(-1024) --1024 + j*(-98) -884 + j*(-1024) --126 + j*(-1024) --1024 + j*(-637) -216 + j*(717) --359 + j*(1023) -955 + j*(-848) -465 + j*(-687) -708 + j*(1023) -940 + j*(-651) -79 + j*(-1017) -1023 + j*(128) -1023 + j*(-1024) --634 + j*(-1024) -1023 + j*(639) -1023 + j*(-1024) --58 + j*(-1024) -1023 + j*(813) -1023 + j*(-684) --50 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-1) --189 + j*(1023) -617 + j*(1023) --1024 + j*(-184) --788 + j*(529) -75 + j*(812) --494 + j*(414) -1023 + j*(469) -385 + j*(-180) -392 + j*(-182) -370 + j*(-560) --466 + j*(-876) -812 + j*(340) -1023 + j*(-613) --457 + j*(-788) --267 + j*(-1024) --1024 + j*(563) --1024 + j*(-141) -483 + j*(1023) --734 + j*(-441) --1024 + j*(-242) --91 + j*(887) --74 + j*(-1024) --1024 + j*(159) --1024 + j*(267) -10 + j*(-1024) --596 + j*(-388) --1024 + j*(-250) -501 + j*(-1024) --1 + j*(-743) --1024 + j*(-538) --220 + j*(1023) --741 + j*(1023) -1023 + j*(589) -1023 + j*(-365) --683 + j*(1023) -1023 + j*(776) -912 + j*(-104) --1024 + j*(1023) --27 + j*(403) -988 + j*(435) -148 + j*(392) -1023 + j*(374) -512 + j*(-771) -633 + j*(397) -777 + j*(322) -1023 + j*(-287) --75 + j*(-220) --271 + j*(-902) --1024 + j*(534) -955 + j*(1023) --1024 + j*(305) --1024 + j*(1023) -605 + j*(1023) --504 + j*(-481) --650 + j*(-1) --113 + j*(866) --908 + j*(-1024) --1024 + j*(-1) --921 + j*(1023) --90 + j*(-1024) --1024 + j*(-621) --385 + j*(-876) --336 + j*(266) --414 + j*(191) -371 + j*(1023) -1023 + j*(-170) --1024 + j*(622) --1 + j*(1023) -1023 + j*(609) --1024 + j*(271) --1 + j*(1023) -889 + j*(1023) --1024 + j*(15) --621 + j*(1023) --1 + j*(1023) --1024 + j*(-505) --1024 + j*(537) --727 + j*(1023) -1023 + j*(959) -1023 + j*(433) -774 + j*(-1024) --27 + j*(-825) -1023 + j*(765) -1023 + j*(-1) -593 + j*(-327) --216 + j*(1023) -168 + j*(-1) -1023 + j*(298) --715 + j*(307) -117 + j*(976) -723 + j*(751) --941 + j*(-392) --702 + j*(844) --365 + j*(490) -514 + j*(1023) -961 + j*(616) -425 + j*(-1024) --420 + j*(-1024) -1023 + j*(822) -1023 + j*(-812) -409 + j*(-1024) -1023 + j*(1023) -1023 + j*(-332) -958 + j*(-1024) -346 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) --382 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-579) --1024 + j*(693) -254 + j*(-1024) --566 + j*(-1024) --1024 + j*(314) --47 + j*(-1024) --769 + j*(-1024) --1024 + j*(424) -467 + j*(-631) --231 + j*(-1024) --735 + j*(-1) -319 + j*(-262) --49 + j*(85) -488 + j*(-1) --1 + j*(469) --1 + j*(-1024) -131 + j*(-1) -82 + j*(-39) --9 + j*(-637) --386 + j*(-1) -41 + j*(-30) -410 + j*(-225) -136 + j*(519) --200 + j*(-603) --23 + j*(55) -1023 + j*(-110) --1 + j*(-68) --68 + j*(53) -78 + j*(238) -1023 + j*(-725) -649 + j*(356) --784 + j*(-263) -251 + j*(-327) --152 + j*(5) -631 + j*(-1) -428 + j*(-383) --182 + j*(-43) -34 + j*(-174) -8 + j*(395) --177 + j*(-112) -150 + j*(-76) -284 + j*(-482) --191 + j*(-200) -121 + j*(-22) --388 + j*(-208) --421 + j*(-727) --583 + j*(432) --404 + j*(281) -992 + j*(408) -92 + j*(51) -56 + j*(228) -719 + j*(48) -88 + j*(98) --323 + j*(118) -223 + j*(113) -95 + j*(194) --144 + j*(-27) -96 + j*(-83) -132 + j*(-143) --114 + j*(-57) -378 + j*(-225) -123 + j*(-786) --434 + j*(-214) --638 + j*(-277) --204 + j*(469) --44 + j*(-92) -127 + j*(-594) -163 + j*(-262) -4 + j*(-96) --422 + j*(-441) --336 + j*(1003) --255 + j*(522) -10 + j*(81) --238 + j*(-84) -191 + j*(-1) --32 + j*(70) --107 + j*(-220) --866 + j*(-1) -297 + j*(301) --1 + j*(260) -351 + j*(-250) --77 + j*(56) --1 + j*(98) --16 + j*(-82) --102 + j*(59) --113 + j*(41) -11 + j*(81) -39 + j*(208) -16 + j*(-123) --509 + j*(-1) --414 + j*(472) -33 + j*(-100) --530 + j*(-383) --356 + j*(-330) -669 + j*(358) --118 + j*(9) -190 + j*(-1024) -84 + j*(-38) -811 + j*(-168) -97 + j*(-771) -114 + j*(18) -320 + j*(-5) --1 + j*(-823) --38 + j*(-144) --114 + j*(29) -17 + j*(394) -864 + j*(179) --134 + j*(-52) --175 + j*(1023) -52 + j*(-250) -252 + j*(-53) -456 + j*(149) -280 + j*(114) --83 + j*(-122) -58 + j*(111) -80 + j*(-329) --55 + j*(-136) --209 + j*(112) -483 + j*(-74) --32 + j*(255) -94 + j*(20) --589 + j*(-206) --253 + j*(233) -61 + j*(-1) --181 + j*(-221) --1 + j*(556) --402 + j*(-417) -311 + j*(-1) -453 + j*(-243) -76 + j*(-14) -176 + j*(-1) -108 + j*(-596) -100 + j*(17) --570 + j*(245) --599 + j*(1009) -319 + j*(546) --112 + j*(13) --547 + j*(-80) --496 + j*(43) --97 + j*(-56) --657 + j*(148) --383 + j*(520) -425 + j*(886) -224 + j*(175) -234 + j*(187) -5 + j*(-159) --43 + j*(-1) -81 + j*(112) -97 + j*(-179) --229 + j*(428) -425 + j*(-990) -401 + j*(249) --16 + j*(200) -508 + j*(-1) --1 + j*(84) --89 + j*(129) -255 + j*(350) -1021 + j*(969) -201 + j*(-1024) -1002 + j*(-927) --1024 + j*(-654) --135 + j*(-35) -255 + j*(-913) --683 + j*(-480) --135 + j*(-129) -571 + j*(117) -879 + j*(-996) --108 + j*(-502) -152 + j*(64) -341 + j*(-382) --608 + j*(-646) -88 + j*(87) -1023 + j*(-320) --1 + j*(-824) --948 + j*(-933) --1024 + j*(-1) --122 + j*(8) -9 + j*(51) --542 + j*(18) --105 + j*(-46) -0 + j*(9) --264 + j*(379) -224 + j*(447) -421 + j*(170) -24 + j*(40) --51 + j*(0) -61 + j*(-387) -16 + j*(55) -1023 + j*(109) -1023 + j*(-481) --846 + j*(-687) --749 + j*(-208) --1024 + j*(995) --15 + j*(27) --953 + j*(-235) --270 + j*(344) --18 + j*(33) -207 + j*(432) --642 + j*(-804) -402 + j*(-444) -66 + j*(74) --84 + j*(-7) -0 + j*(-27) -54 + j*(120) -1023 + j*(306) -327 + j*(-579) --174 + j*(-404) --138 + j*(-541) --290 + j*(-975) --23 + j*(183) -24 + j*(-1) --575 + j*(-217) --91 + j*(196) --360 + j*(-452) --1024 + j*(122) --294 + j*(295) --23 + j*(-188) --59 + j*(-381) --348 + j*(-208) -46 + j*(-132) -112 + j*(0) --95 + j*(4) -0 + j*(-71) --144 + j*(491) -69 + j*(71) -119 + j*(-30) -14 + j*(229) -470 + j*(372) -141 + j*(16) -95 + j*(828) -603 + j*(126) -807 + j*(-238) --103 + j*(74) -0 + j*(-154) -84 + j*(286) --78 + j*(44) --591 + j*(-939) -62 + j*(170) --899 + j*(867) -424 + j*(321) -0 + j*(742) --46 + j*(25) -190 + j*(0) -394 + j*(-243) --34 + j*(13) -914 + j*(-30) -395 + j*(704) --187 + j*(-944) -17 + j*(89) -1023 + j*(292) -747 + j*(-200) -18 + j*(56) -1023 + j*(1023) -59 + j*(-586) -1023 + j*(-1024) --1024 + j*(298) --1024 + j*(-173) --20 + j*(136) --302 + j*(-957) --1024 + j*(-717) --65 + j*(172) --595 + j*(-111) --958 + j*(-269) -117 + j*(548) --63 + j*(-164) -69 + j*(407) --93 + j*(-31) --11 + j*(-120) -291 + j*(-85) -19 + j*(-285) --472 + j*(94) --222 + j*(682) -677 + j*(601) -32 + j*(-36) -0 + j*(633) -339 + j*(547) -33 + j*(-5) -274 + j*(213) --11 + j*(-169) -249 + j*(-318) --15 + j*(26) -32 + j*(189) --14 + j*(-865) --9 + j*(47) --2 + j*(27) -0 + j*(918) -124 + j*(765) -760 + j*(-330) -869 + j*(-552) --65 + j*(127) -89 + j*(29) -542 + j*(-313) --149 + j*(158) -158 + j*(-725) --79 + j*(0) --738 + j*(57) -42 + j*(-243) --566 + j*(0) -0 + j*(-114) -118 + j*(-167) --496 + j*(0) -0 + j*(-376) --10 + j*(552) -389 + j*(0) -0 + j*(986) -184 + j*(39) -87 + j*(0) -0 + j*(104) -162 + j*(168) --145 + j*(143) --514 + j*(649) -224 + j*(52) --227 + j*(-40) -314 + j*(252) -0 + j*(-94) --139 + j*(-132) -306 + j*(6) --57 + j*(633) --37 + j*(-106) -1023 + j*(-17) -385 + j*(-763) --28 + j*(-92) -122 + j*(898) -467 + j*(-32) --20 + j*(-45) -444 + j*(-342) --207 + j*(904) --408 + j*(-409) -24 + j*(-42) -252 + j*(-100) -0 + j*(-132) -37 + j*(-39) --501 + j*(908) --250 + j*(13) -454 + j*(436) -8 + j*(0) --359 + j*(393) -51 + j*(62) -105 + j*(0) --909 + j*(-160) -7 + j*(150) --385 + j*(-356) --249 + j*(542) --197 + j*(553) --110 + j*(-191) --656 + j*(-109) -20 + j*(504) --32 + j*(-202) -8 + j*(572) --327 + j*(286) -490 + j*(-138) --34 + j*(-63) --186 + j*(-433) -101 + j*(-130) -1023 + j*(0) --37 + j*(-14) -0 + j*(-86) -370 + j*(-207) --11 + j*(84) --163 + j*(-378) -0 + j*(34) -293 + j*(0) --76 + j*(0) --137 + j*(52) -10 + j*(40) -68 + j*(0) -0 + j*(-394) -0 + j*(165) --307 + j*(0) --209 + j*(50) --96 + j*(-473) --527 + j*(-109) --301 + j*(46) -62 + j*(-866) --315 + j*(-207) --759 + j*(190) -185 + j*(-257) --613 + j*(150) -0 + j*(334) -177 + j*(-110) --233 + j*(998) -361 + j*(340) -1023 + j*(-389) -595 + j*(-461) --1024 + j*(-801) --77 + j*(276) --242 + j*(-949) --1024 + j*(-396) --468 + j*(498) --213 + j*(-614) --569 + j*(-392) --842 + j*(537) -141 + j*(-1024) --583 + j*(-893) --1024 + j*(-333) -484 + j*(-1024) -55 + j*(-1024) --1024 + j*(-316) --356 + j*(316) --424 + j*(1023) -1023 + j*(347) -1023 + j*(-754) --402 + j*(1023) -1023 + j*(1023) -1023 + j*(-292) --758 + j*(1012) -640 + j*(1023) -998 + j*(504) --1024 + j*(638) --854 + j*(1023) -857 + j*(1023) --1024 + j*(-129) --695 + j*(721) -538 + j*(1023) -1023 + j*(758) -714 + j*(-818) -1023 + j*(-1024) --758 + j*(-999) -1023 + j*(-322) -734 + j*(-1024) --637 + j*(-1024) -1023 + j*(510) -864 + j*(-1024) --337 + j*(-1024) -1023 + j*(764) -1023 + j*(-1024) -28 + j*(-1024) -1023 + j*(908) -1023 + j*(-1024) -395 + j*(-1024) --1024 + j*(-990) --746 + j*(-434) -0 + j*(1023) -793 + j*(616) --1024 + j*(86) -267 + j*(1023) -716 + j*(228) --215 + j*(1007) -1023 + j*(1023) -951 + j*(-763) -156 + j*(756) -1015 + j*(86) -1023 + j*(-1024) -498 + j*(852) -1023 + j*(-511) -750 + j*(-1024) --1024 + j*(-1024) --1024 + j*(843) --814 + j*(1023) -888 + j*(951) --711 + j*(879) --209 + j*(1009) -1023 + j*(707) --1024 + j*(198) --175 + j*(1023) -1023 + j*(1023) --1024 + j*(610) --32 + j*(1023) -1023 + j*(779) --1006 + j*(795) -240 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) --308 + j*(-1024) --1024 + j*(3) --739 + j*(1023) --529 + j*(-1024) --1024 + j*(31) --721 + j*(1023) --370 + j*(-1024) --1024 + j*(-245) --1024 + j*(875) --65 + j*(-1024) --1024 + j*(-375) --1024 + j*(78) -328 + j*(-1024) --420 + j*(-1024) --1024 + j*(-131) --870 + j*(1023) -56 + j*(1023) -1023 + j*(-22) -1023 + j*(-384) --414 + j*(1023) -532 + j*(1023) -1023 + j*(485) --1024 + j*(656) --927 + j*(1023) -856 + j*(1023) --1024 + j*(198) --496 + j*(1023) -430 + j*(1023) --1024 + j*(-409) --1024 + j*(1023) --239 + j*(1023) -1023 + j*(471) -1023 + j*(318) -10 + j*(-968) --360 + j*(-723) -494 + j*(-48) -313 + j*(-1024) -292 + j*(-539) --55 + j*(824) -754 + j*(-1024) -973 + j*(0) --220 + j*(603) -325 + j*(626) -351 + j*(-94) --565 + j*(704) -815 + j*(230) -333 + j*(920) -241 + j*(-787) -105 + j*(-396) --788 + j*(-228) --759 + j*(845) --816 + j*(-888) --1024 + j*(456) --788 + j*(1023) --611 + j*(-763) --1024 + j*(436) --251 + j*(1023) --905 + j*(-1024) --1024 + j*(427) --1024 + j*(1023) --954 + j*(-1024) --1024 + j*(721) --636 + j*(1023) -1023 + j*(1023) -1023 + j*(-518) -1023 + j*(-1024) --1024 + j*(-926) -1023 + j*(-548) -692 + j*(-1024) --1024 + j*(-934) -1023 + j*(-1024) --73 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-994) -129 + j*(-1024) --1024 + j*(-875) -1023 + j*(-936) --496 + j*(-1024) --799 + j*(-440) --1024 + j*(1023) -571 + j*(1023) -1023 + j*(831) -1023 + j*(-806) -302 + j*(1023) -1023 + j*(1023) -1023 + j*(-652) --687 + j*(1023) -1023 + j*(1023) -1023 + j*(1) --716 + j*(1023) -1023 + j*(1023) -1023 + j*(132) --861 + j*(1023) -1000 + j*(1023) -1023 + j*(329) -994 + j*(-895) -25 + j*(-1024) --1024 + j*(-122) --1024 + j*(602) --22 + j*(-1024) --1024 + j*(-655) --1024 + j*(487) -351 + j*(-1024) --1024 + j*(-1024) --1024 + j*(532) -693 + j*(-1024) --1024 + j*(-1024) --1024 + j*(246) -795 + j*(-1024) --902 + j*(-1024) --1024 + j*(-921) --1024 + j*(1023) --904 + j*(1023) -1023 + j*(1023) -976 + j*(-265) --845 + j*(1023) -580 + j*(1023) -967 + j*(353) --981 + j*(828) --782 + j*(417) -834 + j*(1023) --1024 + j*(-236) --1024 + j*(1023) --42 + j*(1023) --1024 + j*(-758) --1024 + j*(831) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(-26) -1023 + j*(-1024) --676 + j*(-1024) -1023 + j*(-19) -968 + j*(-1024) --639 + j*(-1024) -1023 + j*(582) -1023 + j*(-488) --444 + j*(-1024) -1023 + j*(-205) --684 + j*(-1024) --1024 + j*(-576) -784 + j*(-575) --1024 + j*(-1024) --1024 + j*(701) --231 + j*(1023) -1023 + j*(1023) -1023 + j*(-18) -785 + j*(-1024) -861 + j*(1023) -1023 + j*(181) -980 + j*(-1024) -1023 + j*(1023) -1023 + j*(-528) -1023 + j*(-1024) -1023 + j*(1023) -1023 + j*(-685) -1023 + j*(-1024) -1023 + j*(1023) -693 + j*(-94) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-656) --837 + j*(1023) -1023 + j*(872) --1024 + j*(746) -632 + j*(1023) -1023 + j*(880) --1024 + j*(1023) -118 + j*(1023) -1023 + j*(1023) --1024 + j*(1011) --74 + j*(1023) -1023 + j*(682) --1024 + j*(793) --464 + j*(1023) -1023 + j*(594) -1023 + j*(-638) --78 + j*(-1024) --1024 + j*(-78) --1001 + j*(584) -3 + j*(-1024) --1024 + j*(-941) --1024 + j*(568) -704 + j*(-1024) -81 + j*(289) --1024 + j*(-135) -298 + j*(-1024) --1024 + j*(-855) --1024 + j*(683) -514 + j*(-983) --1024 + j*(-1024) --1024 + j*(1023) --994 + j*(529) -1023 + j*(1023) -1023 + j*(-461) -1023 + j*(-675) -902 + j*(1023) -1023 + j*(919) -1023 + j*(-448) --654 + j*(1023) -384 + j*(1023) -1023 + j*(-67) --884 + j*(1023) -1023 + j*(1023) -1023 + j*(222) --875 + j*(1023) --172 + j*(1023) -1023 + j*(1023) -1023 + j*(-614) -374 + j*(-1024) --918 + j*(-1024) --823 + j*(745) --552 + j*(-1024) --1024 + j*(-863) --949 + j*(816) --282 + j*(-1024) --500 + j*(-383) --912 + j*(804) -23 + j*(-1024) --1024 + j*(-843) --1024 + j*(265) -350 + j*(-1024) --867 + j*(-914) --1024 + j*(-859) --1024 + j*(505) --835 + j*(1023) -1023 + j*(1023) -1023 + j*(-594) --936 + j*(1023) -1023 + j*(1023) -1023 + j*(-17) --659 + j*(1023) -771 + j*(529) -1023 + j*(378) --1024 + j*(652) --186 + j*(1023) -1023 + j*(1023) --1024 + j*(-131) --657 + j*(1023) -303 + j*(868) -686 + j*(-357) -748 + j*(141) -831 + j*(-870) --38 + j*(-1024) -945 + j*(1023) -1023 + j*(-51) -865 + j*(-1024) --77 + j*(1023) -820 + j*(842) -1023 + j*(-305) --427 + j*(1023) -1023 + j*(1023) -1023 + j*(24) --837 + j*(1023) -1015 + j*(1023) -1023 + j*(895) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH3_sync_4xf1.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH3_sync_4xf1.m deleted file mode 100644 index 63b254c87df16efbc6b614cb676c4d7be2ab8200..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/CHSCH3_sync_4xf1.m +++ /dev/null @@ -1,1025 +0,0 @@ -chsch3_sync_f_4x1 = [1023 + j*(-31) --778 + j*(781) -419 + j*(1023) -1023 + j*(-71) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-1024) --1024 + j*(133) -262 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-610) -812 + j*(-418) -1023 + j*(-673) --382 + j*(-988) -1023 + j*(-219) -832 + j*(-1024) --64 + j*(-1024) -1023 + j*(409) -1023 + j*(-1024) -1023 + j*(-1024) --1024 + j*(-981) --1024 + j*(-1024) --877 + j*(791) -703 + j*(628) --701 + j*(220) -34 + j*(507) -639 + j*(415) --1024 + j*(377) -913 + j*(1023) -955 + j*(461) --607 + j*(620) -612 + j*(508) -1023 + j*(316) --802 + j*(806) --394 + j*(1023) -1023 + j*(299) -1023 + j*(-899) --77 + j*(-1024) --1024 + j*(-299) --1024 + j*(444) --25 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-67) --235 + j*(-586) --1024 + j*(640) -88 + j*(54) -426 + j*(-45) -1023 + j*(838) -1023 + j*(-494) --237 + j*(568) -1023 + j*(1023) -1023 + j*(-1024) -844 + j*(-1024) --589 + j*(-1024) --1024 + j*(-898) --1024 + j*(408) --30 + j*(-1024) --1024 + j*(-991) --1024 + j*(-388) -769 + j*(-1024) -341 + j*(-1024) --871 + j*(-963) -1023 + j*(-802) -762 + j*(-1024) --1014 + j*(-1024) -1023 + j*(124) -1023 + j*(-779) -841 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-703) --1024 + j*(1023) -546 + j*(897) --1024 + j*(-587) --1024 + j*(1023) -78 + j*(720) --1024 + j*(53) --352 + j*(1023) -721 + j*(632) --292 + j*(-71) -227 + j*(423) -837 + j*(655) --483 + j*(422) --127 + j*(-78) -412 + j*(1023) -871 + j*(-1024) -591 + j*(-1024) --1024 + j*(-970) --1024 + j*(564) -970 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-79) -458 + j*(-1024) -691 + j*(-1024) --1024 + j*(-99) -1023 + j*(-1017) -370 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-67) -1023 + j*(-1024) --469 + j*(-1024) --730 + j*(-1024) --1024 + j*(147) --612 + j*(1023) -165 + j*(1023) --1024 + j*(-505) --1024 + j*(1023) --832 + j*(864) --1024 + j*(-1024) --1024 + j*(92) --762 + j*(1015) -841 + j*(-1024) --845 + j*(-1003) --872 + j*(-749) -1023 + j*(-121) -1012 + j*(-539) --452 + j*(-1024) --1024 + j*(-1024) --876 + j*(852) --887 + j*(1023) -299 + j*(1023) --1024 + j*(-1024) --1024 + j*(1023) --828 + j*(1023) --1024 + j*(-1024) --1024 + j*(-374) --1024 + j*(1023) --197 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) -537 + j*(-1024) --1024 + j*(-1024) --1024 + j*(958) --1024 + j*(1023) -709 + j*(1023) -1023 + j*(1023) -1023 + j*(-61) --1024 + j*(1023) -485 + j*(1023) -805 + j*(801) --1024 + j*(262) --1024 + j*(236) -819 + j*(1023) --1024 + j*(-939) --1024 + j*(899) --478 + j*(1023) --1024 + j*(-1024) --1024 + j*(456) --444 + j*(1023) -378 + j*(1023) -684 + j*(-537) -1023 + j*(-1024) --894 + j*(-849) -1023 + j*(-315) -328 + j*(-982) --1024 + j*(-789) --227 + j*(-1024) --514 + j*(-935) --1024 + j*(911) -1023 + j*(-1024) --830 + j*(-1024) --1024 + j*(-693) -1023 + j*(-1024) --1024 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1023) --350 + j*(1023) -1023 + j*(1023) -883 + j*(-825) -154 + j*(1023) -1023 + j*(659) -426 + j*(-703) --1024 + j*(63) -101 + j*(-422) -296 + j*(1023) -682 + j*(-457) --1024 + j*(-1024) --1024 + j*(-31) -776 + j*(-907) --983 + j*(-1024) --1024 + j*(-789) --1024 + j*(584) -904 + j*(1023) -933 + j*(1023) -1023 + j*(-1024) --212 + j*(1023) -1023 + j*(1013) -898 + j*(-1024) --490 + j*(377) -311 + j*(312) -168 + j*(257) -675 + j*(1017) -1001 + j*(-463) --1 + j*(-732) -782 + j*(962) -1023 + j*(-1024) -367 + j*(-832) --1024 + j*(-821) --1024 + j*(267) --1024 + j*(1023) -1023 + j*(1023) --1024 + j*(1023) --1024 + j*(1023) -1023 + j*(1023) --1024 + j*(495) --1024 + j*(-191) -1023 + j*(1023) --1024 + j*(-309) --1024 + j*(1023) -63 + j*(1023) --1024 + j*(-757) --1024 + j*(735) -841 + j*(1023) -555 + j*(-30) -1023 + j*(-1024) --235 + j*(-1024) --271 + j*(-968) -1017 + j*(-14) -69 + j*(-646) -257 + j*(-850) -338 + j*(241) --411 + j*(-1024) -346 + j*(-8) --258 + j*(224) -44 + j*(135) -322 + j*(30) --701 + j*(-409) -287 + j*(249) -1023 + j*(655) -471 + j*(1023) -573 + j*(-793) -1023 + j*(-466) --438 + j*(-1024) -1023 + j*(1023) -1023 + j*(-966) -12 + j*(-1024) -450 + j*(647) -1023 + j*(-608) -934 + j*(-411) -1023 + j*(1023) -1023 + j*(896) -1023 + j*(-1024) -30 + j*(1023) -1023 + j*(956) -1023 + j*(143) -566 + j*(-1024) -52 + j*(-1024) --1024 + j*(-1024) --972 + j*(133) -1023 + j*(-339) -44 + j*(-1024) --955 + j*(-904) -852 + j*(-760) --238 + j*(-996) --1024 + j*(-195) -1023 + j*(-14) -606 + j*(-1024) --1011 + j*(-1024) -1023 + j*(451) -1023 + j*(-1024) -229 + j*(-1024) --1006 + j*(-1024) --1024 + j*(-243) --1024 + j*(706) -658 + j*(950) --541 + j*(-297) --1024 + j*(58) -65 + j*(701) --93 + j*(-1024) --1024 + j*(251) --595 + j*(1023) --81 + j*(-950) --931 + j*(5) --359 + j*(-33) -432 + j*(-1024) --961 + j*(14) -55 + j*(304) --1024 + j*(1023) -272 + j*(519) -1023 + j*(379) -1023 + j*(-931) --368 + j*(1023) -1023 + j*(1023) -1023 + j*(-633) --328 + j*(1023) --143 + j*(1023) -1023 + j*(-134) --509 + j*(1023) -1023 + j*(1023) -1023 + j*(15) --683 + j*(1023) -287 + j*(1023) -1023 + j*(-1) -910 + j*(-472) --99 + j*(-1024) --1024 + j*(-1) --507 + j*(445) --1 + j*(-1024) --964 + j*(-477) --11 + j*(-138) --169 + j*(-800) --485 + j*(-89) --40 + j*(504) -92 + j*(873) -1023 + j*(1023) -1023 + j*(15) --315 + j*(978) -190 + j*(1023) -1023 + j*(-1) -953 + j*(-1024) --1 + j*(-1024) --1024 + j*(-730) --983 + j*(756) --1 + j*(-1024) --843 + j*(-1024) --1024 + j*(408) -630 + j*(-1024) --567 + j*(-1024) --1024 + j*(-1) -735 + j*(-698) --1 + j*(-470) --91 + j*(306) -551 + j*(-307) -711 + j*(-977) --224 + j*(-572) --742 + j*(-447) --721 + j*(-1) --1 + j*(-352) -99 + j*(165) --139 + j*(-93) --1024 + j*(-1) --57 + j*(48) --1 + j*(-1024) --353 + j*(-684) --906 + j*(-1) -385 + j*(-143) -89 + j*(-177) --918 + j*(-1) -354 + j*(-133) -150 + j*(-487) --353 + j*(-1) --1 + j*(-236) --1 + j*(-282) -6 + j*(-1) -208 + j*(47) --148 + j*(-226) --177 + j*(-325) -212 + j*(-67) --388 + j*(-645) --982 + j*(510) --312 + j*(748) -242 + j*(139) --711 + j*(-25) --419 + j*(32) -213 + j*(20) --75 + j*(96) -9 + j*(-110) --1024 + j*(-935) --366 + j*(-1) --1 + j*(45) -133 + j*(20) --157 + j*(-1) --1 + j*(-1006) --71 + j*(133) -637 + j*(-838) --1024 + j*(-1) --794 + j*(-115) -270 + j*(-1) --52 + j*(-495) --1 + j*(239) -219 + j*(176) --239 + j*(-118) --1 + j*(-379) --645 + j*(-363) --181 + j*(-1) -194 + j*(411) -85 + j*(134) --856 + j*(150) --113 + j*(82) -158 + j*(-53) --356 + j*(-814) --493 + j*(-125) --754 + j*(697) -284 + j*(255) --6 + j*(-565) --8 + j*(-215) -263 + j*(174) --284 + j*(-276) --1 + j*(147) --789 + j*(-1) -651 + j*(-1) -261 + j*(327) -136 + j*(205) --341 + j*(-1) --314 + j*(106) -202 + j*(66) -80 + j*(243) --855 + j*(409) -118 + j*(18) -186 + j*(220) --519 + j*(-1) --81 + j*(441) -226 + j*(142) --950 + j*(492) --47 + j*(-180) --415 + j*(16) --1 + j*(122) -742 + j*(67) -158 + j*(222) -249 + j*(111) -17 + j*(434) -240 + j*(139) -152 + j*(-333) --932 + j*(363) --266 + j*(-57) -88 + j*(191) -366 + j*(-159) --57 + j*(416) -175 + j*(97) --828 + j*(-34) --1 + j*(72) --21 + j*(628) -568 + j*(78) --88 + j*(-3) -187 + j*(188) --107 + j*(-1) --369 + j*(-122) -317 + j*(158) --499 + j*(-1024) --36 + j*(-595) --788 + j*(974) --38 + j*(233) --36 + j*(-363) --270 + j*(70) -59 + j*(95) --1 + j*(-228) -111 + j*(-23) -131 + j*(182) --1 + j*(-560) --29 + j*(-140) -64 + j*(41) -3 + j*(-523) -446 + j*(-164) -73 + j*(-277) -112 + j*(-265) --1 + j*(-503) --166 + j*(-1) --1 + j*(242) -529 + j*(-122) --769 + j*(-170) -21 + j*(192) -328 + j*(-247) -424 + j*(578) -265 + j*(-1) -420 + j*(-220) -287 + j*(-731) --9 + j*(145) -334 + j*(-230) --721 + j*(-177) -150 + j*(61) -256 + j*(-839) --99 + j*(-804) --664 + j*(208) -87 + j*(306) --791 + j*(-232) --438 + j*(-330) -119 + j*(237) -306 + j*(-1) -6 + j*(260) --304 + j*(-415) -309 + j*(-581) --1 + j*(906) --14 + j*(273) --255 + j*(-1) --177 + j*(592) -65 + j*(220) -14 + j*(-197) --879 + j*(-1024) --219 + j*(340) -83 + j*(131) -97 + j*(-1) --1 + j*(251) -192 + j*(115) --1024 + j*(-1) --1 + j*(670) --477 + j*(-642) -707 + j*(-1) --334 + j*(-131) -117 + j*(275) -750 + j*(-956) --855 + j*(-163) --162 + j*(175) -588 + j*(-991) --1024 + j*(-1024) --1024 + j*(220) -9 + j*(59) -18 + j*(-1024) --1024 + j*(-344) -91 + j*(34) -1023 + j*(-1024) --674 + j*(-1024) --1024 + j*(477) --1024 + j*(-1) --395 + j*(401) -126 + j*(166) --974 + j*(-438) --53 + j*(392) -251 + j*(240) -372 + j*(-504) --510 + j*(-1) --578 + j*(-107) --135 + j*(183) --467 + j*(-1) -0 + j*(30) -30 + j*(81) --369 + j*(394) --140 + j*(1023) --111 + j*(972) -959 + j*(-32) -98 + j*(915) -79 + j*(140) --458 + j*(0) --266 + j*(712) -228 + j*(206) -734 + j*(-654) --779 + j*(28) --988 + j*(-595) --137 + j*(223) -790 + j*(312) --439 + j*(-573) -10 + j*(125) -388 + j*(556) --509 + j*(0) --929 + j*(561) --139 + j*(649) -724 + j*(415) -32 + j*(137) --705 + j*(190) --775 + j*(632) -181 + j*(182) -705 + j*(-1024) --211 + j*(-443) --1024 + j*(-126) --154 + j*(265) --399 + j*(-159) --173 + j*(565) -27 + j*(188) --849 + j*(36) --506 + j*(499) -151 + j*(1023) -957 + j*(-114) --109 + j*(-734) --12 + j*(203) -323 + j*(-12) -0 + j*(-599) -99 + j*(241) -1023 + j*(-751) --363 + j*(-873) --1024 + j*(-802) --74 + j*(194) -258 + j*(-797) --408 + j*(-415) -81 + j*(185) -390 + j*(-237) --235 + j*(-757) --458 + j*(0) --453 + j*(61) -0 + j*(372) -25 + j*(277) -259 + j*(0) --327 + j*(-550) -0 + j*(363) -1000 + j*(-618) -1019 + j*(-905) --1024 + j*(-804) -17 + j*(30) -64 + j*(-178) --1024 + j*(-220) -66 + j*(109) -53 + j*(-1024) --209 + j*(0) --941 + j*(546) -0 + j*(194) --312 + j*(0) -90 + j*(260) -0 + j*(-386) --619 + j*(-190) -182 + j*(412) -743 + j*(225) -142 + j*(-171) --227 + j*(-709) --301 + j*(102) -250 + j*(-39) -25 + j*(-336) --63 + j*(84) -131 + j*(-220) -1010 + j*(-273) --872 + j*(-822) --463 + j*(-847) --323 + j*(799) -30 + j*(177) --123 + j*(0) --358 + j*(-139) -0 + j*(326) -979 + j*(160) -937 + j*(52) --209 + j*(-1024) --66 + j*(25) -125 + j*(0) --144 + j*(-259) --129 + j*(172) -574 + j*(0) -1023 + j*(-768) --1024 + j*(0) --468 + j*(-1024) -155 + j*(0) --97 + j*(208) -0 + j*(107) -29 + j*(-626) -15 + j*(304) -964 + j*(-291) -241 + j*(-950) --842 + j*(-1024) --207 + j*(144) -1023 + j*(100) -586 + j*(-1024) --117 + j*(194) -1023 + j*(185) -451 + j*(-891) -288 + j*(-918) --1024 + j*(-301) --452 + j*(0) --175 + j*(255) -0 + j*(-953) -0 + j*(688) --102 + j*(169) --167 + j*(-262) --35 + j*(850) --316 + j*(9) --226 + j*(0) -0 + j*(-964) --11 + j*(589) --100 + j*(193) --617 + j*(0) -30 + j*(788) -110 + j*(193) -413 + j*(-73) -441 + j*(-168) --261 + j*(325) --264 + j*(115) --46 + j*(-44) --274 + j*(444) -99 + j*(-90) --741 + j*(-995) --116 + j*(-185) --167 + j*(-107) -0 + j*(292) --27 + j*(0) --35 + j*(111) -0 + j*(476) --186 + j*(0) -1023 + j*(229) --107 + j*(-1024) --540 + j*(-555) --268 + j*(377) --63 + j*(-1024) --1024 + j*(-1024) --372 + j*(560) -1022 + j*(-570) --393 + j*(-1024) --970 + j*(-784) --204 + j*(-318) --867 + j*(-164) --265 + j*(-103) --52 + j*(-50) --823 + j*(-228) --287 + j*(-469) --540 + j*(207) --433 + j*(0) -322 + j*(-352) --323 + j*(314) -135 + j*(-472) --353 + j*(-592) --501 + j*(549) -384 + j*(-458) --914 + j*(-973) --941 + j*(-121) --178 + j*(-485) --388 + j*(-664) --412 + j*(-40) --82 + j*(-166) --207 + j*(-572) --461 + j*(151) --144 + j*(-64) -463 + j*(502) --655 + j*(92) --582 + j*(259) -482 + j*(-193) -8 + j*(-12) --684 + j*(328) -570 + j*(-408) -1016 + j*(4) --869 + j*(-384) -506 + j*(-1024) --903 + j*(-1024) --1024 + j*(7) -648 + j*(-1024) --977 + j*(-973) --1024 + j*(-1024) --165 + j*(73) --216 + j*(1023) -612 + j*(238) -403 + j*(-517) -0 + j*(610) -432 + j*(268) -10 + j*(-178) -0 + j*(317) -670 + j*(-1024) --24 + j*(0) -244 + j*(-457) --230 + j*(-236) --1024 + j*(0) -602 + j*(-625) --768 + j*(-1024) --933 + j*(399) -379 + j*(607) -889 + j*(514) -1023 + j*(-614) -745 + j*(-864) -1023 + j*(1023) -1023 + j*(173) -746 + j*(-966) -227 + j*(1023) -1023 + j*(-227) -796 + j*(-769) -677 + j*(1023) -1023 + j*(772) -614 + j*(-1024) -826 + j*(1023) -1023 + j*(526) -244 + j*(-1024) --825 + j*(-988) --1024 + j*(260) --115 + j*(1023) -610 + j*(859) --604 + j*(463) --222 + j*(774) -328 + j*(682) --114 + j*(-63) --108 + j*(-950) --467 + j*(-32) --619 + j*(-694) --272 + j*(-193) --703 + j*(630) -223 + j*(-858) --597 + j*(-1024) --805 + j*(1023) --1024 + j*(46) -1023 + j*(796) -856 + j*(69) -1023 + j*(-791) -628 + j*(1023) -1023 + j*(149) -1023 + j*(-587) -1023 + j*(1023) -948 + j*(-619) -733 + j*(-1024) --55 + j*(1023) -1023 + j*(244) -1023 + j*(-655) -297 + j*(1023) -809 + j*(-728) -524 + j*(-955) --1024 + j*(-826) --465 + j*(1023) --928 + j*(1023) -1023 + j*(1023) --1024 + j*(1023) -0 + j*(1023) -1023 + j*(1023) --1024 + j*(937) -379 + j*(1023) -1023 + j*(888) --1024 + j*(1011) --724 + j*(1023) -1023 + j*(1023) --1024 + j*(929) --589 + j*(1023) -1023 + j*(1023) -452 + j*(-331) -168 + j*(-1024) -0 + j*(-499) --445 + j*(1023) --772 + j*(13) --644 + j*(209) -74 + j*(1023) --1024 + j*(-80) --1024 + j*(780) -578 + j*(1023) --1024 + j*(-400) --940 + j*(828) -180 + j*(1023) --1024 + j*(-716) --1024 + j*(234) -237 + j*(1023) -1023 + j*(537) -1023 + j*(-398) -147 + j*(-1024) --762 + j*(-746) -1023 + j*(119) -869 + j*(-1024) --394 + j*(-226) -467 + j*(493) -1023 + j*(362) -285 + j*(-165) --790 + j*(-273) --967 + j*(972) -252 + j*(1023) --1024 + j*(-490) --1024 + j*(357) -326 + j*(1023) -1023 + j*(227) -1023 + j*(-381) -248 + j*(-1024) --794 + j*(-1024) -1023 + j*(-15) -1023 + j*(-630) --284 + j*(-1024) -1023 + j*(842) -1023 + j*(-169) -299 + j*(-1024) -420 + j*(1023) -1023 + j*(655) -1023 + j*(-944) --396 + j*(1023) -1023 + j*(983) -1023 + j*(571) -1023 + j*(-1024) -517 + j*(-1024) --1024 + j*(-1016) --1024 + j*(314) -1023 + j*(-1024) --839 + j*(-1024) --1024 + j*(-371) -1023 + j*(-305) --707 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-335) -1023 + j*(-1024) --415 + j*(-1024) -1023 + j*(488) -1023 + j*(-1024) -437 + j*(-1024) --1024 + j*(-1008) --1024 + j*(75) --137 + j*(1023) -495 + j*(1023) --1024 + j*(834) -182 + j*(1023) -244 + j*(1023) --339 + j*(993) -119 + j*(1023) -940 + j*(-649) --1024 + j*(3) -1023 + j*(1023) -1023 + j*(671) --950 + j*(536) -843 + j*(1023) -1023 + j*(109) --675 + j*(-482) -365 + j*(-1024) --1024 + j*(290) --1024 + j*(1023) --218 + j*(-1024) --1024 + j*(-1024) --1024 + j*(1008) --124 + j*(-1024) --806 + j*(-1024) --1024 + j*(306) -510 + j*(-1024) --1024 + j*(-1024) --1024 + j*(58) -700 + j*(-1024) --1024 + j*(-1024) --1024 + j*(63) --1024 + j*(1023) --4 + j*(1023) -1023 + j*(-804) -499 + j*(-418) -661 + j*(956) -112 + j*(66) --80 + j*(190) --405 + j*(1023) -1023 + j*(377) -910 + j*(-204) --89 + j*(-1024) --426 + j*(-990) --1024 + j*(602) -317 + j*(-1024) --1024 + j*(-1024) --1024 + j*(200) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(1023) -1023 + j*(-588) --687 + j*(1023) -793 + j*(1023) -1023 + j*(125) --1024 + j*(1023) -790 + j*(1023) -1023 + j*(399) --1024 + j*(221) --294 + j*(1023) -1023 + j*(1023) --1024 + j*(-406) -46 + j*(967) -447 + j*(1023) -1023 + j*(340) -1023 + j*(-250) -1023 + j*(-1024) --532 + j*(-1024) -1023 + j*(1023) -1023 + j*(-630) -110 + j*(-1024) -327 + j*(1023) -1023 + j*(705) -1023 + j*(-883) -33 + j*(1023) -1023 + j*(1023) -1023 + j*(-72) --692 + j*(1023) --228 + j*(1023) -1023 + j*(317) -1023 + j*(-449) -533 + j*(-1024) --1024 + j*(-891) --1024 + j*(477) -287 + j*(-1024) --1024 + j*(-1024) --1024 + j*(388) -114 + j*(-306) --1024 + j*(326) -45 + j*(50) --287 + j*(-1024) --1024 + j*(353) --609 + j*(1023) --807 + j*(-898) --1024 + j*(566) --462 + j*(1023) -1023 + j*(1023) -1023 + j*(-664) -1016 + j*(-1024) --1024 + j*(-1024) -1023 + j*(-50) -1023 + j*(-1024) --1024 + j*(-1024) -1023 + j*(674) -1023 + j*(-1024) --143 + j*(-1024) -1023 + j*(512) -1023 + j*(-1024) -456 + j*(-1024) -1023 + j*(798) -1023 + j*(-1024) -1023 + j*(-1024) --1024 + j*(-1024) --600 + j*(96) --1024 + j*(730) -39 + j*(687) --1024 + j*(-748) --947 + j*(176) --791 + j*(453) --809 + j*(-601) --1024 + j*(-1024) --468 + j*(668) -548 + j*(-1024) --321 + j*(-1024) --1024 + j*(16) -672 + j*(-1024) --953 + j*(-1024) --1024 + j*(743) --1024 + j*(1023) -1023 + j*(1023) -1023 + j*(299) -1023 + j*(-1024) -717 + j*(1023) -1023 + j*(1001) -1023 + j*(-1024) -279 + j*(1023) -754 + j*(920) -1023 + j*(-1024) --87 + j*(1023) -1023 + j*(1023) -1023 + j*(-1024) --626 + j*(1023) -373 + j*(1023) -1023 + j*(-233) -941 + j*(-1024) --162 + j*(-1024) --1024 + j*(-44) --1024 + j*(40) -801 + j*(-1024) --752 + j*(-1024) --1024 + j*(-761) -1023 + j*(-211) -10 + j*(-813) --213 + j*(-1024) -1023 + j*(44) -1023 + j*(-796) -88 + j*(-1024) -1023 + j*(552) -989 + j*(-231) -1023 + j*(-914) --673 + j*(504) --962 + j*(-1024) -1023 + j*(784) -796 + j*(547) --1024 + j*(1023) -70 + j*(706) -714 + j*(284) --1020 + j*(882) -978 + j*(1023) -1023 + j*(334) --594 + j*(708) -466 + j*(1023) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch0_syncf.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch0_syncf.m deleted file mode 100644 index df5b8af71b0e88c8b00c60be9de5a10d37c046e8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch0_syncf.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch0_sync_f = [-23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch0_syncf_tx.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch0_syncf_tx.m deleted file mode 100644 index 9d01d50674e29e4f41b2bd8ab6315f589e95d321..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch0_syncf_tx.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch0_sync_f_tx = [-725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch1_syncf.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch1_syncf.m deleted file mode 100644 index 96ee450354367a6b3327bd65470a98696c436562..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch1_syncf.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch1_sync_f = [23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch1_syncf_tx.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch1_syncf_tx.m deleted file mode 100644 index 6f2acf9aee8c5645d2f1b5bc264080e8e4aeddc0..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch1_syncf_tx.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch1_sync_f_tx = [724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch2_syncf.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch2_syncf.m deleted file mode 100644 index d61eb1e21e6c6173ce6b412c76097888157b8fbd..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch2_syncf.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch2_sync_f = [-23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch2_syncf_tx.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch2_syncf_tx.m deleted file mode 100644 index 3e00f59078684aa88a1ec0ca28bf769869dbf4f3..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch2_syncf_tx.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch2_sync_f_tx = [-725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch3_syncf.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch3_syncf.m deleted file mode 100644 index 46b53806ee63dd3138e1854c669ce5edc92dadd3..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch3_syncf.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch3_sync_f = [23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(-23170) --23170 + j*(23170) --23170 + j*(-23170) -23170 + j*(23170) -23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(-23170) -23170 + j*(23170) --23170 + j*(-23170) --23170 + j*(23170) -23170 + j*(23170) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch3_syncf_tx.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch3_syncf_tx.m deleted file mode 100644 index 9384d493593c7bb836a9ac935f27776fcff89811..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/chsch3_syncf_tx.m +++ /dev/null @@ -1,257 +0,0 @@ -chsch3_sync_f_tx = [724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) -724 + j*(-725) -0 + j*(0) -724 + j*(-725) -0 + j*(0) --725 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -724 + j*(724) -0 + j*(0) --725 + j*(724) -0 + j*(0) -]; diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/rx_frame.dat b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/rx_frame.dat deleted file mode 100644 index fe3357f5e7843b68f11af5b9e275f089dd0fd04a..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/rx_frame.dat and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/rx_frame_2streams.dat b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/rx_frame_2streams.dat deleted file mode 100644 index d7a95ce98ed4de94b92c4939b272dd7f0a7bac04..0000000000000000000000000000000000000000 Binary files a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/rx_frame_2streams.dat and /dev/null differ diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/sync_user.m b/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/sync_user.m deleted file mode 100644 index eea8943c61934a94731316db0982a69c3479908b..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/PHY_SIM/sync_user.m +++ /dev/null @@ -1,87 +0,0 @@ -%system('source /opt/intel/cc/10.0.023/bin/iccvars.sh') -%system('./sync_user'); - -clear all -close all - -% fd = fopen('rx_frame_2streams.dat','r'); -% temp = fread(fd,20480*8,'int16'); -% fclose(fd); - -NRx=2; - -%rxs = temp(1:2:length(temp)) + sqrt(-1)*temp(2:2:length(temp)); -%rxs = reshape(rxs,[],NRx); - -rxsig0 -rxsig1 -rxs(:,1) = rxs0; -rxs(:,2) = rxs1; - -% do synchronization here -CHSCH0_sync_4xf0 -CHSCH0_sync_4xf1 - -c0 = abs(conv(rxs(:,1),fliplr(ifft(chsch0_sync_f_4x0)'))); -c1 = abs(conv(rxs(:,1),fliplr(ifft(chsch0_sync_f_4x1)'))); -csum = (c0.^2) + (c1.^2); -[maxlev0,maxpos0] = max(csum); -%sync_pos = maxpos0-1024 -%sync_pos = 16158 -1024 -sync_pos=1 - -figure(1) -plot(csum); - -% do Channel estimation here - -CPL = 64; -SL = 256; -SLP = CPL + SL; - -rxchsch = rxs(sync_pos + 1: sync_pos + 4*SLP,:); -rxchbch = rxs(sync_pos + 4*SLP + 1: sync_pos + 12*SLP,:); -plot_style = {'r','g','b','k'}; - -for i=0:3 - RXchsch = fft(rxchsch(i*SLP+CPL+1 : (i+1)*SLP,:)); - eval(sprintf('chsch%d_syncf',i)); - chsch_sync_f = eval(sprintf('chsch%d_sync_f',i)); - for a=0:NRx-1 - Hest(:,a+1,i+1) = RXchsch(:,a+1) .* conj(chsch_sync_f); - Hest2(:,a+1,i+1) = fft(ifft(Hest(:,a+1,i+1)).*[zeros(1,160) ones(1,96)].'); - end - figure(2) - plot(20*log10(1+abs(Hest2(:,1,i+1))),plot_style{i+1}) - hold on - figure(3) - plot(abs(ifft(Hest(1:2:end,1,i+1))),plot_style{i+1}) - hold on - %plot(imag(ifft(Hest)),'g') - %hold off -end - -%% -symb_comp = zeros(8,SL); -mask = [true(1,80) false(1,96) true(1,80)]; - -for s = 0:7 - symb = fft(rxchbch((s*(CPL+SL)+CPL+1):(((s+1)*(CPL+SL))),:)); - for c=0:255 - symb_comp(s+1,c+1) = conj(Hest2(c+1,:,2))*symb(c+1,:)'; - end -end - - - -figure(6) - -plot(squeeze(symb_comp(1,:)),'rx') -hold on -plot(squeeze(symb_comp(2,:)),'gx') -% plot(symb_comp(3,:),'bx') -% plot(symb_comp(4,:),'kx') -% plot(symb_comp(5,:),'cx') -% plot(symb_comp(6,:),'mx') -% plot(symb_comp(7,:),'wx') -hold off diff --git a/openair1/USERSPACE_TOOLS/OCTAVE/modify_path.m b/openair1/USERSPACE_TOOLS/OCTAVE/modify_path.m deleted file mode 100644 index 251cabd8f7db2fc87547d8e34d9d1d9fa762d792..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OCTAVE/modify_path.m +++ /dev/null @@ -1,3 +0,0 @@ -addpath('/homes/nussbaum/openair1/USERSPACE_TOOLS/OCTAVE/GPIB'); -addpath('/homes/nussbaum/openair1/USERSPACE_TOOLS/OCTAVE/CBMIMO1_TOOLS'); -addpath('/homes/nussbaum/openair1/USERSPACE_TOOLS/OCTAVE/AGILE_RF_TOOLS'); diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/COPYING b/openair1/USERSPACE_TOOLS/OPENAIR_RF/COPYING deleted file mode 100644 index 818433ecc0e094a4db1023c68b33f24344643ad8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - 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/>. - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - <program> Copyright (C) <year> <name of author> - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -<http://www.gnu.org/licenses/>. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/Makefile b/openair1/USERSPACE_TOOLS/OPENAIR_RF/Makefile deleted file mode 100755 index 71bce122949b0d68e144688181e06b597075ccb2..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/Makefile +++ /dev/null @@ -1,62 +0,0 @@ -include $(OPENAIR_HOME)/common/utils/Makefile.inc - -TOP_DIR = ../.. -OPENAIR2_DIR = ../../../openair2 -OPENAIR2_TOP = $(OPENAIR2_DIR) - -CFLAGS += -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DMAX_MODULES=1 -DPHY_CONTEXT=1 -I$(TOP_DIR) -I/usr/realtime/include/ -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES -#-DICC - -include $(OPENAIR2_DIR)/LAYER2/Makefile.inc -include $(OPENAIR2_DIR)/UTIL/Makefile.inc -CFLAGS += $(L2_incl) $(UTIL_incl) - -ifdef DEBUGPHY -CFLAGS += -DDEBUG_PHY -endif - -ifeq ($(CBMIMO1),1) -CFLAGS += -DHW_PREFIX_REMOVAL -DCBMIMO1 -DNB_ANTENNAS_RX=2 -DOPEN_OUTPUT_FILE -endif - -ifeq ($(OPENAIR_LTE), 1) -CFLAGS += -DOPENAIR_LTE -DIFFT_FPGA -FNAME = cbmimo1_lte -else -FNAME = cbmimo1 -endif - -CFLAGS += -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DNB_ANTENNAS_TXRX=2 - -ifeq ($(EMOS),1) -CFLAGS += -DEMOS -endif - -# PHY Initialization routines -ifeq ($(OPENAIR_LTE), 0) -PHY_OBJS +=$(TOP_DIR)/PHY/INIT/init.o -else -PHY_OBJS +=$(TOP_DIR)/PHY/INIT/lte_parms.o -#PHY_OBJS +=$(TOP_DIR)/PHY/INIT/lte_init.o -endif - -# PHY TOOLS routines -#PHY_OBJS +=$(TOP_DIR)/PHY/TOOLS/fft.o - -USERRFOBJS += $(PHY_OBJS) openair_rf.o #openair_generate_ofdm.o - -all: openair_rf - -$(USERRFOBJS) : %.o : %.c - $(CCC) -c $(CFLAGS) -o $@ $< - -openair_rf: $(USERRFOBJS) - $(CCC) -o openair_rf_$(FNAME) $(CFLAGS) $(USERRFOBJS) -lm - -read_rx_sig: read_rx_sig.c - $(CCC) -o read_rx_sig $(CFLAGS) read_rx_sig.c - -clean: - rm -f $(USERRFOBJS) - - diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/affich.m b/openair1/USERSPACE_TOOLS/OPENAIR_RF/affich.m deleted file mode 100644 index eacd36640752c40e93a6d768e879ed79f5ad6e30..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/affich.m +++ /dev/null @@ -1,47 +0,0 @@ -clear all -close all - -fd = fopen('rx_frame.dat','r'); -temp = fread(fd,'int16'); -fclose(fd); - -rxs = temp(1:2:length(temp)) + sqrt(-1)*temp(2:2:length(temp)); -rxs = reshape(rxs,[],2); -%rxs = rxs(:,1); - -% estimate frequency offset (for a fs/4 signal) -fs = 7680e3; -s_phase = unwrap(angle(rxs(1:4:length(rxs),1).')); -s_phase2 = unwrap(angle(rxs(1:4:length(rxs),2).')); -s_phase = s_phase - s_phase(1,1); -s_phase2 = s_phase2 - s_phase2(1,1); - -f_off = mean(s_phase(2:length(s_phase))*fs/4./(1:(length(s_phase)-1))/2/pi) -f_off2 = mean(s_phase2(2:length(s_phase2))*fs/4./(1:(length(s_phase2)-1))/2/pi) - - -figure(1) -plot(real(rxs)) -print('rx_frame_time.esp','-depsc2') - -figure(2) -plot(20*log10(abs(fftshift(fft(rxs))))) -print('rx_frame_freq.esp','-depsc2') - -%% -fd = fopen('tx_frame.dat','r'); -temp = fread(fd,'uint8'); -fclose(fd); - -%txs(:,1) = temp(1:4:length(temp)) + sqrt(-1)*temp(2:4:length(temp)); -%txs(:,2) = temp(3:4:length(temp)) + sqrt(-1)*temp(4:4:length(temp)); - -load('../../PHY/LTE_REFSIG/mod_table.mat') - -for i=1:length(temp) - txs(i) = table(temp(i)+1); -end - -figure(3) -plot(real(txs)) - diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/fft_test.c b/openair1/USERSPACE_TOOLS/OPENAIR_RF/fft_test.c deleted file mode 100644 index 88e9a229305f57bec0d61583a801b9454b2e0dd6..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/fft_test.c +++ /dev/null @@ -1,413 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdio.h> -#include <stdlib.h> -#include <math.h> -#include <sys/time.h> -#include <sys/ioctl.h> -#include "openair_device.h" - - -#define PI 3.14159265359 -#define MAXPOW 24 - - -FILE *rx_frame_file; -FILE *fid; - -struct complex { - double r; - double i; -}; - -struct complex_fixed { - short r; - short i; -}; - -int pow_2[MAXPOW]; -int pow_4[MAXPOW]; - - -void twiddle(struct complex *W, int N, double stuff) -{ - W->r=cos(stuff*2.0*PI/(double)N); - W->i=-sin(stuff*2.0*PI/(double)N); -} - - -void bit_r4_reorder(struct complex *W, int N) -{ - int bits, i, j, k; - double tempr, tempi; - - for (i=0; i<MAXPOW; i++) - if (pow_2[i]==N) bits=i; - - for (i=0; i<N; i++) { - j=0; - - for (k=0; k<bits; k+=2) { - if (i&pow_2[k]) j+=pow_2[bits-k-2]; - - if (i&pow_2[k+1]) j+=pow_2[bits-k-1]; - } - - if (j>i) { /** Only make "up" swaps */ - tempr=W[i].r; - tempi=W[i].i; - W[i].r=W[j].r; - W[i].i=W[j].i; - W[j].r=tempr; - W[j].i=tempi; - } - } -} - - -/** RADIX-4 FFT ALGORITHM */ -void radix4(struct complex *x, int N) -{ - int n2, k1, N1, N2; - struct complex W, bfly[4]; - - N1=4; - N2=N/4; - - /** Do 4 Point DFT */ - for (n2=0; n2<N2; n2++) { - /** Don't hurt the butterfly */ - bfly[0].r = (x[n2].r + x[N2 + n2].r + x[2*N2+n2].r + x[3*N2+n2].r); - bfly[0].i = (x[n2].i + x[N2 + n2].i + x[2*N2+n2].i + x[3*N2+n2].i); - - bfly[1].r = (x[n2].r + x[N2 + n2].i - x[2*N2+n2].r - x[3*N2+n2].i); - bfly[1].i = (x[n2].i - x[N2 + n2].r - x[2*N2+n2].i + x[3*N2+n2].r); - - bfly[2].r = (x[n2].r - x[N2 + n2].r + x[2*N2+n2].r - x[3*N2+n2].r); - bfly[2].i = (x[n2].i - x[N2 + n2].i + x[2*N2+n2].i - x[3*N2+n2].i); - - bfly[3].r = (x[n2].r - x[N2 + n2].i - x[2*N2+n2].r + x[3*N2+n2].i); - bfly[3].i = (x[n2].i + x[N2 + n2].r - x[2*N2+n2].i - x[3*N2+n2].r); - - - /** In-place results */ - for (k1=0; k1<N1; k1++) { - twiddle(&W, N, (double)k1*(double)n2); - x[n2 + N2*k1].r = bfly[k1].r*W.r - bfly[k1].i*W.i; - x[n2 + N2*k1].i = bfly[k1].i*W.r + bfly[k1].r*W.i; - } - } - - /** Don't recurse if we're down to one butterfly */ - if (N2!=1) - for (k1=0; k1<N1; k1++) { - radix4(&x[N2*k1], N2); - } -} - - - -void fft_distortion_test(int N, char test,double input_dB,char *scale,double *maxSNR,char *maxscale,struct complex *data,struct complex_fixed *data_fixed, int openair_fd) -{ - - - double mean_in=0.0,mean_error=0.0,SNR; - int i; - - - for (i=0; i<N; i++) { - data[i].r=0.0; - data[i].i=0.0; - data_fixed[i].r=0; - data_fixed[i].i=0; - } - - - - switch (test) { - case 0: /** Generate cosine **/ - for (i=0; i<N; i++) - data[i].r=pow(10,.05*input_dB)*cos(2.0*PI*.1*i); - - break; - - case 1: // QPSK - - QAM_input(data,(short)(pow(10,.05*input_dB)*32767.0),N,3*N/4,0); - - for (i=0; i<N; i++) { - data[i].r /= 32767; - data[i].i /= 32767; - } - - break; - - case 2: // 16-QAM - QAM_input(data,(short)(pow(10,.05*input_dB)*32767.0),N,3*N/4,1); - - for (i=0; i<N; i++) { - data[i].r /= 32767; - data[i].i /= 32767; - } - - break; - - default: - break; - } - - for (i=0; i<N; i++) { - data_fixed[i].r = (short)(data[i].r*32767); - data_fixed[i].i = (short)(data[i].i*32767); - // printf("data fields[%d] = %d : %d :: %d : %d\n",i,(short)data[i].r,data_fixed[i].r,(short)data[i].i,data_fixed[i].i); - } - - radix4(data, N); - - for (i=0; i<N; i++) { - - data[i].r /= sqrt(N); - data[i].i /= sqrt(N); - } - - bit_r4_reorder(data, N); - - - - // radix4_xilixn(data_fixed, N,scale); - // bit_r4_reorder_fixed(data_fixed, N,scale[6]); - - ioctl(openair_fd,openair_FFT_TEST,(void *)scale); - - /* - if ((rx_frame_file = fopen("rx_frame.dat","w")) == NULL) - { - printf("[openair][FFT_TEST][INFO] Cannot open rx_frame.m data file\n"); - exit(0); - } - */ - data_fixed = &((struct complex_fixed *)scale)[2]; - - /* - fwrite(data_fixed,4,256,rx_frame_file); - close(rx_frame_file); - */ - - - - mean_error = 0.0; - mean_in = 0.0; - - for (i=0; i<N; i++) { - mean_in += data[i].r*data[i].r + data[i].i*data[i].i; - mean_error += pow((data[i].r-((double)data_fixed[i].r/32767.0)),2) + pow((data[i].i-((double)data_fixed[i].i/32767.0)),2); - // printf("data_fixed[%d] = %f : %d :: %f : %d\n",i,data[i].r*32767,data_fixed[i].r,data[i].i*32767,data_fixed[i].i); - } - - - SNR = 10*log10(mean_in/mean_error); - - // printf("%d %d %d %d %d %d %d : %f\n",scale[0],scale[1],scale[2],scale[3],scale[4],scale[5],scale[6],SNR); - if (SNR > *maxSNR) { - *maxSNR = SNR; - memcpy(maxscale,scale,7); - } - - - -} - -void fft_test(char *dma_buffer_local, char log2N, char test, int openair_fd) -{ - - int N=pow(2,log2N), radix=4; //,test=0; - int i; - char maxscale[7],MAXSHIFT; - char *scale; //scale[7] - double maxSNR,input_dB; - struct complex *data; - struct complex_fixed *data_fixed; - - - - set_taus_seed(); - - if ((data=malloc(sizeof(struct complex)*(size_t)N))==NULL) { - fprintf(stderr, "Out of memory!\n"); - exit(1); - } - - - // data_fixed = &((struct complex_fixed *)dma_buffer_local)[2]; - scale = &((char *)dma_buffer_local)[0]; - - - if ((data_fixed=malloc(sizeof(struct complex_fixed)*(size_t)N))==NULL) { - fprintf(stderr, "Out of memory!\n"); - exit(1); - } - - - /** Set up power of two arrays */ - pow_2[0]=1; - - for (i=1; i<MAXPOW; i++) - pow_2[i]=pow_2[i-1]*2; - - pow_4[0]=1; - - for (i=1; i<MAXPOW; i++) - pow_4[i]=pow_4[i-1]*4; - -#ifdef OPEN_OUTPUT_FILE - - if ((fid = fopen("res_output.m","w")) == NULL) { - printf("[FFT_TEST] Cannot open res_output.m data file\n"); - exit(0); - } - - fprintf(fid,"res16_%d = [ \n",N); -#endif - - printf("res16_%d = [ \n",N); - - for (input_dB=-50; input_dB<0; input_dB++) { - // input_dB = -40; - - switch (N) { - case 64: - // scale = SCALE64; - MAXSHIFT=3; - break; - - case 256: - // scale = SCALE256; - MAXSHIFT=4; - break; - - case 1024: - // scale = SCALE1024; - MAXSHIFT=5; - break; - - case 4096: - // scale = SCALE4096; - MAXSHIFT=6; - break; - } - - for (i=0; i<7; i++) - scale[i] = 0; - - maxSNR = -1000; - - switch (N) { - case 4096: - - for (scale[0]=0; scale[0]<=MAXSHIFT; scale[0]++) - for (scale[1]=0; scale[1]<=MAXSHIFT-scale[0]; scale[1]++) - for (scale[2]=0; scale[2]<=MAXSHIFT-scale[0]-scale[1]; scale[2]++) - for (scale[3]=0; scale[3]<=MAXSHIFT-scale[0]-scale[1]-scale[2]; scale[3]++) - for (scale[4]=0; scale[4]<=MAXSHIFT-scale[0]-scale[1]-scale[2]-scale[3]; scale[4]++) - for (scale[5]=0; scale[5]<=MAXSHIFT-scale[0]-scale[1]-scale[2]-scale[3]-scale[4]; scale[5]++) { - scale[6]=MAXSHIFT-scale[0]-scale[1]-scale[2]-scale[3]-scale[4]-scale[5]; - fft_distortion_test(N,test,input_dB,scale,&maxSNR,maxscale,data,data_fixed,openair_fd); - - } - - printf("%f, %f, %% Optimum Scaling : %d %d %d %d %d %d %d\n",input_dB,maxSNR,maxscale[0],maxscale[1],maxscale[2],maxscale[3],maxscale[4],maxscale[5],maxscale[6]); - break; - - case 1024: - - for (scale[0]=0; scale[0]<=MAXSHIFT; scale[0]++) - for (scale[1]=0; scale[1]<=MAXSHIFT-scale[0]; scale[1]++) - for (scale[2]=0; scale[2]<=MAXSHIFT-scale[0]-scale[1]; scale[2]++) - for (scale[3]=0; scale[3]<=MAXSHIFT-scale[0]-scale[1]-scale[2]; scale[3]++) - for (scale[4]=0; scale[4]<=MAXSHIFT-scale[0]-scale[1]-scale[2]-scale[3]; scale[4]++) { - scale[6]=MAXSHIFT-scale[0]-scale[1]-scale[2]-scale[3]-scale[4]; - fft_distortion_test(N,test,input_dB,scale,&maxSNR,maxscale,data,data_fixed,openair_fd); - } - - printf("%f, %f, %% Optimum Scaling : %d %d %d %d %d %d %d\n",input_dB,maxSNR,maxscale[0],maxscale[1],maxscale[2],maxscale[3],maxscale[4],maxscale[5],maxscale[6]); - break; - - case 256: - - for (scale[0]=0; scale[0]<=MAXSHIFT; scale[0]++) - for (scale[1]=0; scale[1]<=MAXSHIFT-scale[0]; scale[1]++) - for (scale[2]=0; scale[2]<=MAXSHIFT-scale[0]-scale[1]; scale[2]++) - for (scale[3]=0; scale[3]<=MAXSHIFT-scale[0]-scale[1]-scale[2]; scale[3]++) { - scale[6]=MAXSHIFT-scale[0]-scale[1]-scale[2]-scale[3]; - // scale[0] = 2; - // scale[1] = 1; - // scale[2] = 1; - fft_distortion_test(N,test,input_dB,scale,&maxSNR,maxscale,data,&((struct complex_fixed *)dma_buffer_local)[2],openair_fd); - } - - printf("%f, %f, %% Optimum Scaling : %d %d %d %d %d %d %d\n",input_dB,maxSNR,maxscale[0],maxscale[1],maxscale[2],maxscale[3],maxscale[4],maxscale[5],maxscale[6]); -#ifdef OPEN_OUTPUT_FILE - fprintf(fid,"%f, %f, %% Optimum Scaling : %d %d %d %d %d %d %d\n",input_dB,maxSNR,maxscale[0],maxscale[1],maxscale[2],maxscale[3],maxscale[4],maxscale[5],maxscale[6]); -#endif - break; - - case 64: - - for (scale[0]=0; scale[0]<=MAXSHIFT; scale[0]++) - for (scale[1]=0; scale[1]<=MAXSHIFT-scale[0]; scale[1]++) - for (scale[2]=0; scale[2]<=MAXSHIFT-scale[0]-scale[1]; scale[2]++) { - scale[6]=MAXSHIFT-scale[0]-scale[1]-scale[2]; - fft_distortion_test(N,test,input_dB,scale,&maxSNR,maxscale,data,data_fixed,openair_fd); - } - - printf("%f, %f, %% Optimum Scaling : %d %d %d %d %d %d %d\n",input_dB,maxSNR,maxscale[0],maxscale[1],maxscale[2],maxscale[3],maxscale[4],maxscale[5],maxscale[6]); - break; - - } - - /* - - for (i=0;i<N;i++) { - printf("%d + sqrt(-1)*(%d)\n",(short)(32767*data[i].r),(short)(32767*data[i].i)); - } - printf("];\n"); - printf("out_fixed = [ \n"); - - for (i=0;i<N;i++) - printf("%d + sqrt(-1)*(%d)\n",(short)(data_fixed[i].r),(short)(data_fixed[i].i)); - printf("];\n"); - */ - } - -#ifdef OPEN_OUTPUT_FILE - fprintf(fid,"];\n"); -#endif - printf("];\n"); -} - diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/fix_fft2.c b/openair1/USERSPACE_TOOLS/OPENAIR_RF/fix_fft2.c deleted file mode 100755 index 2312549f6d24a8811b7f35176cf1f105f46e4aef..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/fix_fft2.c +++ /dev/null @@ -1,449 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* fix_fft.c - Fixed-point Fast Fourier Transform */ -/* - fix_fft() perform FFT or inverse FFT - window() applies a Hanning window to the (time) input - fix_loud() calculates the loudness of the signal, for - each freq point. Result is an integer array, - units are dB (values will be negative). - iscale() scale an integer value by (numer/denom). - fix_mpy() perform fixed-point multiplication. - Sinewave[1024] sinewave normalized to 32767 (= 1.0). - Loudampl[100] Amplitudes for lopudnesses from 0 to -99 dB. - Low_pass Low-pass filter, cutoff at sample_freq / 4. - - - All data are fixed-point short integers, in which - -32768 to +32768 represent -1.0 to +1.0. Integer arithmetic - is used for speed, instead of the more natural floating-point. - - For the forward FFT (time -> freq), fixed scaling is - performed to prevent arithmetic overflow, and to map a 0dB - sine/cosine wave (i.e. amplitude = 32767) to two -6dB freq - coefficients; the one in the lower half is reported as 0dB - by fix_loud(). The return value is always 0. - - For the inverse FFT (freq -> time), fixed scaling cannot be - done, as two 0dB coefficients would sum to a peak amplitude of - 64K, overflowing the 32k range of the fixed-point integers. - Thus, the fix_fft() routine performs variable scaling, and - returns a value which is the number of bits LEFT by which - the output must be shifted to get the actual amplitude - (i.e. if fix_fft() returns 3, each value of fr[] and fi[] - must be multiplied by 8 (2**3) for proper scaling. - Clearly, this cannot be done within the fixed-point short - integers. In practice, if the result is to be used as a - filter, the scale_shift can usually be ignored, as the - result will be approximately correctly normalized as is. - - - TURBO C, any memory model; uses inline assembly for speed - and for carefully-scaled arithmetic. - - Written by: Tom Roberts 11/8/89 - Made portable: Malcolm Slaney 12/15/94 malcolm@interval.com - - Timing on a Macintosh PowerBook 180.... (using Symantec C6.0) - fix_fft (1024 points) 8 ticks - fft (1024 points - Using SANE) 112 Ticks - fft (1024 points - Using FPU) 11 - -*/ - -/* FIX_MPY() - fixed-point multiplication macro. - This macro is a statement, not an expression (uses asm). - BEWARE: make sure _DX is not clobbered by evaluating (A) or DEST. - args are all of type fixed. - Scaling ensures that 32767*32767 = 32767. */ -#define dosFIX_MPY(DEST,A,B) { \ - _DX = (B); \ - _AX = (A); \ - asm imul dx; \ - asm add ax,ax; \ - asm adc dx,dx; \ - DEST = _DX; } - -#define FIX_MPY(DEST,A,B) DEST = ((long)(A) * (long)(B))>>15 - -#define N_WAVE 1024 /* dimension of Sinewave[] */ -#define LOG2_N_WAVE 10 /* log2(N_WAVE) */ -#define N_LOUD 100 /* dimension of Loudampl[] */ -#ifndef fixed -#define fixed short -#endif - -extern fixed Sinewave[N_WAVE]; /* placed at end of this file for clarity */ - -fixed fix_mpy(fixed a, fixed b); - -/* - fix_fft() - perform fast Fourier transform. - - if n>0 FFT is done, if n<0 inverse FFT is done - f[n] is a complex array, INPUT AND RESULT. - size of data = 2**m - set inverse to 0=dft, 1=idft -*/ -int fix_fft(fixed f[], int m, int inverse) -{ - int mr,nn,i,j,l,k,istep, n, scale, shift; - fixed qr,qi,tr,ti,wr,wi,t; - - n = 1<<m; - - if(n > N_WAVE) - return -1; - - mr = 0; - nn = n - 1; - scale = 0; - - /* decimation in time - re-order data */ - for(m=1; m<=nn; ++m) { - l = n; - - do { - l >>= 1; - } while(mr+l > nn); - - mr = (mr & (l-1)) + l; - - if(mr <= m) continue; - - tr = f[m<<1]; - f[m<<1] = f[mr<<1]; - f[mr<<1] = tr; - ti = f[1+(m<<1)]; - f[1+(m<<1)] = f[1+(mr<<1)]; - f[1+(mr<<1)] = ti; - } - - l = 1; - k = LOG2_N_WAVE-1; - - while(l < n) { - if(inverse) { - /* variable scaling, depending upon data */ - shift = 0; - - for(i=0; i<n; ++i) { - j = f[i<<1]; - - if(j < 0) - j = -j; - - m = f[1+(i<<1)]; - - if(m < 0) - m = -m; - - if(j > 16383 || m > 16383) { - shift = 1; - break; - } - } - - if(shift) - ++scale; - } else { - /* fixed scaling, for proper normalization - - there will be log2(n) passes, so this - results in an overall factor of 1/n, - distributed to maximize arithmetic accuracy. */ - shift = 1; - } - - /* it may not be obvious, but the shift will be performed - on each data point exactly once, during this pass. */ - istep = l << 1; - - for(m=0; m<l; ++m) { - j = m << k; - /* 0 <= j < N_WAVE/2 */ - wr = Sinewave[j+N_WAVE/4]; - wi = -Sinewave[j]; - - if(inverse) - wi = -wi; - - if(shift) { - wr >>= 1; - wi >>= 1; - } - - for(i=m; i<n; i+=istep) { - j = i + l; - tr = fix_mpy(wr,f[j<<1]) - - fix_mpy(wi,f[1+(j<<1)]); - ti = fix_mpy(wr,f[1+(j<<1)]) + - fix_mpy(wi,f[j<<1]); - qr = f[i<<1]; - qi = f[1+(i<<1)]; - - if(shift) { - qr >>= 1; - qi >>= 1; - } - - f[j<<1] = qr - tr; - f[1+(j<<1)] = qi - ti; - f[i<<1] = qr + tr; - f[1+(i<<1)] = qi + ti; - } - } - - --k; - l = istep; - } - - return scale; -} - - -/* fix_loud() - compute loudness of freq-spectrum components. - n should be ntot/2, where ntot was passed to fix_fft(); - 6 dB is added to account for the omitted alias components. - scale_shift should be the result of fix_fft(), if the time-series - was obtained from an inverse FFT, 0 otherwise. - loud[] is the loudness, in dB wrt 32767; will be +10 to -N_LOUD. -*/ -/* - fix_mpy() - fixed-point multiplication -*/ -fixed fix_mpy(fixed a, fixed b) -{ - FIX_MPY(a,a,b); - return a; -} - -/* - iscale() - scale an integer value by (numer/denom) - -int iscale(int value, int numer, int denom) -{ -#ifdef DOS - asm mov ax,value - asm imul WORD PTR numer - asm idiv WORD PTR denom - - return _AX; -#else - return (long) value * (long)numer/(long)denom; -#endif -} - -*/ - -#if N_WAVE != 1024 -ERROR: -N_WAVE != 1024 -#endif -fixed Sinewave[1024] = { - 0, 201, 402, 603, 804, 1005, 1206, 1406, - 1607, 1808, 2009, 2209, 2410, 2610, 2811, 3011, - 3211, 3411, 3611, 3811, 4011, 4210, 4409, 4608, - 4807, 5006, 5205, 5403, 5601, 5799, 5997, 6195, - 6392, 6589, 6786, 6982, 7179, 7375, 7571, 7766, - 7961, 8156, 8351, 8545, 8739, 8932, 9126, 9319, - 9511, 9703, 9895, 10087, 10278, 10469, 10659, 10849, - 11038, 11227, 11416, 11604, 11792, 11980, 12166, 12353, - 12539, 12724, 12909, 13094, 13278, 13462, 13645, 13827, - 14009, 14191, 14372, 14552, 14732, 14911, 15090, 15268, - 15446, 15623, 15799, 15975, 16150, 16325, 16499, 16672, - 16845, 17017, 17189, 17360, 17530, 17699, 17868, 18036, - 18204, 18371, 18537, 18702, 18867, 19031, 19194, 19357, - 19519, 19680, 19840, 20000, 20159, 20317, 20474, 20631, - 20787, 20942, 21096, 21249, 21402, 21554, 21705, 21855, - 22004, 22153, 22301, 22448, 22594, 22739, 22883, 23027, - 23169, 23311, 23452, 23592, 23731, 23869, 24006, 24143, - 24278, 24413, 24546, 24679, 24811, 24942, 25072, 25201, - 25329, 25456, 25582, 25707, 25831, 25954, 26077, 26198, - 26318, 26437, 26556, 26673, 26789, 26905, 27019, 27132, - 27244, 27355, 27466, 27575, 27683, 27790, 27896, 28001, - 28105, 28208, 28309, 28410, 28510, 28608, 28706, 28802, - 28897, 28992, 29085, 29177, 29268, 29358, 29446, 29534, - 29621, 29706, 29790, 29873, 29955, 30036, 30116, 30195, - 30272, 30349, 30424, 30498, 30571, 30643, 30713, 30783, - 30851, 30918, 30984, 31049, - 31113, 31175, 31236, 31297, - 31356, 31413, 31470, 31525, 31580, 31633, 31684, 31735, - 31785, 31833, 31880, 31926, 31970, 32014, 32056, 32097, - 32137, 32176, 32213, 32249, 32284, 32318, 32350, 32382, - 32412, 32441, 32468, 32495, 32520, 32544, 32567, 32588, - 32609, 32628, 32646, 32662, 32678, 32692, 32705, 32717, - 32727, 32736, 32744, 32751, 32757, 32761, 32764, 32766, - 32767, 32766, 32764, 32761, 32757, 32751, 32744, 32736, - 32727, 32717, 32705, 32692, 32678, 32662, 32646, 32628, - 32609, 32588, 32567, 32544, 32520, 32495, 32468, 32441, - 32412, 32382, 32350, 32318, 32284, 32249, 32213, 32176, - 32137, 32097, 32056, 32014, 31970, 31926, 31880, 31833, - 31785, 31735, 31684, 31633, 31580, 31525, 31470, 31413, - 31356, 31297, 31236, 31175, 31113, 31049, 30984, 30918, - 30851, 30783, 30713, 30643, 30571, 30498, 30424, 30349, - 30272, 30195, 30116, 30036, 29955, 29873, 29790, 29706, - 29621, 29534, 29446, 29358, 29268, 29177, 29085, 28992, - 28897, 28802, 28706, 28608, 28510, 28410, 28309, 28208, - 28105, 28001, 27896, 27790, 27683, 27575, 27466, 27355, - 27244, 27132, 27019, 26905, 26789, 26673, 26556, 26437, - 26318, 26198, 26077, 25954, 25831, 25707, 25582, 25456, - 25329, 25201, 25072, 24942, 24811, 24679, 24546, 24413, - 24278, 24143, 24006, 23869, 23731, 23592, 23452, 23311, - 23169, 23027, 22883, 22739, 22594, 22448, 22301, 22153, - 22004, 21855, 21705, 21554, 21402, 21249, 21096, 20942, - 20787, 20631, 20474, 20317, 20159, 20000, 19840, 19680, - 19519, 19357, 19194, 19031, 18867, 18702, 18537, 18371, - 18204, 18036, 17868, 17699, 17530, 17360, 17189, 17017, - 16845, 16672, 16499, 16325, 16150, 15975, 15799, 15623, - 15446, 15268, 15090, 14911, 14732, 14552, 14372, 14191, - 14009, 13827, 13645, 13462, 13278, 13094, 12909, 12724, - 12539, 12353, 12166, 11980, 11792, 11604, 11416, 11227, - 11038, 10849, 10659, 10469, 10278, 10087, 9895, 9703, - 9511, 9319, 9126, 8932, 8739, 8545, 8351, 8156, - 7961, 7766, 7571, 7375, 7179, 6982, 6786, 6589, - 6392, 6195, 5997, 5799, 5601, 5403, 5205, 5006, - 4807, 4608, 4409, 4210, 4011, 3811, 3611, 3411, - 3211, 3011, 2811, 2610, 2410, 2209, 2009, 1808, - 1607, 1406, 1206, 1005, 804, 603, 402, 201, - 0, -201, -402, -603, -804, -1005, -1206, -1406, - -1607, -1808, -2009, -2209, -2410, -2610, -2811, -3011, - -3211, -3411, -3611, -3811, -4011, -4210, -4409, -4608, - -4807, -5006, -5205, -5403, -5601, -5799, -5997, -6195, - -6392, -6589, -6786, -6982, -7179, -7375, -7571, -7766, - -7961, -8156, -8351, -8545, -8739, -8932, -9126, -9319, - -9511, -9703, -9895, -10087, -10278, -10469, -10659, -10849, - -11038, -11227, -11416, -11604, -11792, -11980, -12166, -12353, - -12539, -12724, -12909, -13094, -13278, -13462, -13645, -13827, - -14009, -14191, -14372, -14552, -14732, -14911, -15090, -15268, - -15446, -15623, -15799, -15975, -16150, -16325, -16499, -16672, - -16845, -17017, -17189, -17360, -17530, -17699, -17868, -18036, - -18204, -18371, -18537, -18702, -18867, -19031, -19194, -19357, - -19519, -19680, -19840, -20000, -20159, -20317, -20474, -20631, - -20787, -20942, -21096, -21249, -21402, -21554, -21705, -21855, - -22004, -22153, -22301, -22448, -22594, -22739, -22883, -23027, - -23169, -23311, -23452, -23592, -23731, -23869, -24006, -24143, - -24278, -24413, -24546, -24679, -24811, -24942, -25072, -25201, - -25329, -25456, -25582, -25707, -25831, -25954, -26077, -26198, - -26318, -26437, -26556, -26673, -26789, -26905, -27019, -27132, - -27244, -27355, -27466, -27575, -27683, -27790, -27896, -28001, - -28105, -28208, -28309, -28410, -28510, -28608, -28706, -28802, - -28897, -28992, -29085, -29177, -29268, -29358, -29446, -29534, - -29621, -29706, -29790, -29873, -29955, -30036, -30116, -30195, - -30272, -30349, -30424, -30498, -30571, -30643, -30713, -30783, - -30851, -30918, -30984, -31049, -31113, -31175, -31236, -31297, - -31356, -31413, -31470, -31525, -31580, -31633, -31684, -31735, - -31785, -31833, -31880, -31926, -31970, -32014, -32056, -32097, - -32137, -32176, -32213, -32249, -32284, -32318, -32350, -32382, - -32412, -32441, -32468, -32495, -32520, -32544, -32567, -32588, - -32609, -32628, -32646, -32662, -32678, -32692, -32705, -32717, - -32727, -32736, -32744, -32751, -32757, -32761, -32764, -32766, - -32767, -32766, -32764, -32761, -32757, -32751, -32744, -32736, - -32727, -32717, -32705, -32692, -32678, -32662, -32646, -32628, - -32609, -32588, -32567, -32544, -32520, -32495, -32468, -32441, - -32412, -32382, -32350, -32318, -32284, -32249, -32213, -32176, - -32137, -32097, -32056, -32014, -31970, -31926, -31880, -31833, - -31785, -31735, -31684, -31633, -31580, -31525, -31470, -31413, - -31356, -31297, -31236, -31175, -31113, -31049, -30984, -30918, - -30851, -30783, -30713, -30643, -30571, -30498, -30424, -30349, - -30272, -30195, -30116, -30036, -29955, -29873, -29790, -29706, - -29621, -29534, -29446, -29358, -29268, -29177, -29085, -28992, - -28897, -28802, -28706, -28608, -28510, -28410, -28309, -28208, - -28105, -28001, -27896, -27790, -27683, -27575, -27466, -27355, - -27244, -27132, -27019, -26905, -26789, -26673, -26556, -26437, - -26318, -26198, -26077, -25954, -25831, -25707, -25582, -25456, - -25329, -25201, -25072, -24942, -24811, -24679, -24546, -24413, - -24278, -24143, -24006, -23869, -23731, -23592, -23452, -23311, - -23169, -23027, -22883, -22739, -22594, -22448, -22301, -22153, - -22004, -21855, -21705, -21554, -21402, -21249, -21096, -20942, - -20787, -20631, -20474, -20317, -20159, -20000, -19840, -19680, - -19519, -19357, -19194, -19031, -18867, -18702, -18537, -18371, - -18204, -18036, -17868, -17699, -17530, -17360, -17189, -17017, - -16845, -16672, -16499, -16325, -16150, -15975, -15799, -15623, - -15446, -15268, -15090, -14911, -14732, -14552, -14372, -14191, - -14009, -13827, -13645, -13462, -13278, -13094, -12909, -12724, - -12539, -12353, -12166, -11980, -11792, -11604, -11416, -11227, - -11038, -10849, -10659, -10469, -10278, -10087, -9895, -9703, - -9511, -9319, -9126, -8932, -8739, -8545, -8351, -8156, - -7961, -7766, -7571, -7375, -7179, -6982, -6786, -6589, - -6392, -6195, -5997, -5799, -5601, -5403, -5205, -5006, - -4807, -4608, -4409, -4210, -4011, -3811, -3611, -3411, - -3211, -3011, -2811, -2610, -2410, -2209, -2009, -1808, - -1607, -1406, -1206, -1005, -804, -603, -402, -201, -}; - -#if N_LOUD != 100 -ERROR: -N_LOUD != 100 -#endif - -#ifdef MAIN - -#include <stdio.h> -#include <math.h> - -#define LOG2Nfft 8 -#define Nfft (1<<LOG2Nfft) -#define Ncp 32 -#define AMP 8192 -#define BW 48 -main() -{ - - short input[2*(Nfft + Ncp)]; - int i; - - - - for (i=0; i<Nfft; i++) { - - if ((i<BW) || (i>Nfft-BW)) { - input[i<<1] = (((i*31)%19)>=10)? AMP : -AMP; // Real input - input[1+(i<<1)] = (((i*41)%17)>=9)? AMP : -AMP; // Imag input - } else { - input[i<<1] = 0; - input[1+(i<<1)] = 0; - } - } - - - fix_fft(input, LOG2Nfft, 1); - - // write to ADAC buffers with cyclic extension - printf("sig = ["); - - for (i=0; i<(Nfft + Ncp); i++) { - if (i!=(Nfft+Ncp-1)) - printf("%d + j*(%d),\n",input[(i%Nfft)<<1],input[1+((i%Nfft)<<1)]); - else - printf("%d + j*(%d)];\n",input[(i%Nfft)<<1],input[1+((i%Nfft)<<1)]); - } - - -} -#endif /* MAIN */ diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/load.c b/openair1/USERSPACE_TOOLS/OPENAIR_RF/load.c deleted file mode 100755 index 1ee2dfe2106341b72a41ad8754477ddfd7ab3592..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/load.c +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdio.h> -#include <stdlib.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <sys/mman.h> -//#include <errno.h> -#include <math.h> -#include <signal.h> -#include <strings.h> - -#ifdef PLATON -#include "daq.h" - -int -loadFPGA2 (unsigned int daq_fd, const char *fname) -{ - int i, j; - int bitf; - char *map; - unsigned char *fpga_buf; - int fpga_size; - int pos = 0; - struct stat statbuf; - unsigned int bd; - char line[1024]; - - printf ("Loading %s\n", fname); - - if ((bitf = open (fname, O_RDONLY)) < 0) { - printf ("Could not open %s\n", fname); - return -1; - } - - if (fstat (bitf, &statbuf) == -1) { - perror ("fstat"); - exit (1); - } - - fpga_size = statbuf.st_size; - - printf ("Allocating %d bytes for FPGA config\n", fpga_size); - - /* We need 4 bytes to put the size of the buffer at the beginning */ - if ((fpga_buf = (unsigned char *) malloc (fpga_size)) == NULL) { - fprintf (stderr, "can't malloc %d bytes\n", fpga_size + 4); - exit (1); - } - - map = mmap (0, fpga_size, PROT_READ, MAP_PRIVATE, bitf, 0); - - if (map == (caddr_t) - 1) { - perror ("mmap failed"); - exit (-1); - } - - j = 0; - i = 7; /* skip first seven lines */ - - while (i) { - - if (map[j++] == '\n') - i--; - - line[j - 1] = map[j - 1]; - - } - - line[j] = 0; - puts (line); - - /* As there is some space left in fpga_buf[], put the size of the buffer - in the 4 first bytes. */ - fpga_buf[0] = fpga_size & 0x000000FF; - fpga_buf[1] = (fpga_size & 0x0000FF00) >> 8; - fpga_buf[2] = (fpga_size & 0x00FF0000) >> 16; - fpga_buf[3] = (fpga_size & 0xFF000000) >> 24; - pos = 4; /* Protect the integer value */ - /* Now fills the buffer. The method is ridiculous (we use 8 times the - size needed in the fpga_buf), but works. */ - - while (j < fpga_size) { /* size must be 1751840 for XCV300 */ - switch (map[j++]) { /* The bit */ - case '0': - fpga_buf[pos++] = 0; - break; - - case '1': - fpga_buf[pos++] = 1; - break; - - case '\n': - case '\r': - continue; - - default: - printf ("Error in file format"); - return -1; - } - } - - close (bitf); - munmap (map, fpga_size); - - printf ("%d bits read", pos - 4); - *((int *) fpga_buf) = pos - 4; - - printf ("FPGA RESET"); - - if (ioctl (daq_fd, DAQ_FPGA_RESET, 0) == -1) { - perror ("ioctl"); - } - - usleep (100000); - printf ("FPGA PROGRAMMING\n"); - - if (ioctl (daq_fd, DAQ_FPGA_PROGRAM, fpga_buf) == -1) { - perror ("ioctl"); - } - - free (fpga_buf); - return 0; -} - -int -resetFPGA2 (unsigned int daq_fd) -{ - - printf ("Resetting FPGA, ioctl=%x\n", DAQ_FPGA_RESET); - - if (ioctl (daq_fd, DAQ_FPGA_RESET) == -1) - perror ("ioctl"); - - return 0; -} -#endif PLATON diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/load_calibration_data.c b/openair1/USERSPACE_TOOLS/OPENAIR_RF/load_calibration_data.c deleted file mode 100755 index fda77ca117a9fac3ed8325a24aed1f8b5c314255..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/load_calibration_data.c +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#ifdef PLATON - -#include <stdio.h> -#include <stdlib.h> -#include <fcntl.h> -#include <unistd.h> -#include <string.h> -#include "daq.h" - -// LG WARNING : the 2-3 following arrays must be the same -// as those declared in file protocol_vars.h because -// they are copied by copy_from_user() kernel routine -int inv_tx_gain_table[4][300]; -int inv_rx_gain_table[4][200]; -int rx_nf_table[4][200]; - -//------------------------------------------------------------------------------------------------ -int readln (int file_desc, int *value); -int usr_load_calibration_data (unsigned int daq_fdP, unsigned int nb_rf_cardsP, char **argvP); -//------------------------------------------------------------------------------------------------ -int -readln (int file_desc, int *value) -{ - //------------------------------------------------------------------------------------------------ - char ascii_buffer[20]; - int status; - int nb_cars = 0; - - do { - if (nb_cars >= 20) { - return -1; - } - - status = read (file_desc, &ascii_buffer[nb_cars], 1); - - if (status != 1) { - return -1; - } - } while (ascii_buffer[nb_cars++] != '\n'); - - ascii_buffer[nb_cars - 1] = 0; - *value = atoi (ascii_buffer); - printf ("[AS] loading gain %d\n", *value); - return 0; -} - -//----------------------------------------------------------------------------- -int -usr_load_calibration_data (unsigned int daq_fdP, unsigned int nb_rf_cardsP, char **argvP) -{ - //----------------------------------------------------------------------------- - HARDWARE_CONFIGURATION hardware_configuration; - char file_name[] = " "; - char file_name_start[] = "../arch/platon/rf/PLATON_"; - char file_tx_extension[] = "TX.cal"; - char file_rx_extension[] = "RX.cal"; - const char *calibration_file_tx_name; - const char *calibration_file_rx_name; - unsigned int index, offset, fd; - - - memset (inv_tx_gain_table, 0, sizeof (int) * 4 * 300); - memset (inv_rx_gain_table, 0, sizeof (int) * 4 * 200); - memset (rx_nf_table, 0, sizeof (int) * 4 * 200); - - printf ("[AS][INFO][LOAD CALIB DATA] nb_rf_cards %d \n", nb_rf_cardsP); - ioctl (daq_fdP, DAQ_GET_HARDWARE_CONFIGURATION, &hardware_configuration); - - //printf ("[AS][INFO][LOAD CALIB DATA] Configured for %d antennas, master_id = %d\n", hardware_configuration.number_of_DAQ_cards, hardware_configuration.master_id); - - //----------------------------------------------------------------------- - // WRITE GAINS - //----------------------------------------------------------------------- - for (index = 0; index < nb_rf_cardsP; index++) { - file_name[0] = '\0'; - strcat (file_name, file_name_start); - - strcat (file_name, argvP[1]); - strcat (file_name, "_"); - strcat (file_name, argvP[4 + index]); - strcat (file_name, file_tx_extension); - calibration_file_tx_name = file_name; - - - offset = 0; - printf ("[AS][INFO][LOAD CALIB DATA] Loading gains from file %s for antenna %d\n", calibration_file_tx_name, index); - - if ((fd = open (calibration_file_tx_name, O_RDONLY)) < 0) { - printf ("[AS][ERROR][LOAD CALIB DATA] Could not open %s\n", calibration_file_tx_name); - close (daq_fdP); - return(-1); - - } - - while ((readln (fd, &inv_tx_gain_table[index][offset++]) == 0) && (offset < 300)); - - close (fd); - - - file_name[0] = '\0'; - strcat (file_name, file_name_start); - - strcat (file_name, argvP[1]); - - strcat (file_name, "_"); - - strcat (file_name, argvP[4 + index]); - - strcat (file_name, file_rx_extension); - calibration_file_rx_name = file_name; - offset = 0; - printf ("[AS][INFO][LOAD CALIB DATA] Loading gains from file %s for antenna %d\n", calibration_file_rx_name, index); - - if ((fd = open (calibration_file_rx_name, O_RDONLY)) < 0) { - printf ("[AS][ERROR][LOAD CALIB DATA] Could not open %s\n", calibration_file_rx_name); - close (daq_fdP); - return (-1); - } - - while ((readln (fd, &inv_rx_gain_table[index][offset++]) == 0) && (offset < 200)); - - offset = 0; - - while ((readln (fd, &rx_nf_table[index][offset++]) == 0) && (offset < 200)); - - close (fd); - } - - ioctl (daq_fdP, DAQ_SET_CALIBRATION_TX_DATA, &inv_tx_gain_table[0][0]); - ioctl (daq_fdP, DAQ_SET_CALIBRATION_RX_DATA, &inv_rx_gain_table[0][0]); - ioctl (daq_fdP, DAQ_SET_NOISE_FACTOR_DATA, &rx_nf_table[0][0]); - printf ("[AS][INFO][LOAD CALIB DATA] DONE\n"); - return 0; -} -#endif PLATON diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/openair_generate_ofdm.c b/openair1/USERSPACE_TOOLS/OPENAIR_RF/openair_generate_ofdm.c deleted file mode 100644 index d9d0a42bcd7fb73a2ece4b24a8430fde23758582..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/openair_generate_ofdm.c +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <string.h> -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/extern.h" -#ifdef OPENAIR_LTE -#include "PHY/LTE_TRANSPORT/defs.h" -#endif - -void openair_generate_ofdm(TX_VARS *TX_vars,char format,unsigned short freq_alloc,char *pdu) -{ - - unsigned int i,l; - unsigned char level; - -#ifdef OPENAIR_LTE - mod_sym_t **txdataF; - unsigned char pbch_pdu[6]; - unsigned int rv; -#endif - - switch (format) { -#ifndef OPENAIR_LTE - - case 0 : // generate CHSCH + CHBCH (10 symbols out of 64) - printf("Generate OFDM: CHSCH0,CHSCH1 + CHBCH\n"); - phy_generate_chbch(1,0,NB_ANTENNAS_TX,pdu); - break; - - case 1: // generate all SCH 0 repeated in frame (64 symbols) - - printf("Generate OFDM: SCH (symbols 0..63)\n"); - - for (i=0; i<NUMBER_OF_SYMBOLS_PER_FRAME; i+=3) - phy_generate_sch(0,0,i,freq_alloc,0,NB_ANTENNAS_TX); - - break; - - case 2: // generate all CHSCH repeated in frame (64 symbols) - printf("Generate OFDM: CHSCH0 (symbols 0..63)\n"); - phy_generate_chbch(1,0,NB_ANTENNAS_TX,pdu); - - for (i=1; i<NUMBER_OF_SYMBOLS_PER_FRAME; i++) - memcpy((void *)&TX_vars->TX_DMA_BUFFER[i*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX*2], - (void *)&TX_vars->TX_DMA_BUFFER[0], - OFDM_SYMBOL_SIZE_SAMPLES_NO_PREFIX*2); - - break; -#else - - case 3: - - /* - lte_ue_common_vars = &(PHY_vars->lte_ue_common_vars); - lte_ue_dlsch_vars = &(PHY_vars->lte_ue_dlsch_vars[0]); - lte_ue_pbch_vars = &(PHY_vars->lte_ue_pbch_vars[0]); - */ - lte_eNB_common_vars = &PHY_vars->lte_eNB_common_vars; - lte_eNB_ulsch_vars = &(PHY_vars->lte_eNB_ulsch_vars[0]); - - phy_init_top(NB_ANTENNAS_TX); - - TX_vars->TX_DMA_BUFFER[0] = (mod_sym_t *)TX_DMA_BUFFER[0][0]; - TX_vars->TX_DMA_BUFFER[1] = (mod_sym_t *)TX_DMA_BUFFER[0][1]; - - lte_frame_parms->twiddle_fft = twiddle_fft; - lte_frame_parms->twiddle_ifft = twiddle_ifft; - lte_frame_parms->rev = rev; - - lte_gold(lte_frame_parms); - - phy_init_lte_eNB(lte_frame_parms, lte_eNB_common_vars, lte_eNB_ulsch_vars); - - generate_pss(lte_eNB_common_vars->txdataF[0], - 256, - lte_frame_parms, - 0, - 5, - 0); - - for (i=0; i<20; i++) - generate_pilots_slot(lte_eNB_common_vars->txdataF[0], - 256, - lte_frame_parms, - 0, - i); - - for (i=0; i<6; i++) - pbch_pdu[i] = i; - - generate_pbch(lte_eNB_common_vars->txdataF[0], - 256, - lte_frame_parms, - pbch_pdu); - - -#ifdef IFFT_FPGA - write_output("pilotsF.m","rsF",lte_eNB_common_vars->txdataF[0],12*lte_frame_parms->N_RB_DL*12,1,4); -#else - write_output("pilotsF.m","rsF",lte_eNB_common_vars->txdataF[0],lte_frame_parms->ofdm_symbol_size,1,1); -#endif - -#ifndef IFFT_FPGA - PHY_ofdm_mod(lte_eNB_common_vars->txdataF[0], // input - lte_eNB_common_vars->txdata[0], // output - lte_frame_parms->log2_symbol_size, // log2_fft_size - 12*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME, // number of symbols - lte_frame_parms->nb_prefix_samples, // number of prefix samples - lte_frame_parms->twiddle_ifft, // IFFT twiddle factors - lte_frame_parms->rev, // bit-reversal permutation - NONE); - - PHY_ofdm_mod(lte_eNB_common_vars->txdataF[1], // input - lte_eNB_common_vars->txdata[1], // output - lte_frame_parms->log2_symbol_size, // log2_fft_size - 12*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME, // number of symbols - lte_frame_parms->nb_prefix_samples, // number of prefix samples - lte_frame_parms->twiddle_ifft, // IFFT twiddle factors - lte_frame_parms->rev, // bit-reversal permutation - NONE); - - - //write_output("pss.m","pss0", PHY_vars->tx_vars[0].TX_DMA_BUFFER,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1); - - - write_output("pss.m","pss0", TX_vars->TX_DMA_BUFFER[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,5); - - free(txdataF[0]); - free(txdataF[1]); -#endif //IFFT_FPGA - free(txdataF); - break; - - case 4: - phy_init_top(2); - printf("TX_DMA_BUFFER[0] = %p, TX_DMA_BUFFER[1] = %p\n", - TX_DMA_BUFFER[0][0],TX_DMA_BUFFER[0][1]); - TX_vars->TX_DMA_BUFFER[0] = (mod_sym_t *)TX_DMA_BUFFER[0][0]; - TX_vars->TX_DMA_BUFFER[1] = (mod_sym_t *)TX_DMA_BUFFER[0][1]; - - for (l=1; l<120; l++) { - for (i=0; i<75; i+=3) { - rv = ptaus(); - rv = rv & 0x03030303; - ((unsigned char*)&rv)[0] = ((unsigned char*)&rv)[0]+1; - ((unsigned char*)&rv)[1] = ((unsigned char*)&rv)[1]+1; - ((unsigned char*)&rv)[2] = ((unsigned char*)&rv)[2]+1; - ((unsigned char*)&rv)[3] = ((unsigned char*)&rv)[3]+1; - ((unsigned int *)TX_vars->TX_DMA_BUFFER[0])[l*75+i] = rv; - ((unsigned int *)TX_vars->TX_DMA_BUFFER[1])[l*75+i] = rv; - - rv = ptaus(); - rv = rv & 0x03030303; - ((unsigned char*)&rv)[0] = ((unsigned char*)&rv)[0]+1; - ((unsigned char*)&rv)[1] = ((unsigned char*)&rv)[1]+1; - ((unsigned char*)&rv)[2] = ((unsigned char*)&rv)[2]+1; - ((unsigned char*)&rv)[3] = ((unsigned char*)&rv)[3]+1; - ((unsigned int *)TX_vars->TX_DMA_BUFFER[0])[l*75+i+1] = rv; - ((unsigned int *)TX_vars->TX_DMA_BUFFER[1])[l*75+i+1] = rv; - - rv = ptaus(); - rv = rv & 0x03030303; - ((unsigned char*)&rv)[0] = ((unsigned char*)&rv)[0]+1; - ((unsigned char*)&rv)[1] = ((unsigned char*)&rv)[1]+1; - ((unsigned char*)&rv)[2] = ((unsigned char*)&rv)[2]+1; - ((unsigned char*)&rv)[3] = ((unsigned char*)&rv)[3]+1; - ((unsigned int *)TX_vars->TX_DMA_BUFFER[0])[l*75+i+2] = rv; - ((unsigned int *)TX_vars->TX_DMA_BUFFER[1])[l*75+i+2] = rv; - - } - } - - -#endif // OPENAIR_LTE - - default: - break; - } -} - - - - diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/openair_rf.c b/openair1/USERSPACE_TOOLS/OPENAIR_RF/openair_rf.c deleted file mode 100755 index d388409fc938c18f1df939b0c9abd53587fff8d2..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/openair_rf.c +++ /dev/null @@ -1,732 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -//#include "PHY/CONFIG/vars.h" -//#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - -//#include <arpa/inet.h> -#include <sys/types.h> -//#include <sys/ipc.h> -//#include <sys/shm.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/time.h> -//#include <sys/types.h> -//#include <sys/wait.h> -//#include <ctype.h> -#include <fcntl.h> -//#include <errno.h> -#include <unistd.h> -//#include <string.h> -//#include <netdb.h> - -#define PAGE_SIZE 4096 - -//PHY_CONFIG PHY_config_mem; -//PHY_CONFIG *PHY_config; - -//float estimate_freq(short *); - -//unsigned int revbits(unsigned int x); -int current_dlsch_cqi; - - -int main (int argc, char **argv) -{ - - int openair_fd,rx_sig_fifo_fd,frequency,i; - - unsigned int action; - char *dma_buffer_local; - char device_name[16]; - unsigned char temp[4]; - unsigned int tmp; - int result=-1; - - FILE *chbch_file,*rx_frame_file,*tx_frame_file; - unsigned int fc; - int ifreq, target_freq; - - char *chbch_pdu; - int chbch_size; - - TX_VARS *TX_vars; - LTE_DL_FRAME_PARMS *frame_parms; - - if (argc < 3) { - printf("[openair][INFO] Usage %s frequency(0,1,2,3) action (0-14) params . . . \n" , argv[0]); - printf("[openair][INFO] ACTION DESCRIPTIONS\n"); - printf("[openair][INFO] Action 0 : Configure PHY/MAC (Kernel module and FPGA) - param dual_tx (0/1) - param tdd (0/1) - tdd config(0-9, 254=RX only, 255=TX only)\n"); - printf("[openair][INFO] Action 1 : Start Primary Clusterhead - param 0/1 = frequency offset on/off - param NODE_ID\n"); - printf("[openair][INFO] Action 2 : Start Secondary Clusterhead - param 0/1 = frequency offset on/off - param NODE_ID\n"); - printf("[openair][INFO] Action 3 : Start Node - param 0/1 = frequency offset on/off - param NODE_ID\n"); - printf("[openair][INFO] Action 4 : Standby - param 0/1 = frequency offset on/off\n"); - printf("[openair][INFO] Action 5 : Get frame and save to rx_frame.dat - param 0/1 = frequency offset on/off\n"); - printf("[openair][INFO] Action 6 : Set TX gains - param 2394_0 (0-255),9862_TX_0(0-255),2394_1(0-255),9862_TX_1(0-255)\n"); - printf("[openair][INFO] Action 7 : Set RX gains - param 2391_0 (0-255),9862_RX_0(0-19),2391_1(0-255),9862_RX_1(0-19) (also turns off AGC)\n"); - printf("[openair][INFO] Action 8 : TX C/W @ fs/4 + offset - param 0/1 = 66 kHz frequency offset on/off\n"); - printf("[openair][INFO] Action 9 : TX OFDM/QPSK - param 0/1 = 66 kHz frequency offset on/off\n"); - printf("[openair][INFO] Action 10 : TX SCCP/QPSK param 0/1 = 66 kHz frequency offset on/off\n"); - printf("[openair][INFO] Action 11 : TX SCCP/16QAM param 0/1 = 66 kHz frequency offset on/off\n"); - printf("[openair][INFO] Action 12 : TX I/Q impulses (delay test)\n"); - printf("[openair][INFO] Action 13 : TX real C/W fs/4 + offset with DC component - param 0/1 = 66 kHz frequency offset off/on\n"); - printf("[openair][INFO] Action 14 : SET RX RF Mode - param\n"); - printf("[openair][INFO] Action 15 : SET TCXO param (set > 255 to use calibrated value)\n"); - printf("[openair][INFO] Action 16 : SET CALIBRATED RX GAIN param (also turns off AGC)\n"); - printf("[openair][INFO] Action 22 : Update SoC firmware\n"); - printf("[openair][INFO] Action 25 : SET TIMING ADVANCE param\n"); - printf("[openair][INFO] Action 26 : SET FREQ OFFSET param\n"); - printf("[openair][INFO] Action 27 : Start Primary Clusterhead in cognitive mode - param 0/1 = frequency offset on/off - param NODE_ID\n"); - printf("[openair][INFO] Action 28 : Set UE DL MCS - param 0-31\n"); - printf("[openair][INFO] Action 29 : Set UE UL MCS - param 0-31\n"); - printf("[openair][INFO] Action 30 : Start UE UL NB RB 2-9\n"); - printf("[openair][INFO] Action 31 : Start UE Rate Adaptation param 0/1\n"); - printf("[openair][INFO] Action 32 : Set DLSCH Transmission Mode param 1-7\n"); - printf("[openair][INFO] Action 33 : Set ULSCH Allocation Mode param 0-2\n"); - printf("[openair][INFO] Action 35 : Set cooperation flag (0=no coop, 1=delay diversity, 2=distrib Alamouti)\n"); - exit (-1); - } - - - frequency = atoi(argv[1]); - // printf ("[openair][INFO][START] RBT file is %s\n", argv[2]); - printf ("[openair][INFO][START] Frequency is %d\n", frequency); - // printf ("[openair][INFO][START] number of antennas is %d\n", nb_rf_cards); - - action = atoi(argv[2]); - - if (action == 0) // configure - printf("[openair][INFO][START] Action is : configuration\n"); - else if (action == 1) // start clusterhead - printf("[openair][INFO][START] Action is : start primary clusterhead\n"); - else if (action == 2) // start terminode - printf("[openair][INFO][START] Action is : start secondary clusterhead\n"); - else if (action == 3) // stop - printf("[openair][INFO][START] Action is : start node\n"); - else if (action == 4) // stop - printf("[openair][INFO][START] Action is : stop\n"); - else if (action == 5) // stop - printf("[openair][INFO][START] Action is : GET_FRAME\n"); - else if (action == 6) // stop - printf("[openair][INFO][START] Action is : SET_TX_GAIN\n"); - else if (action == 7) // stop - printf("[openair][INFO][START] Action is : SET_RX_GAIN\n"); - else if (action == 8) // stop - printf("[openair][INFO][START] Action is : START_FS4_TEST\n"); - else if (action == 9) // stop - printf("[openair][INFO][START] Action is : START_OFDM_TEST\n"); - else if (action == 11) // stop - printf("[openair][INFO][START] Action is : START_QAM16_TEST\n"); - else if (action == 10) // stop - printf("[openair][INFO][START] Action is : START_QPSK_TEST\n"); - else if (action == 12) // stop - printf("[openair][INFO][START] Action is : START_IQ_IMPULSES_TEST\n"); - else if (action == 13) // stop - printf("[openair][INFO][START] Action is : START_REAL_FS4_WITH_DC_TEST\n"); - else if (action == 14) // stop - printf("[openair][INFO][START] Action is : SET_RX_RF MODE\n"); - else if (action == 15) // stop - printf("[openair][INFO][START] Action is : SET_TCXO_DAC\n"); - else if (action == 16) // Set calibrated gain - printf("[openair][INFO][START] Action is : SET_CALIBRATED_RX_GAIN\n"); - else if (action == 22) // Update firmware - printf("[openair][INFO][START] Action is : UPDATE_FIRMWARE\n"); - else if (action == 23) // Set Topology info - printf("[openair][INFO][START] Action is : SET_TOPOLOGY_INFORMATION\n"); - else if (action == 24) // Stop_EMULATION_TX_RX for node// disconnect from CH - printf("[openair][INFO][START] Action is : STOP_EMULATION_TX_RX\n"); - else if (action == 25) // Set timing advance - printf("[openair][INFO][START] Action is : SET_TIMING_ADVANCE\n"); - else if (action == 26) // Set freq offset - printf("[openair][INFO][START] Action is : SET_FREQ_OFFSET\n"); - else if (action == 28) // - printf("[openair][INFO][START] Action is : SET_UE_DL_MCS\n"); - else if (action == 29) // - printf("[openair][INFO][START] Action is : SET_UE_UL_MCS\n"); - else if (action == 30) // - printf("[openair][INFO][START] Action is : SET_UE_UL_NB_RB\n"); - else if (action == 31) // - printf("[openair][INFO][START] Action is : SET_DLSCH_RATE_ADAPTATION\n"); - else if (action == 32) // - printf("[openair][INFO][START] Action is : SET_DLSCH_TRANSMISSION_MODE\n"); - else if (action == 33) // - printf("[openair][INFO][START] Action is : SET_ULSCH_ALLOCATION_MODE\n"); - else if (action == 39) // Send EMOS Rec flag - printf("[openair][INFO][START] Action is : START_EMOS_NODEB\n"); - else { - printf("[openair][INFO][START] Action is : unknown action %d\n",action); - } - - - printf("[openair][INFO][START] Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - //PHY_config = (PHY_CONFIG *)&PHY_config_mem; - //PHY_vars = malloc(sizeof(PHY_VARS)); - //mac_xface = malloc(sizeof(MAC_xface)); - TX_vars = malloc(sizeof(TX_VARS)); - frame_parms = malloc(sizeof(LTE_DL_FRAME_PARMS)); - - frame_parms->N_RB_DL = 25; - frame_parms->N_RB_UL = 25; - frame_parms->Nid_cell = 0; - frame_parms->Ncp = 1; - frame_parms->Ncp_UL = 1; - frame_parms->nushift = 0; - frame_parms->frame_type = 1; //TDD - frame_parms->tdd_config = 255; - frame_parms->tdd_config_S = 0; - frame_parms->mode1_flag = 1; - frame_parms->nb_antennas_tx = 2; //NB_ANTENNAS_TX; - frame_parms->nb_antennas_rx = 1; //NB_ANTENNAS_RX; - frame_parms->dual_tx = 0; - - frame_parms->phich_config_common.phich_resource = oneSixth; - frame_parms->phich_config_common.phich_duration = normal; - - frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = 0;//n_DMRS1 set to 0 - - init_frame_parms(frame_parms,1); - - printf("Initialized PHY variables\n"); - - -#ifndef OPENAIR_LTE - chbch_size = (NUMBER_OF_USEFUL_CARRIERS*NUMBER_OF_CHBCH_SYMBOLS)>>3; - chbch_pdu = malloc(chbch_size); - - for (i=0; i<chbch_size-4; i++) { - chbch_pdu[i] = i; - } - - printf("Filled CHBCH PDU with random data\n"); -#endif //OPENAIR_LTE - - dma_buffer_local = (char *)malloc(NB_ANTENNAS_RX*FRAME_LENGTH_BYTES); - - if (!dma_buffer_local) { - printf("could not allocated dma buffer\n"); - exit(-1); - } - - printf("Running action %d\n",action); - - switch (action) { - - case 0 : - - if (argc>5) - frame_parms->tdd_config = atoi(argv[5]); - else - printf("Using TDD config %d\n",frame_parms->tdd_config); - - if (argc>4) - frame_parms->frame_type = (unsigned char) atoi(argv[4]); - else - printf("Using frame type %d\n",frame_parms->frame_type); - - if (argc>3) - frame_parms->dual_tx = (unsigned char) atoi(argv[3]); - else - printf("Using dual_tx %d\n",frame_parms->dual_tx); - - frame_parms->freq_idx = (unsigned char) frequency; - - dump_frame_parms(frame_parms); - - result=ioctl(openair_fd, openair_DUMP_CONFIG,(char *)frame_parms); - - if (result == 0) { - printf ("[openair][CONFIG][INFO] loading openair configuration in kernel space\n"); - } else { - printf ("[openair][START][INFO] loading openair configuration in kernel space failed \n"); - } - - - break; - - case 1 : - printf("[openair][START][INFO] Starting clusterhead\n"); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((atoi(argv[4])&0xFF) << 7); - printf("[openair][START][INFO] fc = %d\n",fc); - result=ioctl(openair_fd,openair_START_1ARY_CLUSTERHEAD, &fc); - - if (result == 0) { - printf ("[openair][START][INFO] primary clusterhead running\n"); - } else { - printf ("[openair][START][INFO] starting primary clusterhead failed \n"); - } - - break; - - case 2 : - printf("[openair][START][INFO] Starting secondary clusterhead\n"); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((atoi(argv[4])&0xFF) << 7); - result=ioctl(openair_fd,openair_START_2ARY_CLUSTERHEAD,&fc); - - if (result == 0) { - printf ("[openair][START][INFO] secondary clusterhead running\n"); - } else { - printf ("[openair][START][INFO] starting secondary clusterhead failed \n"); - } - - break; - - case 3 : - printf("[openair][START][INFO] Starting NODE ...(%x)\n",openair_START_NODE); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((atoi(argv[4])&0xFF) << 7); - result=ioctl(openair_fd,openair_START_NODE, &fc); - - if (result == 0) { - printf ("[openair][START][INFO] ok! \n"); - } else { - printf ("[openair][START][INFO] not ok! \n"); - } - - - - break; - - case 4 : - printf("[openair][START][INFO] Stoping ...\n"); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4); - - result=ioctl(openair_fd,openair_STOP,(void *)&fc); - - if (result == 0) { - printf ("[openair][STOP][INFO] ok! \n"); - } else { - printf ("[openair][STOP][INFO] not ok! \n"); - } - - /* - if ((rx_frame_file = fopen("rx_frame.dat","w")) == NULL) - { - printf("[openair][STOP][INFO] Cannot open rx_frame.m data file\n"); - exit(0); - } - - read(rx_sig_fifo_fd,(void *)dma_buffer_local,NB_ANTENNAS_RX*FRAME_LENGTH_BYTES); - fwrite(dma_buffer_local,4,NB_ANTENNAS_RX*FRAME_LENGTH_COMPLEX_SAMPLES,rx_frame_file); - fclose(rx_frame_file); - */ - - break; - - case 5 : - - if ((rx_frame_file = fopen("rx_frame.dat","w")) == NULL) { - printf("[openair][INFO] Cannot open rx_frame.m data file\n"); - exit(0); - } - - if ((rx_sig_fifo_fd = open("/dev/rtf59",O_RDONLY,0)) <0) { - printf("[openair][INFO] Cannot open rx_sig_fifo\n"); - exit(0); - } - - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4); - ioctl(openair_fd,openair_GET_BUFFER,(void *)&fc); - - sleep(2); - - read(rx_sig_fifo_fd,(void *)dma_buffer_local,NB_ANTENNAS_RX*FRAME_LENGTH_BYTES); - fwrite(dma_buffer_local,4,NB_ANTENNAS_RX*FRAME_LENGTH_COMPLEX_SAMPLES,rx_frame_file); - - fclose(rx_frame_file); - break; - - case 6 : - printf("[openair][START][INFO] Setting TX gains to %d,%d,%d,%d\n",atoi(argv[3]),atoi(argv[4]),atoi(argv[5]),atoi(argv[6])); - temp[0] = atoi(argv[3]); - temp[1] = atoi(argv[4]); - temp[2] = atoi(argv[5]); - temp[3] = atoi(argv[6]); - - result=ioctl(openair_fd,openair_SET_TX_GAIN,&temp[0]); - break; - - case 7 : - printf("[openair][START][INFO] Setting RX gains to %d,%d,%d,%d\n",atoi(argv[3]),atoi(argv[4]),atoi(argv[5]),atoi(argv[6])); - temp[0] = atoi(argv[3]); - temp[1] = atoi(argv[4]); - temp[2] = atoi(argv[5]); - temp[3] = atoi(argv[6]); - - - result=ioctl(openair_fd,openair_SET_RX_GAIN,&temp[0]); - break; - - case 8 : - printf("[openair][START][INFO] TX Test FS/4\n"); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4); - result=ioctl(openair_fd,openair_START_FS4_TEST,&fc); - break; - - case 9 : - printf("[openair][START][INFO] TX Test OFDM, first_rb %d, nb_rb %d\n",atoi(argv[4]),atoi(argv[5]) ); - /* - if ((tx_frame_file = fopen("tx_frame.dat","w")) == NULL) - { - printf("[openair][INFO] Cannot open tx_frame.dat data file\n"); - exit(0); - } - - //openair_generate_ofdm(1,0xffff,chbch_pdu); - openair_generate_ofdm(TX_vars,4,0,0); - - printf("[openair][START][INFO] TX_DMA_BUFFER = %p\n",TX_vars->TX_DMA_BUFFER[0]); - result=ioctl(openair_fd,openair_START_TX_SIG,(void *)TX_vars); - #ifdef IFFT_FPGA - fwrite(TX_vars->TX_DMA_BUFFER[0],1,NUMBER_OF_USEFUL_CARRIERS*NUMBER_OF_SYMBOLS_PER_FRAME,tx_frame_file); - #else - fwrite(TX_vars->TX_DMA_BUFFER[0],4,FRAME_LENGTH_COMPLEX_SAMPLES,tx_frame_file); - #endif - fclose(tx_frame_file); - */ - - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4) | (atoi(argv[4])<<7) | (atoi(argv[5])<<12); - result=ioctl(openair_fd,openair_START_OFDM_TEST,&fc); - - break; - - case 10 : - printf("[openair][START][INFO] TX Test QAM16\n"); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4);; - result=ioctl(openair_fd,openair_START_QAM16_TEST,&fc); - break; - - case 11 : - printf("[openair][START][INFO] TX Test QPSK\n"); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4);; - result=ioctl(openair_fd,openair_START_QPSK_TEST,&fc); - break; - - case 12 : - printf("[openair][START][INFO] TX Test I/Q Impulses\n"); - fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4);; - result=ioctl(openair_fd,openair_START_IQ_IMPULSES_TEST,&fc); - break; - - case 13: - //printf("[openair][START][INFO] FS4 Test with DC\n"); - printf("[openair][START][INFO] FS4 Test\n"); - fc = atoi(argv[3]); - //result=ioctl(openair_fd,openair_START_REAL_FS4_WITH_DC_TEST,&fc); - result=ioctl(openair_fd,openair_START_FS4_TEST,&fc); - break; - - case 14: // SET RX RF MODE - printf("[openair][START][INFO] SET RX RF MODE\n"); - fc = atoi(argv[3]); - result=ioctl(openair_fd,openair_RX_RF_MODE,&fc); - break; - - case 15: // SET TCXO DAC level - printf("[openair][START][INFO] SET TCXO DAC\n"); - fc = atoi(argv[3]); - result=ioctl(openair_fd,openair_SET_TCXO_DAC,&fc); - break; - - case 16: // SET Calibrated - printf("[openair][START][INFO] SET RX GAIN\n"); - fc = atoi(argv[3]); - result=ioctl(openair_fd,openair_SET_CALIBRATED_RX_GAIN,&fc); - break; - - /* - case 17: // DO SYNCHRONIZATION - printf("[openair][INFO] Do CHBCH Synchronization\n"); - ((unsigned char *)&dma_buffer_local[0])[0] = (unsigned char)((atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4)); - ((unsigned char *)&dma_buffer_local[0])[1] = (unsigned char)(atoi(argv[4])); - ioctl(openair_fd,openair_DO_SYNCH,(void *)dma_buffer_local); - break; - - case 18: // GET SIGNALS - - temp[0] = atoi(argv[4]); - - if (temp[0]==0) - printf("[openair][START][INFO] Get Synch Symbols\n"); - else if (temp[0]==1) - printf("[openair][START][INFO] Get Channel Estimate\n"); - else if (temp[0]==2) - printf("[openair][START][INFO] Get Estimated data\n"); - else if (temp[0]==3) - printf("[openair][START][INFO] Get Decoded Data\n"); - else - printf("[openair][START][INFO] Get Signals : wrong selection (choose from 0-3)\n"); - - - if ((rx_frame_file = fopen("rx_frame.dat","w")) == NULL) - { - printf("[openair][GET_SIGNALS][INFO] Cannot open rx_frame.dat data file\n"); - exit(0); - } - - ((unsigned int *)&dma_buffer_local[0])[0] = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4); - ((unsigned char *)&dma_buffer_local[0])[1] = (unsigned char)(atoi(argv[4])); - - if (temp[0] < 4) - ioctl(openair_fd,openair_GET_SIGNALS,(void *)dma_buffer_local); - // sleep(2); - - fwrite(dma_buffer_local,4,7*256,rx_frame_file); - - fclose(rx_frame_file); - break; - */ - - case 19: // SET FFT SCALE - printf("[openair][START][INFO] Set FFT Scale to %d, %d\n",atoi(argv[3]),atoi(argv[4])); - - temp[0] = atoi(argv[3]); - temp[1] = atoi(argv[4]); - result=ioctl(openair_fd,openair_SET_FFT_SCALE,&temp[0]); - break; - - - case 21: // FFT TEST - fc = atoi(argv[3]); - result=ioctl(openair_fd,openair_SET_CALIBRATED_RX_GAIN,&fc); - break; - - case 22: - result=ioctl(openair_fd, openair_UPDATE_FIRMWARE); - - if (result) printf("[openair][START][INFO] NOK, ioctl failed\n"); - - break; - - /* - //#else //PHY_EMUL_IOCTL - case 23 : - printf("[OPENAIR][START][Topology] Configuring Topology,\n",argc); - unsigned short ri=0,rj=3,Nb_inst,Nb_ch,Nb_ue,kk; - Topo_info[ri++]=atoi(argv[rj++]);//NUMBER OF EMULATION MASTER (Machines) - printf("NUMBER OF MASTER %d\n",Topo_info[ri-1]); - Topo_info[ri++]=atoi(argv[rj++]);//LOCAL MASTER ID - printf("LOCAL MASTER ID %d\n",Topo_info[ri-1]); - Nb_inst=atoi(argv[rj++]);//LOCAL NUMBER OF INSTANCES - Topo_info[ri++]=Nb_inst; - printf("NUMBER OF INSTANCE %d\n",Topo_info[ri-1]); - for(i=0;i<Nb_inst;i++){ - printf("INSTANCE %d\n",i); - Topo_info[ri++]=atoi(argv[rj++]);//Node_id of Instance i - printf("NODE_ID %d\n",Topo_info[ri-1]); - Nb_ch=atoi(argv[rj++]);//Number of CH in the range - Topo_info[ri++]=Nb_ch; - printf("NB_CH %d\n",Topo_info[ri-1]); - for(kk=0;kk<Nb_ch;kk++) - Topo_info[ri++]=atoi(argv[rj++]);//List of CH IDs in the range - Nb_ue=atoi(argv[rj++]);//Number of UE in the range - Topo_info[ri++]=Nb_ue; - printf("NB_UE %d\n",Topo_info[ri-1]); - for(kk=0;kk<Nb_ue;kk++) - Topo_info[ri++]=atoi(argv[rj++]);//List of UE IDs in the range - } - result=ioctl(openair_fd,openair_config_topology, &Topo_info[0]); - - if (result == 0) { - printf ("[openair][START][Topology] ok! \n"); - } else { - printf ("[openair][START][Topology] not ok! \n"); - } - break; - - case 24 : - printf("[OPENAIR][STOP][EMULTION] Disconnect Node\n"); - Topo_info[0]=atoi(argv[3]); - result=ioctl(openair_fd,openair_stop_emulation, &Topo_info[0]); - - if (result == 0) { - printf ("[openair][STOP][EMULATION] ok! \n"); - } else { - printf ("[openair][STOP][EMULATION] not ok! \n"); - } - break; - //#endif //PHY_EMUL_IOCTL - */ - - case 25: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET TIMING ADVANCE to %d\n",fc); - result = ioctl(openair_fd,openair_SET_TIMING_ADVANCE, &fc); - break; - - case 26: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET FREQ OFFSET to %d\n",fc); - result = ioctl(openair_fd,openair_SET_FREQ_OFFSET, &fc); - break; - - case 27 : - printf("[openair][START][INFO] Starting clusterhead in cognitive mode\n"); - fc = 0; //dummy value - not needed - result=ioctl(openair_fd,openair_START_1ARY_CLUSTERHEAD_COGNITIVE, &fc); - - if (result == 0) { - printf ("[openair][START][INFO] primary clusterhead running\n"); - } else { - printf ("[openair][START][INFO] starting primary clusterhead failed \n"); - } - - break; - - case 28: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET UE DL MCS to %d\n",fc); - result = ioctl(openair_fd,openair_SET_UE_DL_MCS, &fc); - break; - - case 29: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET UE UL MCS to %d\n",fc); - result = ioctl(openair_fd,openair_SET_UE_UL_MCS, &fc); - break; - - case 30: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET UE NB_RB to %d\n",fc); - result = ioctl(openair_fd,openair_SET_UE_UL_NB_RB, &fc); - break; - - case 31: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET DLSCH Rate Adaptation to %d\n",fc); - result = ioctl(openair_fd,openair_SET_DLSCH_RATE_ADAPTATION, &fc); - break; - - case 32: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET DLSCH Transmission Mode to %d\n",fc); - result = ioctl(openair_fd,openair_SET_DLSCH_TRANSMISSION_MODE, &fc); - break; - - case 33: - - fc = atoi(argv[3]); - printf("[openair][START][INFO] SET ULSCH Allocation Mode to %d\n",fc); - result = ioctl(openair_fd,openair_SET_ULSCH_ALLOCATION_MODE, &fc); - break; - - case 34: - - result = ioctl(openair_fd,openair_SET_RRC_CONN_SETUP, NULL); - break; - - case 35: - - fc = atoi(argv[3]); - result = ioctl(openair_fd,openair_SET_COOPERATION_FLAG, &fc); - break; - - default: - - printf("[openair] Action unknown\n"); - return(-1); - - } - - close(openair_fd); - - return(0); -} - -/* -float estimate_freq(short *buffer) { - - int i,j,tmp,tmp_re,tmp_im,max_f,max_point; - float avg = 0.0; - - for (i=2048;i<16*2048;i+=2048) - fix_fft(&buffer[i],10,0); - - for (j=1;j<16;j++) { - - max_f = 0; - - for (i=0;i<2048;i+=2) { - tmp_re = buffer[i + (j<<11)]; - tmp_im = buffer[i+1 + (j<<11)]; - tmp = (tmp_re*(int)tmp_re) + (tmp_im*(int)tmp_im); - if ( tmp > max_f) { - max_f = tmp; - max_point = i>>1; - } - } - avg += ((float)max_point/15); - // printf("%d (%f)\n",max_point,avg); - - } - return(avg); -} - -unsigned int revbits(unsigned int x) { - - int i; - unsigned int ret = 0 ; - - - for (i=0;i<31;i++) - - ret += (((x&(1<<i)) == 0) ? 0 : ((1<<(31-i)))); - - return ret; -} -*/ diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/test_rx.m b/openair1/USERSPACE_TOOLS/OPENAIR_RF/test_rx.m deleted file mode 100644 index e55fcc16ea93a9333fc27b21969d1d940ffa78fe..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/test_rx.m +++ /dev/null @@ -1,41 +0,0 @@ -clear all -close all - -affich - -%% -primary_synch0 = [exp(-1j*pi*25*(0:30).*(1:31)/63) 0 exp(-1j*pi*25*(32:62).*(33:63)/63)]; -primary_synch0_mod2 = zeros(1,256); -primary_synch0_mod2((256-30):end)=primary_synch0(1:31); -primary_synch0_mod2(1:32)=primary_synch0(32:end); -primary_synch0_time = ifft(primary_synch0_mod2)*sqrt(256); - -%% -c1 = xcorr(rxs(:,1),primary_synch0_time); -c2 = xcorr(rxs(:,2),primary_synch0_time); -c = c1+c2; -figure(3) -plot(abs(c)) -[m,i] = max(abs(c)); -sync_pos = i-38400; -figure(1) -hold on -%plot(sync_pos,0,'rx','Markersize',20,'Linewidth',5) -plot(sync_pos,0,'rx') - -%% -temp = rxs(sync_pos-5*320:sync_pos-320*4-1,1); -tempF = fft(temp(1:256)); -symb0 = [tempF(167:end,1); tempF(2:91,1)]; - - -%% "standard" channel estimation and FFT interpolation -% load the pilots for the first OFDM symbol -pilotsF -pilot_symb0 = [ rsF(167:end,1); rsF(2:91,1)]; - -h = 1./(pilot_symb0(2:6:end)).*symb0(2:6:end); -h = fft([ifft(h); zeros(150,1)]); - -figure(4) -plot(abs(h)) \ No newline at end of file diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/txgains.sh b/openair1/USERSPACE_TOOLS/OPENAIR_RF/txgains.sh deleted file mode 100755 index 4b19a9e48a98edf52702903804eb31a7b4c637f4..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/OPENAIR_RF/txgains.sh +++ /dev/null @@ -1,11 +0,0 @@ -export CBMIMO1_m20_dBm="113 111 0 0" -export CBMIMO1_m15_dBm="119 118 0 0" -export CBMIMO1_m10_dBm="126 125 0 0" -export CBMIMO1_m5_dBm="133 131 0 0" -export CBMIMO1_0_dBm="139 138 0 0" -export CBMIMO1_5_dBm="147 145 0 0" -export CBMIMO1_10_dBm="152 151 0 0" -export CBMIMO1_15_dBm="160 158 0 0" -export CBMIMO1_20_dBm="177 173 30 17" - - diff --git a/openair1/USERSPACE_TOOLS/SCOPE/COPYING b/openair1/USERSPACE_TOOLS/SCOPE/COPYING deleted file mode 100644 index 818433ecc0e094a4db1023c68b33f24344643ad8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - 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/>. - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - <program> Copyright (C) <year> <name of author> - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -<http://www.gnu.org/licenses/>. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/openair1/USERSPACE_TOOLS/SCOPE/Makefile b/openair1/USERSPACE_TOOLS/SCOPE/Makefile deleted file mode 100755 index a02ed10ee85338cecf2531adeff0ce92a98c4706..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -include $(OPENAIR_HOME)/common/utils/Makefile.inc - -TOP_DIR = ../.. -OPENAIR2_DIR = ../../../openair2 -OPENAIR2_TOP = $(OPENAIR2_DIR) - -CFLAGS += -DNODE_RG -DUSER_MODE -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DNB_ANTENNAS_TXRX=2 -DWIDENS_DLC -DPHY_CONTEXT -DPC_DSP -DPC_TARGET -DMAX_MODULES=1 -DCBMIMO1 -I$(TOP_DIR) -I/usr/include/X11 -I/usr/X11R6/include -I/usr/realtime/include -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES - -include $(OPENAIR2_DIR)/LAYER2/Makefile.inc -CFLAGS += $(L2_incl) - -LTE_OBJS = lte_scope.o lte.o $(TOP_DIR)/PHY/TOOLS/file_output.o $(TOP_DIR)/PHY/INIT/init_top.o $(TOP_DIR)/PHY/TOOLS/fft.o -LTE_UL_OBJS = lte_scope_ul.o lte_ul.o $(TOP_DIR)/PHY/TOOLS/file_output.o $(TOP_DIR)/PHY/INIT/init_top.o $(TOP_DIR)/PHY/TOOLS/fft.o - -ifeq ($(EMOS),1) -CFLAGS += -DEMOS -endif - -all: lte lte_ul - -lte: $(LTE_OBJS) - $(CC) -o lte_scope $(CFLAGS) $(LTE_OBJS) -lm -L/usr/local/lib -lforms -lX11 -L/usr/X11R6/lib -lXpm -lpthread - -lte_ul: $(LTE_UL_OBJS) - $(CC) -o lte_scope_ul $(CFLAGS) $(LTE_UL_OBJS) -lm -L/usr/local/lib -lforms -lX11 -L/usr/X11R6/lib -lXpm -lpthread - - -$(LTE_OBJS) $(LTE_UL_OBJS): %.o: %.c - $(CC) -c $(DEBUG_FLAGS) $(CFLAGS) -DOPENAIR_LTE $(INCLUDE) -o $@ $< - -clean: - rm -f $(LTE_OBJS) $(LTE_UL_OBJS) - - diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch.c b/openair1/USERSPACE_TOOLS/SCOPE/chbch.c deleted file mode 100755 index bf4252f9a6c0c8acf2bcfdf4356a3e78c9f48ccf..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch.c +++ /dev/null @@ -1,456 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <pthread.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -//#include <sys/user.h> -//#include <errno.h> -#include <math.h> -#include <signal.h> -#include <strings.h> -#include "forms.h" -#include "chbch_scope.h" - -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -#include "PHY/CONFIG/vars.h" -#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - - -FD_chbch_scope *form; - - -//short channel[2048]; -//short channel_f[2048]; -//char demod_data[2048]; - -short *channel[4],*channel_f[4],*rx_sig[4],*rx_sig_f2[4],*rx_sig_f3[4],*sach_data,*magh[4]; -char *demod_data,*rx_sig_f4; - -int length,offset; -float avg=1; -int sach_flag; - -unsigned char nb_tx_ant; - -SACH_DIAGNOSTICS *sach_diag; - - -void chbch_scope_idle_callback(void) -{ - - int i,j,ind,k; - - float Re,Im,mag_sig[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],mag_h[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - mag_sig2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],sig_time[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_re[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],scat_sig_im[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_re2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],scat_sig_im2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8]; - - float cum_avg; - - unsigned short nb_sach_carriers; - - for (i=0; i<2*CYCLIC_PREFIX_LENGTH; i++) { - sig_time[i] = (float)i; - Re = (float)(channel[0][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 4*i]); - Im = (float)(channel[0][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 1+(4*i)]); - mag_sig[i] = 10*log10(1+Re*Re + Im*Im); - Re = (float)(channel[1][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 4*i]); - Im = (float)(channel[1][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 1+(4*i)]); - mag_sig2[i] = 10*log10(1+Re*Re + Im*Im); - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->channel_t_re,30,80); - fl_set_xyplot_ybounds(form->channel_t_im,30,80); - fl_set_xyplot_data(form->channel_t_re,sig_time,mag_sig,2*CYCLIC_PREFIX_LENGTH,"","",""); - fl_set_xyplot_data(form->channel_t_im,sig_time,mag_sig2,2*CYCLIC_PREFIX_LENGTH,"","",""); - - cum_avg = 0; - ind = 0; - - for (k=0; k<NB_ANTENNAS_RX; k++) { - for (j=0; j<nb_tx_ant; j++) { - - for (i=0; i<NUMBER_OF_OFDM_CARRIERS/nb_tx_ant; i++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_f[k][(4*j)+ (4*(((i*nb_tx_ant)+FIRST_CARRIER_OFFSET)%NUMBER_OF_OFDM_CARRIERS))]); - Im = (float)(channel_f[k][(4*j)+1+(4*(((i*nb_tx_ant)+FIRST_CARRIER_OFFSET)%NUMBER_OF_OFDM_CARRIERS))]); - - if (((i*nb_tx_ant)< NUMBER_OF_USEFUL_CARRIERS)) { - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += (short)sqrt((double)Re*Re + (double)Im*Im) ; - } else - mag_sig[ind] = 0; - - ind++; - } - - // ind+=NUMBER_OF_OFDM_CARRIERS/4; // spacing for visualization - } - } - - avg = cum_avg/NUMBER_OF_USEFUL_CARRIERS; - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->channel_f,30,70); - fl_set_xyplot_data(form->channel_f,sig_time,mag_sig,NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS,"","",""); - j=0; - - if (sach_flag==0) // CHBCH or MRBCH - for (i=0; i<256*length; i+=2) { - - if ((i%256) == 236) - i+=20; - - if ((i%256) == 0) - i+=20; - - if ((i%256) == 80) - i+=96; - - - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[0][4*i])+(float)(rx_sig_f2[1][4*i]); - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[0][1+(4*i)])+(float)(rx_sig_f2[1][1+(4*i)]); - - } - else { - nb_sach_carriers = (sach_diag->nb_sach_carriers < 4096) ? sach_diag->nb_sach_carriers : 4096; - - for (i=0; i<nb_sach_carriers<<1; i+=4) { - - - if ((i % 20) > 3) { - - sig_time[j] = (float)j; - mag_sig[j] = (float)(sach_data[i]); - mag_h[j++] = (float)((magh[0][i]/2)+(magh[1][i]/2)); - mag_sig[j] = (float)(sach_data[1+i]); - mag_h[j++] = -(float)((magh[0][i]/2)+(magh[1][i]/2)); - - } - } - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->demod_out,-1024,1024); - fl_set_xyplot_data(form->demod_out,sig_time,mag_sig,j,"","",""); - fl_add_xyplot_overlay(form->demod_out,1,sig_time,mag_h,j,FL_BLUE); - - j=0; - - for (i=0; i<(length-1)*160*2; i++) { - - sig_time[j] = (float)j; - mag_sig[j++] = (float)demod_data[i]; - sig_time[j] = (float)j; - mag_sig[j++] = (float)demod_data[i]; - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->decoder_input,-10,10); - - if (length == 8) - fl_set_xyplot_data(form->decoder_input,sig_time,mag_sig,2*160*8,"","",""); - else - fl_set_xyplot_data(form->decoder_input,sig_time,&mag_sig[384],384,"","",""); - - j=0; - - if (sach_flag == 0) - for (i=0; i<256*length; i+=2) { - - if ((i%256) == 236) - i+=20; - - if ((i%256) == 0) - i+=20; - - if ((i%256) == 80) - i+=96; - - Re = .5*((float)(rx_sig_f2[0][4*i]) + (float)(rx_sig_f2[1][4*i])); - Im = .5*((float)(rx_sig_f2[0][1+(4*i)]) + (float)(rx_sig_f2[1][1+(4*i)])); - - scat_sig_re[j] = Re; - scat_sig_im[j] = Im; - - Re = .5*((float)(rx_sig_f2[0][4*(i+1)]) + (float)(rx_sig_f2[1][4*(i+1)])); - Im = .5*((float)(rx_sig_f2[0][1+(4*(i+1))]) + (float)(rx_sig_f2[1][1+(4*(i+1))])); - - scat_sig_re2[j] = Re; - scat_sig_im2[j] = Im; - - j++; - - - } - else { - - nb_sach_carriers = (sach_diag->nb_sach_carriers < 4096) ? sach_diag->nb_sach_carriers : 4096; - - for (i=0; i<nb_sach_carriers<<1; i+=4) { - - if ((i % 20) > 3) { - Re = (float)sach_data[i]; - Im = (float)sach_data[1+i]; - - scat_sig_re[j] = Re; - scat_sig_im[j] = Im; - - Re = (float)sach_data[i+2]; - Im = (float)sach_data[i+3]; - scat_sig_re2[j] = Re; - scat_sig_im2[j] = Im; - j++; - } - } - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,j,"","",""); - fl_set_xyplot_ybounds(form->scatter_plot,-1024,1024); - fl_set_xyplot_xbounds(form->scatter_plot,-1024,1024); - fl_set_xyplot_ybounds(form->scatter_plot2,-1024,1024); - fl_set_xyplot_xbounds(form->scatter_plot2,-1024,1024); - fl_set_xyplot_data(form->scatter_plot,scat_sig_re,scat_sig_im,j,"","",""); - fl_set_xyplot_data(form->scatter_plot2,scat_sig_re2,scat_sig_im2,j,"","",""); - - - usleep(10000); -} -//----------------------------------------------------------------------------- -do_scope() -{ - - //----------------------------------------------------------------------------- - char ch; - - fl_set_idle_callback(chbch_scope_idle_callback, NULL); - fl_do_forms() ; /* SIGSCOPE */ - - - -} - -//----------------------------------------------------------------------------- -int main(int argc, char *argv[]) -{ - //----------------------------------------------------------------------------- - - int openair_fd,i; - unsigned int mem_base; - unsigned int first_symbol; - char title[20]; - - if (argc<4) { - printf("Not enough arguments (transport_channel nb_tx_antennas chsch_index (only relevant for bch))\n"); - printf("0=CHBCH 1=RACH 2=DCCH/SACH 3=MRBCH\n"); - exit(-1); - } - - PHY_vars = malloc(sizeof(PHY_VARS)); - - PHY_config = malloc(sizeof(PHY_CONFIG)); - /* - if((config = fopen("./widens_config.cfg","r")) == NULL) // this can be configured - { - printf("[Main USER] The widens configuration file <widens_config.cfg> could not be found!"); - exit(0); - } - - if ((scenario= fopen("./widens_scenario.scn","r")) ==NULL) - { - printf("[Main USER] The widens scenario file <widens_scenario.scn> could not be found!"); - exit(0); - } - - printf("Opened configuration files\n"); - - reconfigure_MACPHY(scenario); - */ - - printf("Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDONLY)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - printf("Getting PHY_vars ...\n"); - - ioctl(openair_fd,openair_GET_VARS,PHY_vars); - - printf("Getting PHY_vars->tx_vars[0].TX_DMA_BUFFER=%p\n",PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - printf("Getting PHY_config ...\n"); - - ioctl(openair_fd,openair_GET_CONFIG,PHY_config); - - printf("PHY_vars chbch_data.rx_vars[0].RX_DMA_BUFFER = %p\n",PHY_vars->rx_vars[0].RX_DMA_BUFFER); - printf("PHY_vars chsch_data.chsch_channel[0] = %p\n",PHY_vars->chsch_data[1].channel[0]); - printf("PHY_vars chsch_data.chsch_channel_f[0] = %p\n",PHY_vars->chsch_data[1].channel_f[0]); - printf("PHY_vars chbch_data.rx_sig_f2[0] = %p\n",PHY_vars->chbch_data[1].rx_sig_f2[0]); - - printf("NUMBER_OF_OFDM_CARRIERS = %d\n",NUMBER_OF_OFDM_CARRIERS); - - - mem_base = mmap(0, - 2048*4096, - PROT_READ, - MAP_PRIVATE, - openair_fd, - 0); - - if (mem_base != -1) - msg("MEM base= %p\n",mem_base); - else - msg("Could not map physical memory\n"); - - if (atoi(argv[1]) == 0) { // CHBCH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->chsch_data[atoi(argv[3])].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->chsch_data[atoi(argv[3])].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig[i] = (short *)(mem_base + (unsigned int)PHY_vars->rx_vars[i].RX_DMA_BUFFER-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p,rx_sig_f2[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i],i,rx_sig_f2[i]); - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 8; - sach_flag = 0; - } else if (atoi(argv[1]) == 1) { // RACH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[0].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[0].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - first_symbol = 2+(NUMBER_OF_SYMBOLS_PER_FRAME>>1); - rx_sig[i] = (short *)(mem_base + - (unsigned int)&PHY_vars->rx_vars[i].RX_DMA_BUFFER[(first_symbol<<LOG2_NUMBER_OF_OFDM_CARRIERS)]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i]); - rx_sig_f3[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f3[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->sach_data[0].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 1; - sach_flag = 1; - } else if (atoi(argv[1]) == 2) { // DCCH/SACH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[atoi(argv[3])].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[atoi(argv[3])].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - first_symbol = 8+(NUMBER_OF_SYMBOLS_PER_FRAME>>1); - rx_sig[i] = (short *)(mem_base + - (unsigned int)&PHY_vars->rx_vars[i].RX_DMA_BUFFER[(first_symbol<<LOG2_NUMBER_OF_OFDM_CARRIERS)]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - magh[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].mag_channel_f_16qam[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f3[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f3[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i]); - - - } - - sach_data = (short *)(mem_base + (unsigned int)PHY_vars->Sach_diagnostics[0][1].sach_demod_data-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - sach_diag = &PHY_vars->Sach_diagnostics[0][1]; - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->sach_data[1].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - printf("demod_data = %p\n",demod_data); - - length = 20; - sach_flag = 1; - } else if (atoi(argv[1]) == 3) { // MRBCH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[MRSCH_INDEX].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[MRSCH_INDEX].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig[i] = (short *)(mem_base + (unsigned int)PHY_vars->rx_vars[i].RX_DMA_BUFFER-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p,rx_sig_f2[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i],i,rx_sig_f2[i]); - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 1; - sach_flag = 0; - } - - else { - printf("Unknown command %d\n",atoi(argv[1])); - close(openair_fd); - exit(-1); - - } - - nb_tx_ant = atoi(argv[2]); - - for (i=0; i<16; i++) - printf("%x\n",rx_sig[0][i]); - - sprintf(title, "CHBCH SCOPE %d %d %d", atoi(argv[1]), atoi(argv[2]), atoi(argv[3])), - - fl_initialize(&argc, argv, title, 0, 0); /* SIGSCOPE */ - form = create_form_chbch_scope(); /* SIGSCOPE */ - fl_show_form(form->chbch_scope,FL_PLACE_HOTSPOT,FL_FULLBORDER,title); /* SIGSCOPE */ - - do_scope(); - sleep(5); - close(openair_fd); - return(0); -} diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams.c b/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams.c deleted file mode 100644 index abd3847cb3bb6275a2466d50aa84968cd058744b..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams.c +++ /dev/null @@ -1,447 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <pthread.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -//#include <sys/user.h> -//#include <errno.h> -#include <math.h> -#include <signal.h> -#include <strings.h> -#include "forms.h" -#include "chbch_2streams_scope.h" - -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -#include "PHY/CONFIG/vars.h" -#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - - -FD_chbch_scope *form; - - -//short channel[2048]; -//short channel_f[2048]; -//char demod_data[2048]; - -short *channel[4],*channel_f[4],*rx_sig[4],*rx_sig_f2[4],*rx_sig_f3[4]; -int *determ; -short *ideterm; -char *demod_data,*rx_sig_f4; - -int length,offset; -float avg=1; -int sach_flag; -int antenna_idx=0; //needed to read correct data for MMSE receiver - -unsigned char nb_tx_ant; - -void chbch_scope_idle_callback(void) -{ - - int i,j,ind,k; - - float Re,Im,mag_sig[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],mag_sig2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - sig_time[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],scat_sig_re[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_im[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8]; - float cum_avg; - float det[NUMBER_OF_OFDM_CARRIERS], idet[NUMBER_OF_OFDM_CARRIERS], carriers[NUMBER_OF_OFDM_CARRIERS]; - - for (i=0; i<2*CYCLIC_PREFIX_LENGTH; i++) { - sig_time[i] = (float)i; - Re = (float)(channel[0][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 4*i]); - Im = (float)(channel[0][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 1+(4*i)]); - mag_sig[i] = 10*log10(1+Re*Re + Im*Im); - Re = (float)(channel[1][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 4*i]); - Im = (float)(channel[1][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 1+(4*i)]); - mag_sig2[i] = 10*log10(1+Re*Re + Im*Im); - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->channel_t_re,30,80); - fl_set_xyplot_ybounds(form->channel_t_im,30,80); - fl_set_xyplot_data(form->channel_t_re,sig_time,mag_sig,2*CYCLIC_PREFIX_LENGTH,"","",""); - fl_set_xyplot_data(form->channel_t_im,sig_time,mag_sig2,2*CYCLIC_PREFIX_LENGTH,"","",""); - - cum_avg = 0; - ind = 0; - - for (k=0; k<NB_ANTENNAS_RX; k++) { - for (j=0; j<nb_tx_ant; j++) { - - for (i=0; i<NUMBER_OF_OFDM_CARRIERS/nb_tx_ant; i++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_f[k][(4*j)+ (4*(((i*nb_tx_ant)+FIRST_CARRIER_OFFSET)%NUMBER_OF_OFDM_CARRIERS))]); - Im = (float)(channel_f[k][(4*j)+1+(4*(((i*nb_tx_ant)+FIRST_CARRIER_OFFSET)%NUMBER_OF_OFDM_CARRIERS))]); - - if (((i*nb_tx_ant)< NUMBER_OF_USEFUL_CARRIERS)) { - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += (short)sqrt((double)Re*Re + (double)Im*Im) ; - } else - mag_sig[ind] = 0; - - ind++; - } - - // ind+=NUMBER_OF_OFDM_CARRIERS/4; // spacing for visualization - } - } - - avg = cum_avg/NUMBER_OF_USEFUL_CARRIERS; - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->channel_f,30,70); - fl_set_xyplot_data(form->channel_f,sig_time,mag_sig,NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS,"","",""); - j=0; - - if (sach_flag==0) // CHBCH or MRBCH - for (i=0; i<256*length; i+=2) { - - if ((i%256) == 80) - i+=96; - - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[antenna_idx][4*i]); //+rx_sig_f2[1][4*i]); - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[antenna_idx][1+(4*i)]); //+rx_sig_f2[1][1+(4*i)]); - - } - else { - for (i=0; i<256*length; i++) { - - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[0][4*i]+rx_sig_f2[1][4*i]); - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[0][1+(4*i)]+rx_sig_f2[1][1+(4*i)]); - } - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->demod_out,-4096,4096); - fl_set_xyplot_data(form->demod_out,sig_time,mag_sig,160*length,"","",""); - - - j=0; - - for (i=0; i<(length-1)*160*2; i++) { - - sig_time[j] = (float)j; - mag_sig[j++] = (float)demod_data[i]; - sig_time[j] = (float)j; - mag_sig[j++] = (float)demod_data[i]; - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->decoder_input,-10,10); - - if (length == 8) - fl_set_xyplot_data(form->decoder_input,sig_time,mag_sig,2*160*8,"","",""); - else - fl_set_xyplot_data(form->decoder_input,sig_time,&mag_sig[384],384,"","",""); - - j=0; - - if (sach_flag == 0) - for (i=0; i<256*length; i+=2) { - - if ((i%256) == 0) - i+= 16; - - if ((i%256) == 40) - i+=226; - - - Re = .5*(float)(rx_sig_f2[antenna_idx][4*i]); // + rx_sig_f2[1][4*i]); - Im = .5*(float)(rx_sig_f2[antenna_idx][1+(4*i)]); //+ rx_sig_f2[1][1+(4*i)]); - - scat_sig_re[j] = Re; - scat_sig_im[j] = Im; - j++; - - - } - else { - for (i=0; i<256*length; i+=2) { - - if ((i%160) == 0) - i+= 16; - - if ((i%160) == 40) - i+=120; - - - Re = .5*(float)(rx_sig_f3[0][2*i] + rx_sig_f3[1][2*i]); - Im = .5*(float)(rx_sig_f3[0][1+(2*i)] + rx_sig_f3[1][1+(2*i)]); - - scat_sig_re[j] = Re; - scat_sig_im[j] = Im; - j++; - } - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,j,"","",""); - fl_set_xyplot_ybounds(form->scatter_plot,-4096,4096); - fl_set_xyplot_xbounds(form->scatter_plot,-4096,4096); - fl_set_xyplot_data(form->scatter_plot,scat_sig_re,scat_sig_im,j,"","",""); - - for (i=0; i<(NUMBER_OF_OFDM_CARRIERS+CYCLIC_PREFIX_LENGTH)*NUMBER_OF_SYMBOLS_PER_FRAME; i++) { - sig_time[i] = (float)i; - mag_sig[i] = (float)(rx_sig[0][2*i]); - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->control_miniframe,-1024,1024); - fl_set_xyplot_data(form->control_miniframe,sig_time,mag_sig,(NUMBER_OF_OFDM_CARRIERS+CYCLIC_PREFIX_LENGTH),"","",""); - - //plot inverse determinant - if(sach_flag==0) { - for (i=0; i<NUMBER_OF_OFDM_CARRIERS; i++) { - carriers[i] = (float)i; - det[i] = 10*log10(1.0+(float) determ[2*i]); - idet[i] = 10*log10(1.0+(float) ideterm[4*i]); - } - - fl_set_xyplot_data(form->determ,carriers,det,NUMBER_OF_OFDM_CARRIERS,"","",""); - fl_set_xyplot_ybounds(form->determ,0,50); - fl_set_xyplot_data(form->ideterm,carriers,idet,NUMBER_OF_OFDM_CARRIERS,"","",""); - fl_set_xyplot_ybounds(form->ideterm,0,50); - } - - usleep(10000); -} -//----------------------------------------------------------------------------- -do_scope() -{ - - //----------------------------------------------------------------------------- - char ch; - - fl_set_idle_callback(chbch_scope_idle_callback, NULL); - fl_do_forms() ; /* SIGSCOPE */ - - - -} - -//----------------------------------------------------------------------------- -int main(int argc, char *argv[]) -{ - //----------------------------------------------------------------------------- - - int openair_fd,i; - unsigned int mem_base; - unsigned int first_symbol; - char title[20]; - - if (argc<4) { - printf("Not enough arguments (transport_channel nb_tx_antennas chsch_index (only relevant for bch))\n"); - printf("0=CHBCH 1=RACH 2=DCCH/SACH 3=MRBCH\n"); - exit(-1); - } - - PHY_vars = malloc(sizeof(PHY_VARS)); - - PHY_config = malloc(sizeof(PHY_CONFIG)); - /* - if((config = fopen("./widens_config.cfg","r")) == NULL) // this can be configured - { - printf("[Main USER] The widens configuration file <widens_config.cfg> could not be found!"); - exit(0); - } - - if ((scenario= fopen("./widens_scenario.scn","r")) ==NULL) - { - printf("[Main USER] The widens scenario file <widens_scenario.scn> could not be found!"); - exit(0); - } - - printf("Opened configuration files\n"); - - reconfigure_MACPHY(scenario); - */ - - printf("Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDONLY)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - printf("Getting PHY_vars ...\n"); - - ioctl(openair_fd,openair_GET_VARS,PHY_vars); - - printf("Getting PHY_vars->tx_vars[0].TX_DMA_BUFFER=%p\n",PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - printf("Getting PHY_config ...\n"); - - ioctl(openair_fd,openair_GET_CONFIG,PHY_config); - - printf("PHY_vars chbch_data.rx_vars[0].RX_DMA_BUFFER = %p\n",PHY_vars->rx_vars[0].RX_DMA_BUFFER); - printf("PHY_vars chsch_data.chsch_channel[0] = %p\n",PHY_vars->chsch_data[1].channel[0]); - printf("PHY_vars chsch_data.chsch_channel_f[0] = %p\n",PHY_vars->chsch_data[1].channel_f[0]); - printf("PHY_vars chbch_data.rx_sig_f2[0] = %p\n",PHY_vars->chbch_data[1].rx_sig_f2[0]); - - printf("NUMBER_OF_OFDM_CARRIERS = %d\n",NUMBER_OF_OFDM_CARRIERS); - - - mem_base = mmap(0, - 2048*4096, - PROT_READ, - MAP_PRIVATE, - openair_fd, - 0); - - if (mem_base != -1) - msg("MEM base= %p\n",mem_base); - else - msg("Could not map physical memory\n"); - - if (atoi(argv[1]) == 0) { // CHBCH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->chsch_data[atoi(argv[3])].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->chsch_data[atoi(argv[3])].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig[i] = (short *)(mem_base + (unsigned int)PHY_vars->rx_vars[i].RX_DMA_BUFFER-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p,rx_sig_f2[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i],i,rx_sig_f2[i]); - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - determ = (int *)(mem_base + (unsigned int)PHY_vars->chsch_data[1].det - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - ideterm = (short *)(mem_base + (unsigned int)PHY_vars->chsch_data[1].idet - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 8; - sach_flag = 0; - - if (atoi(argv[3])==2) - antenna_idx=1; - else - antenna_idx=0; - } else if (atoi(argv[1]) == 1) { // RACH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[0].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[0].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - first_symbol = 2+(NUMBER_OF_SYMBOLS_PER_FRAME>>1); - rx_sig[i] = (short *)(mem_base + - (unsigned int)&PHY_vars->rx_vars[i].RX_DMA_BUFFER[(first_symbol<<LOG2_NUMBER_OF_OFDM_CARRIERS)]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i]); - rx_sig_f3[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f3[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->sach_data[0].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 1; - sach_flag = 1; - } else if (atoi(argv[1]) == 2) { // DCCH/SACH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[1].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[1].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - first_symbol = 8+(NUMBER_OF_SYMBOLS_PER_FRAME>>1); - rx_sig[i] = (short *)(mem_base + - (unsigned int)&PHY_vars->rx_vars[i].RX_DMA_BUFFER[(first_symbol<<LOG2_NUMBER_OF_OFDM_CARRIERS)]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f3[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f3[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i]); - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->sach_data[1].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - printf("demod_data = %p\n",demod_data); - - length = 20; - sach_flag = 1; - } else if (atoi(argv[1]) == 3) { // MRBCH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[MRSCH_INDEX].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[MRSCH_INDEX].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig[i] = (short *)(mem_base + (unsigned int)PHY_vars->rx_vars[i].RX_DMA_BUFFER-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p,rx_sig_f2[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i],i,rx_sig_f2[i]); - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 1; - sach_flag = 0; - } - - else { - printf("Unknown command %d\n",atoi(argv[1])); - close(openair_fd); - exit(-1); - - } - - nb_tx_ant = atoi(argv[2]); - - for (i=0; i<16; i++) - printf("%x\n",rx_sig[0][i]); - - sprintf(title, "CHBCH SCOPE %d %d %d", atoi(argv[1]), atoi(argv[2]), atoi(argv[3])), - - fl_initialize(&argc, argv, title, 0, 0); /* SIGSCOPE */ - form = create_form_chbch_scope(); /* SIGSCOPE */ - fl_show_form(form->chbch_scope,FL_PLACE_HOTSPOT,FL_FULLBORDER,title); /* SIGSCOPE */ - - do_scope(); - sleep(5); - close(openair_fd); - return(0); -} diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_ml.c b/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_ml.c deleted file mode 100644 index 0e765d57c23e8f24edbe644e0b6bcec6d650f349..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_ml.c +++ /dev/null @@ -1,446 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <pthread.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -//#include <sys/user.h> -//#include <errno.h> -#include <math.h> -#include <signal.h> -#include <strings.h> -#include "forms.h" -#include "chbch_scope.h" - -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -#include "PHY/CONFIG/vars.h" -#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - - -FD_chbch_scope *form; - - -//short channel[2048]; -//short channel_f[2048]; -//char demod_data[2048]; - -short *channel[4],*channel_f[4],*rx_sig[4],*rx_sig_f2[4],*rx_sig_f3[4],*sach_data,*magh[4]; -char *demod_data,*rx_sig_f4; - -int length,offset; -float avg=1; -int sach_flag; - -unsigned char nb_tx_ant; - -SACH_DIAGNOSTICS *sach_diag; - - -void chbch_scope_idle_callback(void) -{ - - int i,j,ind,k; - - float Re,Im,mag_sig[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],mag_h[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - mag_sig2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],sig_time[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_re[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],scat_sig_im[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_re2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8],scat_sig_im2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8]; - - float cum_avg; - - unsigned short nb_sach_carriers; - - for (i=0; i<2*CYCLIC_PREFIX_LENGTH; i++) { - sig_time[i] = (float)i; - Re = (float)(channel[0][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 4*i]); - Im = (float)(channel[0][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 1+(4*i)]); - mag_sig[i] = 10*log10(1+Re*Re + Im*Im); - Re = (float)(channel[1][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 4*i]); - Im = (float)(channel[1][4*(NUMBER_OF_OFDM_CARRIERS - 2*CYCLIC_PREFIX_LENGTH) + 1+(4*i)]); - mag_sig2[i] = 10*log10(1+Re*Re + Im*Im); - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->channel_t_re,30,80); - fl_set_xyplot_ybounds(form->channel_t_im,30,80); - fl_set_xyplot_data(form->channel_t_re,sig_time,mag_sig,2*CYCLIC_PREFIX_LENGTH,"","",""); - fl_set_xyplot_data(form->channel_t_im,sig_time,mag_sig2,2*CYCLIC_PREFIX_LENGTH,"","",""); - - cum_avg = 0; - ind = 0; - - for (k=0; k<NB_ANTENNAS_RX; k++) { - for (j=0; j<nb_tx_ant; j++) { - - for (i=0; i<NUMBER_OF_OFDM_CARRIERS/nb_tx_ant; i++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_f[k][(4*j)+ (4*(((i*nb_tx_ant)+FIRST_CARRIER_OFFSET)%NUMBER_OF_OFDM_CARRIERS))]); - Im = (float)(channel_f[k][(4*j)+1+(4*(((i*nb_tx_ant)+FIRST_CARRIER_OFFSET)%NUMBER_OF_OFDM_CARRIERS))]); - - if (((i*nb_tx_ant)< NUMBER_OF_USEFUL_CARRIERS)) { - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += (short)sqrt((double)Re*Re + (double)Im*Im) ; - } else - mag_sig[ind] = 0; - - ind++; - } - - // ind+=NUMBER_OF_OFDM_CARRIERS/4; // spacing for visualization - } - } - - avg = cum_avg/NUMBER_OF_USEFUL_CARRIERS; - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->channel_f,30,70); - fl_set_xyplot_data(form->channel_f,sig_time,mag_sig,NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS,"","",""); - j=0; - - if (sach_flag==0) // CHBCH or MRBCH - for (i=0; i<256*length; i+=2) { - - if ((i%256) == 80) - i+=96; - - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[1][2*i]); - sig_time[j] = (float)j; - mag_sig[j++] = (float)(rx_sig_f2[1][1+(2*i)]); - - } - else { - nb_sach_carriers = (sach_diag->nb_sach_carriers < 4096) ? sach_diag->nb_sach_carriers : 4096; - - for (i=0; i<nb_sach_carriers<<1; i+=4) { - - - if ((i % 20) > 3) { - - sig_time[j] = (float)j; - mag_sig[j] = (float)(sach_data[i]); - mag_h[j++] = (float)((magh[0][i]/2)+(magh[1][i]/2)); - mag_sig[j] = (float)(sach_data[1+i]); - mag_h[j++] = -(float)((magh[0][i]/2)+(magh[1][i]/2)); - - } - } - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->demod_out,-1024,1024); - fl_set_xyplot_data(form->demod_out,sig_time,mag_sig,j,"","",""); - fl_add_xyplot_overlay(form->demod_out,1,sig_time,mag_h,j,FL_BLUE); - - j=0; - - for (i=0; i<(length-1)*160*2; i++) { - - sig_time[j] = (float)j; - mag_sig[j++] = (float)demod_data[i]; - sig_time[j] = (float)j; - mag_sig[j++] = (float)demod_data[i]; - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,136,"","",""); - fl_set_xyplot_ybounds(form->decoder_input,-10,10); - - if (length == 8) - fl_set_xyplot_data(form->decoder_input,sig_time,mag_sig,2*160*8,"","",""); - else - fl_set_xyplot_data(form->decoder_input,sig_time,&mag_sig[384],384,"","",""); - - j=0; - - if (sach_flag == 0) - for (i=10; i<256*length; i+=2) { - - if ((i%256) == 80) //skip the zero carriers - i+=96; - - if ((i%256) == 246) //skip the DC - i+=20; - - Re = (float)(rx_sig_f2[1][2*i]); - Im = (float)(rx_sig_f2[1][1+(2*i)]); - - scat_sig_re[j] = Re; - scat_sig_im[j] = Im; - - Re = (float)(rx_sig_f2[1][2*(i+1)]); - Im = (float)(rx_sig_f2[1][1+(2*(i+1))]); - - scat_sig_re2[j] = Re; - scat_sig_im2[j] = Im; - - j++; - - - } - else { - - nb_sach_carriers = (sach_diag->nb_sach_carriers < 4096) ? sach_diag->nb_sach_carriers : 4096; - - for (i=0; i<nb_sach_carriers<<1; i+=4) { - - if ((i % 20) > 3) { - Re = (float)sach_data[i]; - Im = (float)sach_data[1+i]; - - scat_sig_re[j] = Re; - scat_sig_im[j] = Im; - - Re = (float)sach_data[i+2]; - Im = (float)sach_data[i+3]; - scat_sig_re2[j] = Re; - scat_sig_im2[j] = Im; - j++; - } - } - } - - //fl_set_xyplot_data(form->scatter_sig,real_mf,imag_mf,j,"","",""); - //fl_set_xyplot_ybounds(form->scatter_plot,-1024,1024); - //fl_set_xyplot_xbounds(form->scatter_plot,-1024,1024); - //fl_set_xyplot_ybounds(form->scatter_plot2,-1024,1024); - //fl_set_xyplot_xbounds(form->scatter_plot2,-1024,1024); - fl_set_xyplot_data(form->scatter_plot,scat_sig_re,scat_sig_im,j,"","",""); - fl_set_xyplot_data(form->scatter_plot2,scat_sig_re2,scat_sig_im2,j,"","",""); - - - usleep(10000); -} -//----------------------------------------------------------------------------- -do_scope() -{ - - //----------------------------------------------------------------------------- - char ch; - - fl_set_idle_callback(chbch_scope_idle_callback, NULL); - fl_do_forms() ; /* SIGSCOPE */ - - - -} - -//----------------------------------------------------------------------------- -int main(int argc, char *argv[]) -{ - //----------------------------------------------------------------------------- - - int openair_fd,i; - unsigned int mem_base; - unsigned int first_symbol; - char title[20]; - - if (argc<4) { - printf("Not enough arguments (transport_channel nb_tx_antennas chsch_index (only relevant for bch))\n"); - printf("0=CHBCH 1=RACH 2=DCCH/SACH 3=MRBCH\n"); - exit(-1); - } - - PHY_vars = malloc(sizeof(PHY_VARS)); - - PHY_config = malloc(sizeof(PHY_CONFIG)); - /* - if((config = fopen("./widens_config.cfg","r")) == NULL) // this can be configured - { - printf("[Main USER] The widens configuration file <widens_config.cfg> could not be found!"); - exit(0); - } - - if ((scenario= fopen("./widens_scenario.scn","r")) ==NULL) - { - printf("[Main USER] The widens scenario file <widens_scenario.scn> could not be found!"); - exit(0); - } - - printf("Opened configuration files\n"); - - reconfigure_MACPHY(scenario); - */ - - printf("Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDONLY)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - printf("Getting PHY_vars ...\n"); - - ioctl(openair_fd,openair_GET_VARS,PHY_vars); - - printf("Getting PHY_vars->tx_vars[0].TX_DMA_BUFFER=%p\n",PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - printf("Getting PHY_config ...\n"); - - ioctl(openair_fd,openair_GET_CONFIG,PHY_config); - - printf("PHY_vars chbch_data.rx_vars[0].RX_DMA_BUFFER = %p\n",PHY_vars->rx_vars[0].RX_DMA_BUFFER); - printf("PHY_vars chsch_data.chsch_channel[0] = %p\n",PHY_vars->chsch_data[1].channel[0]); - printf("PHY_vars chsch_data.chsch_channel_f[0] = %p\n",PHY_vars->chsch_data[1].channel_f[0]); - printf("PHY_vars chbch_data.rx_sig_f2[0] = %p\n",PHY_vars->chbch_data[1].rx_sig_f2[0]); - - printf("NUMBER_OF_OFDM_CARRIERS = %d\n",NUMBER_OF_OFDM_CARRIERS); - - - mem_base = mmap(0, - 2048*4096, - PROT_READ, - MAP_PRIVATE, - openair_fd, - 0); - - if (mem_base != -1) - msg("MEM base= %p\n",mem_base); - else - msg("Could not map physical memory\n"); - - if (atoi(argv[1]) == 0) { // CHBCH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->chsch_data[atoi(argv[3])].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->chsch_data[atoi(argv[3])].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig[i] = (short *)(mem_base + (unsigned int)PHY_vars->rx_vars[i].RX_DMA_BUFFER-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p,rx_sig_f2[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i],i,rx_sig_f2[i]); - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->chbch_data[atoi(argv[3])].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 8; - sach_flag = 0; - } else if (atoi(argv[1]) == 1) { // RACH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[0].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[0].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - first_symbol = 2+(NUMBER_OF_SYMBOLS_PER_FRAME>>1); - rx_sig[i] = (short *)(mem_base + - (unsigned int)&PHY_vars->rx_vars[i].RX_DMA_BUFFER[(first_symbol<<LOG2_NUMBER_OF_OFDM_CARRIERS)]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i]); - rx_sig_f3[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f3[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->sach_data[0].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->sach_data[0].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 1; - sach_flag = 1; - } else if (atoi(argv[1]) == 2) { // DCCH/SACH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[1].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[1].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - first_symbol = 8+(NUMBER_OF_SYMBOLS_PER_FRAME>>1); - rx_sig[i] = (short *)(mem_base + - (unsigned int)&PHY_vars->rx_vars[i].RX_DMA_BUFFER[(first_symbol<<LOG2_NUMBER_OF_OFDM_CARRIERS)]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - magh[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].mag_channel_f_16qam[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f3[i] = (short *)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f3[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i]); - - - } - - sach_data = (short *)(mem_base + (unsigned int)PHY_vars->Sach_diagnostics[0][1].sach_demod_data-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - sach_diag = &PHY_vars->Sach_diagnostics[0][1]; - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->sach_data[1].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->sach_data[1].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - printf("demod_data = %p\n",demod_data); - - length = 20; - sach_flag = 1; - } else if (atoi(argv[1]) == 3) { // MRBCH - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[MRSCH_INDEX].channel[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[MRSCH_INDEX].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig[i] = (short *)(mem_base + (unsigned int)PHY_vars->rx_vars[i].RX_DMA_BUFFER-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - rx_sig_f2[i] = (short *)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].rx_sig_f2[i]-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel[%d] = %p,channel_f[%d]=%p,rx_sig[%d]=%p,rx_sig_f2[%d]=%p\n",i,channel[i],i,channel_f[i],i,rx_sig[i],i,rx_sig_f2[i]); - } - - rx_sig_f4 = (char*)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].rx_sig_f4 - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - demod_data = (char *)(mem_base + (unsigned int)PHY_vars->mrbch_data[0].demod_data - (unsigned int)PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - length = 1; - sach_flag = 0; - } - - else { - printf("Unknown command %d\n",atoi(argv[1])); - close(openair_fd); - exit(-1); - - } - - nb_tx_ant = atoi(argv[2]); - - for (i=0; i<16; i++) - printf("%x\n",rx_sig[0][i]); - - sprintf(title, "CHBCH SCOPE %d %d %d", atoi(argv[1]), atoi(argv[2]), atoi(argv[3])), - - fl_initialize(&argc, argv, title, 0, 0); /* SIGSCOPE */ - form = create_form_chbch_scope(); /* SIGSCOPE */ - fl_show_form(form->chbch_scope,FL_PLACE_HOTSPOT,FL_FULLBORDER,title); /* SIGSCOPE */ - - do_scope(); - sleep(5); - close(openair_fd); - return(0); -} diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.c b/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.c deleted file mode 100644 index 8979dabbde8f96d2f635ebaecfed09d71dd19e7e..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.c +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Form definition file generated with fdesign. */ - -#include "forms.h" -#include <stdlib.h> -#include "chbch_2streams_scope.h" - -FD_chbch_scope *create_form_chbch_scope(void) -{ - FL_OBJECT *obj; - FD_chbch_scope *fdui = (FD_chbch_scope *) fl_calloc(1, sizeof(*fdui)); - - fdui->chbch_scope = fl_bgn_form(FL_NO_BOX, 830, 650); - obj = fl_add_box(FL_ROUNDED_BOX,0,0,830,650,""); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fdui->control_miniframe = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,600,220,190,180,"Control Miniframe"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_DARKORANGE); - fdui->channel_t_re = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,20,20,280,100,"Time-Domain Channel (Real Component)"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fdui->scatter_plot = obj = fl_add_xyplot(FL_POINTS_XYPLOT,600,20,190,190,"Scatter Plot"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_GREEN); - fdui->demod_out = obj = fl_add_xyplot(FL_POINTS_XYPLOT,20,420,570,180,"Demodulator Output"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_YELLOW); - fdui->channel_f = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,140,570,90,"Frequency Bin Response"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->channel_t_im = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,310,20,280,100,"Time-Domain Channel (Imaginaryl Component)"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fdui->decoder_input = obj = fl_add_xyplot(FL_POINTS_XYPLOT,20,240,570,170,"Decoder Input"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_CYAN); - fdui->determ = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,600,410,190,90,"determ"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_MAGENTA); - fdui->ideterm = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,600,510,190,90,"ideterm"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_MAGENTA); - fl_end_form(); - - fdui->chbch_scope->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.fd b/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.fd deleted file mode 100644 index 0c55d9f15e7cfad29d5b78cc4f945a056ea4f947..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.fd +++ /dev/null @@ -1,196 +0,0 @@ -Magic: 13000 - -Internal Form Definition File - (do not change) - -Number of forms: 1 -Unit of measure: FL_COORD_PIXEL - -=============== FORM =============== -Name: chbch_scope -Width: 830 -Height: 650 -Number of Objects: 10 - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 0 0 830 650 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 600 220 190 180 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_DARKORANGE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Control Miniframe -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: control_miniframe -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 20 20 280 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Time-Domain Channel (Real Component) -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_re -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 600 20 190 190 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Scatter Plot -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: scatter_plot -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 20 420 570 180 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Demodulator Output -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: demod_out -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 20 140 570 90 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Frequency Bin Response -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_f -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 310 20 280 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Time-Domain Channel (Imaginaryl Component) -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_im -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 20 240 570 170 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_CYAN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Decoder Input -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: decoder_input -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 600 410 190 90 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_MAGENTA -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: determ -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: determ -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 600 510 190 90 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_MAGENTA -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: ideterm -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ideterm -callback: -argument: - -============================== -create_the_forms diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.h b/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.h deleted file mode 100644 index 949f4e91a5660dfa1f6689834b18e848335da02c..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_2streams_scope.h +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/** Header file generated with fdesign on Tue Nov 4 16:26:49 2008.**/ - -#ifndef FD_chbch_scope_h_ -#define FD_chbch_scope_h_ - -/** Callbacks, globals and object handlers **/ - - -/**** Forms and Objects ****/ -typedef struct { - FL_FORM *chbch_scope; - void *vdata; - char *cdata; - long ldata; - FL_OBJECT *control_miniframe; - FL_OBJECT *channel_t_re; - FL_OBJECT *scatter_plot; - FL_OBJECT *demod_out; - FL_OBJECT *channel_f; - FL_OBJECT *channel_t_im; - FL_OBJECT *decoder_input; - FL_OBJECT *determ; - FL_OBJECT *ideterm; -} FD_chbch_scope; - -extern FD_chbch_scope * create_form_chbch_scope(void); - -#endif /* FD_chbch_scope_h_ */ diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.c b/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.c deleted file mode 100644 index 26de5c129941b2a9896a3ae79d675957544c8aa7..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.c +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Form definition file generated with fdesign. */ - -#include "forms.h" -#include <stdlib.h> -#include "chbch_scope.h" - -FD_chbch_scope *create_form_chbch_scope(void) -{ - FL_OBJECT *obj; - FD_chbch_scope *fdui = (FD_chbch_scope *) fl_calloc(1, sizeof(*fdui)); - - fdui->chbch_scope = fl_bgn_form(FL_NO_BOX, 830, 650); - obj = fl_add_box(FL_ROUNDED_BOX,0,0,830,650,""); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fdui->channel_t_re = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,20,20,280,100,"Time-Domain Channel (Real Component)"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fdui->scatter_plot = obj = fl_add_xyplot(FL_POINTS_XYPLOT,600,20,160,190,"Scatter Plot"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_GREEN); - fdui->demod_out = obj = fl_add_xyplot(FL_POINTS_XYPLOT,20,420,770,180,"Demodulator Output"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_YELLOW); - fdui->channel_f = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,140,570,90,"Frequency Bin Response"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->channel_t_im = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,310,20,280,100,"Time-Domain Channel (Imaginaryl Component)"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fdui->decoder_input = obj = fl_add_xyplot(FL_POINTS_XYPLOT,20,240,570,170,"Decoder Input"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_CYAN); - fdui->scatter_plot2 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,600,220,160,190,"Scatter Plot"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_GREEN); - fl_end_form(); - - fdui->chbch_scope->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.fd b/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.fd deleted file mode 100644 index f20fef5f43cd42f8f97fcbdda97a79d9e8d3e9ed..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.fd +++ /dev/null @@ -1,160 +0,0 @@ -Magic: 13000 - -Internal Form Definition File - (do not change) - -Number of forms: 1 -Unit of measure: FL_COORD_PIXEL - -=============== FORM =============== -Name: chbch_scope -Width: 830 -Height: 650 -Number of Objects: 8 - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 0 0 830 650 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 20 20 280 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Time-Domain Channel (Real Component) -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_re -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 600 20 160 190 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Scatter Plot -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: scatter_plot -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 20 420 770 180 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Demodulator Output -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: demod_out -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 20 140 570 90 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Frequency Bin Response -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_f -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 310 20 280 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Time-Domain Channel (Imaginaryl Component) -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_im -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 20 240 570 170 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_CYAN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Decoder Input -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: decoder_input -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 600 220 160 190 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Scatter Plot -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: scatter_plot2 -callback: -argument: - -============================== -create_the_forms diff --git a/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.h b/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.h deleted file mode 100644 index d75b433224f7fffd80ce39123ac2661ceef0acfd..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/chbch_scope.h +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/** Header file generated with fdesign on Wed Nov 12 16:15:50 2008.**/ - -#ifndef FD_chbch_scope_h_ -#define FD_chbch_scope_h_ - -/** Callbacks, globals and object handlers **/ - - -/**** Forms and Objects ****/ -typedef struct { - FL_FORM *chbch_scope; - void *vdata; - char *cdata; - long ldata; - FL_OBJECT *channel_t_re; - FL_OBJECT *scatter_plot; - FL_OBJECT *demod_out; - FL_OBJECT *channel_f; - FL_OBJECT *channel_t_im; - FL_OBJECT *decoder_input; - FL_OBJECT *scatter_plot2; -} FD_chbch_scope; - -extern FD_chbch_scope * create_form_chbch_scope(void); - -#endif /* FD_chbch_scope_h_ */ diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte.c b/openair1/USERSPACE_TOOLS/SCOPE/lte.c deleted file mode 100644 index b497423f9196645ab2b8229279034372f66d70ca..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte.c +++ /dev/null @@ -1,479 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <pthread.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -//#include <sys/user.h> -//#include <errno.h> -#include <math.h> -#include <signal.h> -#include <strings.h> -#include "forms.h" -#include "lte_scope.h" - -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#include "ARCH/COMMON/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -//#include "PHY/CONFIG/vars.h" -//#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - - -FD_lte_scope *form; - -LTE_DL_FRAME_PARMS *frame_parms; -PHY_VARS_UE *PHY_vars_UE; - -//short channel[2048]; -//short channel_f[2048]; -//char demod_data[2048]; - -short *channel[8],*channel_f[8],*rx_sig[8],**rx_sig_ptr; -short *rx_sig_f[8],**rx_sig_f_ptr; -int *sync_corr; -char *pbch_llr; -short *pbch_comp, *pdcch_comp; -short *dlsch_llr,*dlsch_comp; - -int length,offset; -float avg=1; -int sach_flag; - -unsigned char nb_ant_tx, nb_ant_rx; - - -void lte_scope_idle_callback(void) -{ - - int i,j,ind,k,s; - - float Re,Im; - float mag_sig[NB_ANTENNAS_RX*NB_ANTENNAS_TX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT], - sig_time[NB_ANTENNAS_RX*NB_ANTENNAS_TX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT], - sig2[FRAME_LENGTH_COMPLEX_SAMPLES], - time2[FRAME_LENGTH_COMPLEX_SAMPLES], - I[25*12*12], Q[25*12*12], - //llr[8*(3*8*6144+12)], - //llr_time[8*(3*8*6144+12)]; - llr[25*12*4*7], - llr_time[25*12*4*7]; - - /* - mag_h[NB_ANTENNAS_RX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - mag_sig2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_re[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_im[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_re2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8], - scat_sig_im2[NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT*8]; - */ - float cum_avg; - - // Channel frequency response - cum_avg = 0; - ind = 0; - - for (j=0; j<4; j++) { - for (i=0; i<nb_ant_rx; i++) { - //for (j=0; j<1; j++) { - //for (i=0;i<1;i++) { - - //for (k=0;k<frame_parms->symbols_per_tti*NUMBER_OF_OFDM_CARRIERS;k++){ - for (k=0; k<NUMBER_OF_OFDM_CARRIERS; k++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_f[(j<<1)+i][2*k]); - Im = (float)(channel_f[(j<<1)+i][2*k+1]); - //mag_sig[ind] = (short) rand(); - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += (short)sqrt((double)Re*Re + (double)Im*Im) ; - ind++; - } - - // ind+=NUMBER_OF_OFDM_CARRIERS/4; // spacing for visualization - } - } - - avg = cum_avg/NUMBER_OF_USEFUL_CARRIERS; - - //fl_set_xyplot_ybounds(form->channel_f,30,70); - fl_set_xyplot_data(form->channel_f,sig_time,mag_sig,ind,"","",""); - - // channel_t_re = sync_corr - for (i=0; i<FRAME_LENGTH_COMPLEX_SAMPLES; i++) { - sig2[i] = (float) (sync_corr[i]); - time2[i] = (float) i; - } - - //fl_set_xyplot_ybounds(form->channel_t_im,10,90); - fl_set_xyplot_data(form->channel_t_im,time2,sig2,FRAME_LENGTH_COMPLEX_SAMPLES,"","",""); - - /* - // channel time resonse - cum_avg = 0; - ind = 0; - for (k=0;k<1;k++){ - for (j=0;j<1;j++) { - - for (i=0;i<frame_parms->ofdm_symbol_size;i++){ - sig_time[ind] = (float)ind; - Re = (float)(channel[k+2*j][2*i]); - Im = (float)(channel[k+2*j][2*i+1]); - //mag_sig[ind] = (short) rand(); - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += (short)sqrt((double)Re*Re + (double)Im*Im) ; - ind++; - } - } - } - - //fl_set_xyplot_ybounds(form->channel_t_im,10,90); - fl_set_xyplot_data(form->channel_t_im,sig_time,mag_sig,ind,"","",""); - */ - - // channel_t_re = rx_sig_f[0] - for (i=0; i<FRAME_LENGTH_COMPLEX_SAMPLES; i++) { - //for (i=0; i<NUMBER_OF_OFDM_CARRIERS*frame_parms->symbols_per_tti/2; i++) { - sig2[i] = 10*log10(1.0+(double) ((rx_sig[0][2*i])*(rx_sig[0][2*i])+(rx_sig[0][2*i+1])*(rx_sig[0][2*i+1]))); - time2[i] = (float) i; - } - - //fl_set_xyplot_ybounds(form->channel_t_re,10,90); - //fl_set_xyplot_data(form->channel_t_re,&time2[512*12*9],&sig2[512*12*9],512*12,"","",""); - fl_set_xyplot_data(form->channel_t_re,time2,sig2,FRAME_LENGTH_COMPLEX_SAMPLES,"","",""); - - - // channel_t_im = rx_sig[1] - if (nb_ant_rx>1) { - for (i=0; i<FRAME_LENGTH_COMPLEX_SAMPLES; i++) { - //for (i=0; i<NUMBER_OF_OFDM_CARRIERS*frame_parms->symbols_per_tti/2; i++) { - sig2[i] = 10*log10(1.0+(double) ((rx_sig[1][2*i])*(rx_sig[1][2*i])+(rx_sig[1][2*i+1])*(rx_sig[1][2*i+1]))); - time2[i] = (float) i; - } - - //fl_set_xyplot_ybounds(form->channel_t_im,0,100); - //fl_set_xyplot_data(form->channel_t_im,&time2[512*12*9],&sig2[512*12*9],512*12,"","",""); - fl_set_xyplot_data(form->channel_t_im,time2,sig2,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,"","",""); - } - - // PBCH LLR - j=0; - - for(i=0; i<1920; i++) { - llr[j] = (float) pbch_llr[i]; - llr_time[j] = (float) j; - /* - if (i==63) - i=127; - else if (i==191) - i=319; - */ - j++; - } - - fl_set_xyplot_data(form->decoder_input,llr_time,llr,1920,"","",""); - //fl_set_xyplot_ybounds(form->decoder_input,-100,100); - - // PBCH I/Q - j=0; - - for(i=0; i<12*12; i++) { - I[j] = pbch_comp[2*i]; - Q[j] = pbch_comp[2*i+1]; - j++; - /* - if (i==47) - i=96; - else if (i==191) - i=239; - */ - } - - fl_set_xyplot_data(form->scatter_plot,I,Q,12*12,"","",""); - //fl_set_xyplot_xbounds(form->scatter_plot,-100,100); - //fl_set_xyplot_ybounds(form->scatter_plot,-100,100); - - // PDCCH I/Q - j=0; - - for(i=0; i<12*25*3; i++) { - I[j] = pdcch_comp[2*i]; - Q[j] = pdcch_comp[2*i+1]; - j++; - /* - if (i==47) - i=96; - else if (i==191) - i=239; - */ - } - - fl_set_xyplot_data(form->scatter_plot1,I,Q,12*25*3,"","",""); - //fl_set_xyplot_xbounds(form->scatter_plot,-100,100); - //fl_set_xyplot_ybounds(form->scatter_plot,-100,100); - - // DLSCH LLR - for(i=0; i<12*12*7*2; i++) { - llr[i] = (float) dlsch_llr[i]; - llr_time[i] = (float) i; - } - - fl_set_xyplot_data(form->demod_out,llr_time,llr,12*12*7*2,"","",""); - // fl_set_xyplot_data(form->demod_out,time2,llr,25*12*4,"","",""); - fl_set_xyplot_ybounds(form->demod_out,-500,500); - - // DLSCH I/Q - j=0; - - for (s=2; s<12; s++) { - for(i=0; i<12*12; i++) { - I[j] = dlsch_comp[(2*25*12*s)+2*i]; - Q[j] = dlsch_comp[(2*25*12*s)+2*i+1]; - j++; - } - - if (s==2) - s=3; - else if (s==5) - s=6; - else if (s==8) - s=9; - } - - fl_set_xyplot_data(form->scatter_plot2,I,Q,j,"","",""); - //fl_set_xyplot_xbounds(form->scatter_plot2,-100,100); - //fl_set_xyplot_ybounds(form->scatter_plot2,-100,100); - - usleep(500000); -} -//----------------------------------------------------------------------------- -do_scope() -{ - - //----------------------------------------------------------------------------- - char ch; - - fl_set_idle_callback(lte_scope_idle_callback, NULL); - fl_do_forms() ; /* SIGSCOPE */ - - - -} - -//----------------------------------------------------------------------------- -int main(int argc, char *argv[]) -{ - //----------------------------------------------------------------------------- - - int openair_fd,i,j; - unsigned int mem_base; - unsigned int first_symbol; - char title[20]; - - LTE_UE_DLSCH *lte_ue_dlsch; - LTE_UE_PDCCH *lte_ue_pdcch; - LTE_UE_PBCH *lte_ue_pbch; - unsigned int bigphys_top; - - //PHY_config = malloc(sizeof(PHY_CONFIG)); - //PHY_vars = malloc(sizeof(PHY_VARS)); - - frame_parms = malloc(sizeof(LTE_DL_FRAME_PARMS)); - PHY_vars_UE = malloc(sizeof(PHY_VARS_UE)); - - printf("Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDONLY)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - printf("Getting PHY_config ...\n"); - ioctl(openair_fd,openair_GET_CONFIG,frame_parms); - dump_frame_parms(frame_parms); - - printf("Getting PHY_vars ...\n"); - ioctl(openair_fd,openair_GET_VARS,PHY_vars_UE); - - if (PHY_vars_UE->lte_ue_common_vars.txdataF == NULL) { - printf("Problem getting PHY_vars. Is UE configured?\n"); - exit(-1); - } - - printf("Getting BIGPHYS_top ...\n"); - ioctl(openair_fd,openair_GET_BIGPHYSTOP,(void *)&bigphys_top); - - printf("Bigphys_top = %p\n",bigphys_top); - printf("TX_DMA_BUFFER = %p\n",PHY_vars_UE->lte_ue_common_vars.txdataF); - printf("RX_DMA_BUFFER = %p\n",PHY_vars_UE->lte_ue_common_vars.rxdata); - printf("PHY_vars->lte_ue_common_vars.dl_ch_estimates[0] = %p\n",PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[0]); - printf("PHY_vars->lte_ue_common_vars.sync_corr = %p\n",PHY_vars_UE->lte_ue_common_vars.sync_corr); - printf("PHY_vars->lte_ue_pbch_vars[0] = %p\n",PHY_vars_UE->lte_ue_pbch_vars[0]); - printf("PHY_vars->lte_ue_pdcch_vars[0] = %p\n",PHY_vars_UE->lte_ue_pdcch_vars[0]); - printf("PHY_vars->lte_ue_dlsch_vars[0] = %p\n",PHY_vars_UE->lte_ue_dlsch_vars[0]); - - printf("NUMBER_OF_OFDM_CARRIERS = %d\n",NUMBER_OF_OFDM_CARRIERS); - - nb_ant_tx = PHY_vars_UE->lte_frame_parms.nb_antennas_tx; - nb_ant_rx = PHY_vars_UE->lte_frame_parms.nb_antennas_rx; - printf("(TX, RX) ANTENNAS = %d, %d\n",nb_ant_tx,nb_ant_rx); - - mem_base = (unsigned int) mmap(0, - BIGPHYS_NUMPAGES*4096, - PROT_READ, - MAP_PRIVATE, - openair_fd, - 0); - - if (mem_base != -1) - msg("MEM base= %x\n",mem_base); - else - msg("Could not map physical memory\n"); - - // txdata0 = (int *)(mem_base + PHY_vars_UE->lte_ue_common_vars.txdataF) - - for (i=0; i<nb_ant_rx; i++) { - for (j=0; j<4; j++) { - - channel_f[(j<<1)+i] = (short*)(mem_base + - (unsigned int)PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[0] + - 8*sizeof(int*) + - (j+i*4)*(frame_parms->symbols_per_tti*sizeof(int)*frame_parms->ofdm_symbol_size) - - bigphys_top); - - channel[(j<<1)+i] = (short*)(mem_base + - (unsigned int)PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates_time + - 8*sizeof(int*) + - (j+i*4)*(frame_parms->symbols_per_tti*sizeof(int)*frame_parms->ofdm_symbol_size) - - bigphys_top); - } - - // fix this for visualizing more than 1 antenna!!! - rx_sig_ptr = (short **)(mem_base + - (unsigned int)PHY_vars_UE->lte_ue_common_vars.rxdata - - bigphys_top); - rx_sig[i] = (short *)(mem_base + - (unsigned int)rx_sig_ptr[i] - - bigphys_top); - - rx_sig_f_ptr = (short **)(mem_base + - (unsigned int)PHY_vars_UE->lte_ue_common_vars.rxdataF - - bigphys_top); - rx_sig_f[i] = (short *)(mem_base + - (unsigned int)rx_sig_f_ptr[i] - - bigphys_top); - } - - sync_corr = (int*)(mem_base + - (unsigned int)PHY_vars_UE->lte_ue_common_vars.sync_corr - - bigphys_top); - printf("sync_corr = %p\n", sync_corr); - - // only if UE - lte_ue_pbch = (LTE_UE_PBCH *) (mem_base + - (unsigned int)PHY_vars_UE->lte_ue_pbch_vars[0] - - bigphys_top); - - printf("lte_ue_pbch (kernel) = %p\n",PHY_vars_UE->lte_ue_pbch_vars[0]); - printf("lte_ue_pbch (local)= %p\n",lte_ue_pbch); - - pbch_comp = (short*)(mem_base + - (unsigned int)lte_ue_pbch->rxdataF_comp + - 8*sizeof(int*) + - 8*sizeof(short*) -// because there is dl_ch_estimates_ext allocated in between - bigphys_top); - - - pbch_llr = (char*) (mem_base + - (unsigned int)lte_ue_pbch->llr - - bigphys_top); - - printf("pbch_comp = %p\n",pbch_comp); - printf("pbch_llr= %p\n",pbch_llr); - - lte_ue_pdcch = (LTE_UE_PDCCH *) (mem_base + - (unsigned int)PHY_vars_UE->lte_ue_pdcch_vars[0] - - bigphys_top); - - printf("lte_ue_pdcch (kernel) = %p\n",PHY_vars_UE->lte_ue_pdcch_vars[0]); - printf("lte_ue_pdcch (local)= %p\n",lte_ue_pdcch); - - pdcch_comp = (short*)(mem_base + - (unsigned int)lte_ue_pdcch->rxdataF_comp + - 8*sizeof(int*) - - bigphys_top); - - printf("pdcch_comp = %p\n",pdcch_comp); - - - lte_ue_dlsch = (LTE_UE_DLSCH *) (mem_base + - (unsigned int)PHY_vars_UE->lte_ue_dlsch_vars[0] - - bigphys_top); - - printf("lte_ue_dlsch (kernel)= %p\n",PHY_vars_UE->lte_ue_dlsch_vars[0]); - printf("lte_ue_dlsch (local) = %p\n",lte_ue_dlsch); - - dlsch_comp = (short*)(mem_base + - (unsigned int)lte_ue_dlsch->rxdataF_comp + - 8*sizeof(int*) - - bigphys_top); - - dlsch_llr = (short*) (mem_base + - (unsigned int)lte_ue_dlsch->llr[0] - - bigphys_top); - - printf("dlsch_comp = %p\n",dlsch_comp); - printf("dlsch_llr = %p\n",dlsch_llr); - - sprintf(title, "LTE SCOPE"), - - fl_initialize(&argc, argv, title, 0, 0); /* SIGSCOPE */ - form = create_form_lte_scope(); /* SIGSCOPE */ - fl_show_form(form->lte_scope,FL_PLACE_HOTSPOT,FL_FULLBORDER,title); /* SIGSCOPE */ - - do_scope(); - sleep(5); - close(openair_fd); - return(0); -} diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.c b/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.c deleted file mode 100644 index 6042e97bc2f55a250f98eacf5c528cc1a95864c5..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.c +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Form definition file generated by fdesign */ - -#include <stdlib.h> -#include "lte_scope.h" - - -/*************************************** - ***************************************/ - -FD_lte_scope * -create_form_lte_scope( void ) -{ - FL_OBJECT *obj; - FD_lte_scope *fdui = fl_malloc( sizeof *fdui ); - - fdui->vdata = fdui->cdata = NULL; - fdui->ldata = 0; - - fdui->lte_scope = fl_bgn_form( FL_NO_BOX, 780, 723 ); - - obj = fl_add_box( FL_ROUNDED_BOX, 0, 0, 780, 723, "" ); - fl_set_object_color( obj, FL_BLACK, FL_BLUE ); - - fdui->channel_t_re = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 20, 280, 100, "Received Signal (Time-Domain, dB)" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_BLUE ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->scatter_plot = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 600, 230, 160, 190, "PBCH Scatter Plot" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_GREEN ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->channel_f = obj = fl_add_xyplot( FL_IMPULSE_XYPLOT, 20, 140, 570, 90, "Frequency Domain Channel Estimate" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_RED ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->channel_t_im = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 310, 20, 280, 100, "Time-Domain Channel Estimate" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_BLUE ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->decoder_input = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 20, 250, 570, 130, "PBCH Decoder Input" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_GREEN ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->scatter_plot2 = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 600, 440, 160, 190, "PDSCH/PUSCH Scatter Plot" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_YELLOW ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->scatter_plot1 = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 600, 20, 160, 190, "PDCCH Scatter Plot" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_CYAN ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->ia_receiver_button = obj = fl_add_button( FL_PUSH_BUTTON, 620, 660, 130, 40, "IA receiver OFF" ); - fl_set_object_lalign( obj, FL_ALIGN_CENTER ); - fl_set_object_color( obj, FL_RED, FL_BLACK); - // fl_set_object_callback( obj, ia_receiver_on_off, 0 ); - - fdui->demod_out = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 20, 400, 570, 140, "PDSCH/PUSCH Decoder Input" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_YELLOW ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fdui->tput = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 560, 570, 140, "Throughput [kbits/s]" ); - fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); - fl_set_object_color( obj, FL_BLACK, FL_WHITE ); - fl_set_object_lcolor( obj, FL_WHITE ); - - fl_end_form( ); - - fdui->lte_scope->fdui = fdui; - - return fdui; -} diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.fd b/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.fd deleted file mode 100644 index 793a0b269f5c2c9db612eb3c0dc8210a0205acb1..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.fd +++ /dev/null @@ -1,178 +0,0 @@ -Magic: 13000 - -Internal Form Definition File - (do not change) - -Number of forms: 1 -Unit of measure: FL_COORD_PIXEL - -=============== FORM =============== -Name: lte_scope -Width: 780 -Height: 620 -Number of Objects: 9 - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 0 0 780 620 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 20 20 280 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Time-Domain Channel (Real Component) -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_re -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 600 20 160 190 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Scatter Plot -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: scatter_plot -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 20 420 570 180 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Demodulator Output -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: demod_out -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 20 140 570 90 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Frequency Bin Response -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_f -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 310 20 280 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Time-Domain Channel (Imaginaryl Component) -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_im -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 20 240 570 170 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_CYAN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Decoder Input -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: decoder_input -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 600 410 160 190 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Scatter Plot -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: scatter_plot2 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 600 215 160 190 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: Scatter Plot -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: scatter_plot1 -callback: -argument: - -============================== -create_the_forms diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.h b/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.h deleted file mode 100644 index dac29214c4c1d943e582719a8577b68f0986efcc..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope.h +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Header file generated by fdesign on Tue Nov 13 09:42:50 2012 */ - -#ifndef FD_lte_scope_h_ -#define FD_lte_scope_h_ - -#include <forms.h> - -extern void ia_receiver_on_off( FL_OBJECT *, long ); - -/* Forms and Objects */ - -typedef struct { - FL_FORM * lte_scope; - void * vdata; - char * cdata; - long ldata; - FL_OBJECT * channel_t_re; - FL_OBJECT * scatter_plot; - FL_OBJECT * channel_f; - FL_OBJECT * channel_t_im; - FL_OBJECT * decoder_input; - FL_OBJECT * scatter_plot2; - FL_OBJECT * scatter_plot1; - FL_OBJECT * ia_receiver_button; - FL_OBJECT * demod_out; - FL_OBJECT * tput; -} FD_lte_scope; - -extern FD_lte_scope * create_form_lte_scope( void ); - -#endif /* FD_lte_scope_h_ */ diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.c b/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.c deleted file mode 100755 index e39754b811e2cc4defdc07c0b9dad81c72a928e7..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.c +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Form definition file generated with fdesign. */ - -#include "forms.h" -#include <stdlib.h> -#include "lte_scope_ul.h" - -FD_lte_scope *create_form_lte_scope(void) -{ - FL_OBJECT *obj; - FD_lte_scope *fdui = (FD_lte_scope *) fl_calloc(1, sizeof(*fdui)); - - fdui->lte_scope = fl_bgn_form(FL_NO_BOX, 830, 650); - obj = fl_add_box(FL_ROUNDED_BOX,0,0,830,650,""); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fdui->fer = obj = fl_add_text(FL_NORMAL_TEXT,180,570,190,50,"FER ="); - fl_set_object_color(obj,FL_BLACK,FL_LEFT_BCOL); - fl_set_object_lcolor(obj,FL_WHITE); - fl_set_object_lsize(obj,FL_MEDIUM_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fdui->channel_t_re = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,30,20,370,100,"RX Signal Antenna 0"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fl_set_object_lcolor(obj,FL_RED); - fdui->demod_out = obj = fl_add_xyplot(FL_POINTS_XYPLOT,30,370,600,170,"Demodulator Output"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_YELLOW); - fl_set_object_lcolor(obj,FL_YELLOW); - fdui->channel_drs_time = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,30,260,370,90,"DRS Time Response"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fl_set_object_lcolor(obj,FL_BLUE); - fdui->channel_t_im = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,430,20,370,100,"RX Signal Antenna 0"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fl_set_object_lcolor(obj,FL_RED); - fdui->scatter_plot2 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,640,370,160,170,"Scatter Plot"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_YELLOW); - fl_set_object_lcolor(obj,FL_YELLOW); - fdui->channel_srs_time = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,30,140,370,100,"SRS Time Response"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_GREEN); - fl_set_object_lcolor(obj,FL_GREEN); - fdui->channel_srs = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,430,140,370,100,"SRS Frequency Response"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_GREEN); - fl_set_object_lcolor(obj,FL_GREEN); - fdui->channel_drs = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,430,260,370,90,"DRS Frequency Response"); - fl_set_object_boxtype(obj,FL_EMBOSSED_BOX); - fl_set_object_color(obj,FL_BLACK,FL_BLUE); - fl_set_object_lcolor(obj,FL_BLUE); - fdui->rssi = obj = fl_add_text(FL_NORMAL_TEXT,460,570,200,50,"RSSI ="); - fl_set_object_color(obj,FL_BLACK,FL_MCOL); - fl_set_object_lcolor(obj,FL_WHITE); - fl_set_object_lsize(obj,FL_MEDIUM_SIZE); - fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); - fl_end_form(); - - fdui->lte_scope->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.fd b/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.fd deleted file mode 100755 index 8dc0dc159e4880e6b0d6184eb08d4b60fedb59e3..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.fd +++ /dev/null @@ -1,214 +0,0 @@ -Magic: 13000 - -Internal Form Definition File - (do not change) - -Number of forms: 1 -Unit of measure: FL_COORD_PIXEL - -=============== FORM =============== -Name: lte_scope -Width: 830 -Height: 650 -Number of Objects: 11 - --------------------- -class: FL_BOX -type: ROUNDED_BOX -box: 0 0 830 650 -boxtype: FL_ROUNDED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 180 570 190 50 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_LEFT_BCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_MEDIUM_SIZE -lcol: FL_WHITE -label: FER = -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: fer -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 30 20 370 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RED -label: RX Signal Antenna 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_re -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 30 370 600 170 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_YELLOW -label: Demodulator Output -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: demod_out -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 30 260 370 90 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLUE -label: DRS Time Response -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_drs_time -callback: -argument: - --------------------- -class: FL_XYPLOT -type: NORMAL_XYPLOT -box: 430 20 370 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_RED -label: RX Signal Antenna 0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_t_im -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 640 370 160 170 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_YELLOW -label: Scatter Plot -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: scatter_plot2 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 30 140 370 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_GREEN -label: SRS Time Response -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_srs_time -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 430 140 370 100 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_GREEN -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_GREEN -label: SRS Frequency Response -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_srs -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 430 260 370 90 -boxtype: FL_EMBOSSED_BOX -colors: FL_BLACK FL_BLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLUE -label: DRS Frequency Response -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: channel_drs -callback: -argument: - --------------------- -class: FL_TEXT -type: NORMAL_TEXT -box: 460 570 200 50 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_MCOL -alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE -style: FL_NORMAL_STYLE -size: FL_MEDIUM_SIZE -lcol: FL_WHITE -label: RSSI = -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: rssi -callback: -argument: - -============================== -create_the_forms diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.h b/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.h deleted file mode 100755 index 815557ccf0e3e5ce4ede8feb660769e718253298..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte_scope_ul.h +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/** Header file generated with fdesign on Fri Aug 12 18:02:36 2011.**/ - -#ifndef FD_lte_scope_h_ -#define FD_lte_scope_h_ - -/** Callbacks, globals and object handlers **/ - - -/**** Forms and Objects ****/ -typedef struct { - FL_FORM *lte_scope; - void *vdata; - char *cdata; - long ldata; - FL_OBJECT *fer; - FL_OBJECT *channel_t_re; - FL_OBJECT *demod_out; - FL_OBJECT *channel_drs_time; - FL_OBJECT *channel_t_im; - FL_OBJECT *scatter_plot2; - FL_OBJECT *channel_srs_time; - FL_OBJECT *channel_srs; - FL_OBJECT *channel_drs; - FL_OBJECT *rssi; -} FD_lte_scope; - -extern FD_lte_scope * create_form_lte_scope(void); - -#endif /* FD_lte_scope_h_ */ diff --git a/openair1/USERSPACE_TOOLS/SCOPE/lte_ul.c b/openair1/USERSPACE_TOOLS/SCOPE/lte_ul.c deleted file mode 100644 index b0fda175c70a744d51cce07ac78e37568e733f19..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/lte_ul.c +++ /dev/null @@ -1,462 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <pthread.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -//#include <sys/user.h> -//#include <errno.h> -#include <math.h> -#include <signal.h> -#include <strings.h> -#include "forms.h" -#include "lte_scope_ul.h" - -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#include "ARCH/COMMON/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -//#include "PHY/CONFIG/vars.h" -//#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - - -FD_lte_scope *form; - -LTE_DL_FRAME_PARMS *frame_parms; -PHY_VARS_eNB *PHY_vars_eNB; -LTE_eNB_UE_stats *lte_eNb_ue_stats; - -//short channel[2048]; -//short channel_f[2048]; -//char demod_data[2048]; - -short *channel_drs[4],*channel_drs_time[4],*channel_srs[4],*channel_srs_time[4],*rx_sig[4],*ulsch_ext[2],*ulsch_comp,*ulsch_llr,**rx_sig_ptr; -unsigned int* sync_corr; - -int length,offset; -float avg=1; - -unsigned char nb_ant_tx, nb_ant_rx; - - -void lte_scope_idle_callback(void) -{ - - int i,j,ind,k,s; - static int t=0; - - float Re,Im; - float mag_sig[NB_ANTENNAS_RX*NB_ANTENNAS_TX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT], - sig_time[NB_ANTENNAS_RX*NB_ANTENNAS_TX*NUMBER_OF_OFDM_CARRIERS*NUMBER_OF_OFDM_SYMBOLS_PER_SLOT], - sig2[FRAME_LENGTH_COMPLEX_SAMPLES], - time2[FRAME_LENGTH_COMPLEX_SAMPLES], - I[25*12*12], Q[25*12*12], - //llr[8*(3*8*6144+12)], - //llr_time[8*(3*8*6144+12)]; - llr[25*12*4*7], - llr_time[25*12*4*7]; - - float cum_avg; - - char text[64]; - - /* - // channel_t_re = sync_corr - for (i=0; i<640*3; i++) { - sig2[i] = (float)(10.0*log10(1.0 + sync_corr[i])); - //sig2[i] = (float)(sync_corr[i]); - time2[i] = (float) i; - } - - fl_set_xyplot_ybounds(form->channel_t_re,50,100); - fl_set_xyplot_data(form->channel_t_re,time2,sig2,640*3,"","",""); - */ - - // channel_t_re = rx_sig[0] - for (i=0; i<FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX; i++) { - sig2[i] = (float) (10.0*log10((double)rx_sig[0][2*i]*(double)rx_sig[0][2*i] + - (double)rx_sig[0][1+(2*i)]*(double)rx_sig[0][1+(2*i)])); - time2[i] = (float) i; - } - - fl_set_xyplot_ybounds(form->channel_t_re,30,80); - fl_set_xyplot_data(form->channel_t_re,time2,sig2,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,"","",""); - - // channel_t_im = rx_sig[1] - for (i=0; i<FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX; i++) { - sig2[i] = (float) (10.0*log10((double)rx_sig[1][2*i]*(double)rx_sig[1][2*i] + - (double)rx_sig[1][1+(2*i)]*(double)rx_sig[1][1+(2*i)])); - time2[i] = (float) i; - } - - fl_set_xyplot_ybounds(form->channel_t_im,30,80); - fl_set_xyplot_data(form->channel_t_im,time2,sig2,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,"","",""); - - // channel_srs - cum_avg = 0; - ind = 0; - - for (k=0; k<2; k++) { - //for (j=0;j<2;j++) { - j=0; - { - - s = frame_parms->first_carrier_offset; - - for (i=0; i<frame_parms->N_RB_UL*12; i++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_srs[k+2*j][2*s]); - Im = (float)(channel_srs[k+2*j][2*s+1]); - //mag_sig[ind] = (short) rand(); - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += (short)sqrt((double)Re*Re + (double)Im*Im) ; - ind++; - s++; - - if (s>= frame_parms->ofdm_symbol_size) - s=1; - } - - //ind+=16; // spacing for visualization - } - } - - avg = cum_avg/NUMBER_OF_USEFUL_CARRIERS; - - //fl_set_xyplot_ybounds(form->channel_srs,30,90); - fl_set_xyplot_data(form->channel_srs,sig_time,mag_sig,ind,"","",""); - - // channel_srs_time - cum_avg = 0; - ind = 0; - - for (k=0; k<2; k++) { - //for (j=0;j<1;j++) { - j=0; - { - - for (i=0; i<frame_parms->ofdm_symbol_size/2; i++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_srs_time[k+2*j][4*i]); - Im = (float)(channel_srs_time[k+2*j][4*i+1]); - //mag_sig[ind] = (short) rand(); - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += (short)sqrt((double)Re*Re + (double)Im*Im) ; - ind++; - } - - //ind+=16; // spacing for visualization - } - } - - avg = cum_avg/NUMBER_OF_USEFUL_CARRIERS; - - //fl_set_xyplot_ybounds(form->channel_srs_time,30,90); - fl_set_xyplot_data(form->channel_srs_time,sig_time,mag_sig,ind,"","",""); - - - // channel_drs = drs - cum_avg = 0; - ind = 0; - //for (k=0;k<1;k++){ - // for (j=0;j<1;j++) { - - for (i=0; i<frame_parms->N_RB_UL*12*frame_parms->symbols_per_tti; i++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_drs[1][2*i]); - Im = (float)(channel_drs[1][2*i+1]); - mag_sig[ind] = (short)10*log10(1.0+((double)Re*Re + (double)Im*Im)); - cum_avg += sqrt((double)Re*Re + (double)Im*Im) ; - ind++; - } - - // } - // } - - avg = cum_avg/NUMBER_OF_USEFUL_CARRIERS; - - //fl_set_xyplot_ybounds(form->channel_f,30,70); - fl_set_xyplot_data(form->channel_drs,sig_time,mag_sig,ind,"","",""); - //fl_set_xyplot_data(form->decoder_input,sig_time,mag_sig,ind,"","",""); - - // channel_drs_time = drs_time - cum_avg = 0; - ind = 0; - - for (k=0; k<1; k++) { - for (j=0; j<1; j++) { - - for (i=0; i<frame_parms->ofdm_symbol_size; i++) { - sig_time[ind] = (float)ind; - Re = (float)(channel_drs_time[k+2*j][4*i]); - Im = (float)(channel_drs_time[k+2*j][4*i+1]); - mag_sig[ind] = (double)(Re*Re + Im*Im); - ind++; - } - } - } - - //fl_set_xyplot_ybounds(form->channel_f,30,70); - fl_set_xyplot_data(form->channel_drs_time,sig_time,mag_sig,ind,"","",""); - - // demod_out = ulsch_llr - for(i=0; i<12*12*12; i++) { - llr[i] = (float) ulsch_llr[i]; - llr_time[i] = (float) i; - } - - fl_set_xyplot_data(form->demod_out,llr_time,llr,i,"","",""); - // fl_set_xyplot_data(form->demod_out,time2,llr,25*12*4,"","",""); - //fl_set_xyplot_ybounds(form->demod_out,-400,400); - - // scatter_plot2 = ulsch_comp - for(i=0; i<12*12*12; i++) { - I[i] = ulsch_comp[2*i]; - Q[i] = ulsch_comp[2*i+1]; - } - - fl_set_xyplot_data(form->scatter_plot2,I,Q,i,"","",""); - //fl_set_xyplot_xbounds(form->scatter_plot2,-400,400); - //fl_set_xyplot_ybounds(form->scatter_plot2,-400,400); - - sprintf(text, "RSSI = (%d, %d) dB",lte_eNb_ue_stats->UL_rssi[0],lte_eNb_ue_stats->UL_rssi[0]); - //printf("%s\n",text); - fl_set_object_label(form->rssi,text); - //fl_redraw_object(form->rssi); - - sprintf(text, "FER = %d %%",lte_eNb_ue_stats->ulsch_round_fer [0][0]); - //printf("%s\n",text); - fl_set_object_label(form->fer,text); - //fl_redraw_form(form); - - usleep(500000); -} -//----------------------------------------------------------------------------- -void do_scope(void) -{ - - //----------------------------------------------------------------------------- - char ch; - - fl_set_idle_callback(lte_scope_idle_callback, NULL); - fl_do_forms() ; /* SIGSCOPE */ - - - -} - -//----------------------------------------------------------------------------- -int main(int argc, char *argv[]) -{ - //----------------------------------------------------------------------------- - - int openair_fd,i; - unsigned int mem_base; - char title[64]; - unsigned int bigphys_top; - LTE_eNB_ULSCH *lte_eNb_ulsch; - unsigned char eNb_id=0, UE_id=0; - - if (argc>1) { - eNb_id = atoi(argv[1]); - - if (eNb_id > 2) { - printf("eNb_id hast to be <= 2!\n"); - exit(-1); - } - } else { - eNb_id = 0; - } - - if (argc>2) { - UE_id = atoi(argv[2]); - - if (UE_id >1) { - printf("UE_id has to be <=1!\n"); - exit(-1); - } - } else { - UE_id = 0; - } - - //PHY_vars = malloc(sizeof(PHY_VARS)); - //PHY_config = malloc(sizeof(PHY_CONFIG)); - - frame_parms = malloc(sizeof(LTE_DL_FRAME_PARMS)); - PHY_vars_eNB = malloc(sizeof(PHY_VARS_eNB)); - - printf("Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDONLY)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - ioctl(openair_fd,openair_GET_CONFIG,frame_parms); - dump_frame_parms(frame_parms); - - printf("Getting PHY_vars ...\n"); - ioctl(openair_fd,openair_GET_VARS,PHY_vars_eNB); - - if (PHY_vars_eNB->lte_eNB_common_vars.txdataF == NULL) { - printf("Problem getting PHY_vars. Is UE configured?\n"); - exit(-1); - } - - printf("Getting BIGPHYS_top ...\n"); - ioctl(openair_fd,openair_GET_BIGPHYSTOP,(void *)&bigphys_top); - - printf("Bigphys_top = %p\n",bigphys_top); - printf("TX_DMA_BUFFER = %p\n",PHY_vars_eNB->lte_eNB_common_vars.txdataF); - printf("RX_DMA_BUFFER = %p\n",PHY_vars_eNB->lte_eNB_common_vars.rxdata); - printf("PHY_vars->lte_eNB_common_vars.sync_corr[%d] = %p\n",eNb_id,PHY_vars_eNB->lte_eNB_common_vars.sync_corr[eNb_id]); - printf("PHY_vars->lte_eNB_ulsch_vars[%d] = %p\n",UE_id,PHY_vars_eNB->lte_eNB_ulsch_vars[UE_id]); - printf("PHY_vars->lte_eNB_common_vars.srs_ch_estimates[%d] = %p\n",eNb_id,PHY_vars_eNB->lte_eNB_srs_vars[eNb_id].srs_ch_estimates); - - printf("sizeof(PHY_VARS_eNB) = %d\n",sizeof(PHY_VARS_eNB)); - - printf("NUMBER_OF_OFDM_CARRIERS = %d\n",NUMBER_OF_OFDM_CARRIERS); - - nb_ant_tx = PHY_vars_eNB->lte_frame_parms.nb_antennas_tx; - nb_ant_rx = PHY_vars_eNB->lte_frame_parms.nb_antennas_rx; - printf("(TX, RX) ANTENNAS = %d, %d\n",nb_ant_tx,nb_ant_rx); - - mem_base = (unsigned int) mmap(0, - BIGPHYS_NUMPAGES*4096, - PROT_READ, - MAP_PRIVATE, - openair_fd, - 0); - - if (mem_base != -1) - msg("MEM base= %x\n",mem_base); - else - msg("Could not map physical memory\n"); - - sync_corr = (unsigned int*) (mem_base + - (unsigned int)PHY_vars_eNB->lte_eNB_common_vars.sync_corr[eNb_id] - - bigphys_top); - - lte_eNb_ulsch = (LTE_eNB_ULSCH *) (mem_base + - (unsigned int)PHY_vars_eNB->lte_eNB_ulsch_vars[UE_id] - - bigphys_top); - - printf("lte_eNb_ulsch = %p\n",lte_eNb_ulsch); - - - lte_eNb_ue_stats = (LTE_eNB_UE_stats *) (mem_base + - (unsigned int)PHY_vars_eNB->eNB_UE_stats_ptr[UE_id] - - bigphys_top); - - - printf("lte_eNb_ue_stats= %p\n",lte_eNb_ue_stats); - - - - for (i=0; i<nb_ant_rx; i++) { - - channel_srs[i] = (short*)(mem_base + - (unsigned int)PHY_vars_eNB->lte_eNB_srs_vars[UE_id].srs_ch_estimates[eNb_id] + - nb_ant_rx*sizeof(int*) + - i*(sizeof(int)*frame_parms->ofdm_symbol_size) - - bigphys_top); - - channel_srs_time[i] = (short*)(mem_base + - (unsigned int)PHY_vars_eNB->lte_eNB_srs_vars[UE_id].srs_ch_estimates_time[eNb_id] + - nb_ant_rx*sizeof(int*) + - i*(sizeof(int)*frame_parms->ofdm_symbol_size) - - bigphys_top); - - channel_drs[i] = (short*)(mem_base + - (unsigned int)lte_eNb_ulsch->drs_ch_estimates[eNb_id] + - nb_ant_rx*sizeof(int*) + - i*(frame_parms->symbols_per_tti*sizeof(int)*frame_parms->N_RB_UL*12) - - bigphys_top); - - channel_drs_time[i] = (short*)(mem_base + - (unsigned int)lte_eNb_ulsch->drs_ch_estimates_time[eNb_id] + - nb_ant_rx*sizeof(int*) + - i*(2*sizeof(int)*frame_parms->ofdm_symbol_size) - - bigphys_top); - - ulsch_ext[i] = (short*)(mem_base + - (unsigned int)lte_eNb_ulsch->rxdataF_ext[eNb_id] + - nb_ant_rx*sizeof(int*) + - i*(frame_parms->symbols_per_tti*sizeof(int)*frame_parms->N_RB_UL*12) - - bigphys_top); - } - - rx_sig_ptr = (short **)(mem_base + - (unsigned int)PHY_vars_eNB->lte_eNB_common_vars.rxdata[eNb_id] - - bigphys_top); - - for (i=0; i<nb_ant_rx; i++) { - rx_sig[i] = (short *)(mem_base + - (unsigned int)rx_sig_ptr[i] - - bigphys_top); - } - - ulsch_comp = (short*)(mem_base + - (unsigned int)lte_eNb_ulsch->rxdataF_comp[eNb_id] + - nb_ant_rx*sizeof(int*) - - bigphys_top); - - - ulsch_llr = (short*)(mem_base + - (unsigned int)lte_eNb_ulsch->llr - - bigphys_top); - - sprintf(title, "LTE SCOPE eNB %d UE %d", eNb_id, UE_id), - - fl_initialize(&argc, argv, title, 0, 0); /* SIGSCOPE */ - form = create_form_lte_scope(); /* SIGSCOPE */ - fl_show_form(form->lte_scope,FL_PLACE_HOTSPOT,FL_FULLBORDER,title); /* SIGSCOPE */ - - do_scope(); - sleep(5); - close(openair_fd); - return(0); -} diff --git a/openair1/USERSPACE_TOOLS/SCOPE/sach.c b/openair1/USERSPACE_TOOLS/SCOPE/sach.c deleted file mode 100755 index fa58f183d9e9a3d3d1afa1e2b2aa8c289db813a6..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/sach.c +++ /dev/null @@ -1,403 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <pthread.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -//#include <sys/user.h> -//#include <errno.h> -#include <math.h> -#include <signal.h> -#include <strings.h> -#include "forms.h" -#include "sach_scope.h" - -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -#include "PHY/CONFIG/vars.h" -#include "MAC_INTERFACE/vars.h" -//#include "PHY/TOOLS/defs.h" - - -FD_sach_scope *form; - - -short *channel[4],*channel_f[4],*rx_sig[4],*rx_sig_f2[4],*rx_sig_f3[4]; - -unsigned char nb_tx_ant; - -unsigned int mem_base; - -void sach_scope_idle_callback(void) -{ - - int user_index,tchan_index,i; - - short *sacch_data,*sach_data; - float avg,sach_re[4096],sach_im[4096]; - float sacch_re[512],sacch_im[512]; - unsigned short nb_sacch_carriers,nb_sach_carriers; - - SACH_DIAGNOSTICS *sach_diag; - - - for (user_index=0; user_index<8; user_index++) { - - for (tchan_index=0; tchan_index<5; tchan_index++) { - - sach_diag = &PHY_vars->Sach_diagnostics[user_index][tchan_index]; - - if (sach_diag->active == 1) { - - avg = 0; - nb_sacch_carriers = (sach_diag->nb_sacch_carriers< 512) ? sach_diag->nb_sacch_carriers : 512; - nb_sach_carriers = (sach_diag->nb_sach_carriers < 4096) ? sach_diag->nb_sach_carriers : 4096; - - - sacch_data = (short *)(mem_base + (unsigned int)PHY_vars->Sach_diagnostics[user_index][tchan_index].sacch_demod_data-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - sach_data = (short *)(mem_base + (unsigned int)PHY_vars->Sach_diagnostics[user_index][tchan_index].sach_demod_data-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - - /* - printf("User_index %d, tchan_index %d (sacch %d,sach %d) (%p,%p) -> (%p,%p)\n",user_index,tchan_index,nb_sacch_carriers,nb_sach_carriers,PHY_vars->Sach_diagnostics[user_index][tchan_index].sacch_demod_data,PHY_vars->Sach_diagnostics[user_index][tchan_index].sach_demod_data,sacch_data,sach_data); - */ - for (i=0; i<nb_sacch_carriers>>1; i++) { - sacch_re[i] = (float)sacch_data[i<<2]; - sacch_im[i] = (float)sacch_data[(i<<2) + 1]; - // printf("sacch: i=%d : %d %d %d %d\n",i,sacch_data[i<<2],sacch_data[1+(i<<2)],sacch_data[2+(i<<2)],sacch_data[3+(i<<2)]); - avg += fabs(sacch_re[i])+fabs(sacch_im[i]); - } - - for (i=0; i<nb_sach_carriers>>1; i++) { - sach_re[i] = (float)sach_data[i<<2]; - sach_im[i] = (float)sach_data[(i<<2) + 1]; - // printf("sach : i=%d : %d %d %d %d\n",i,sach_data[i<<2],sach_data[1+(i<<2)],sach_data[2+(i<<2)],sach_data[3+(i<<2)]); - avg += fabs(sach_re[i])+fabs(sach_im[i]); - } - - avg/=(nb_sacch_carriers+nb_sach_carriers); - - for (i=0; i<nb_sacch_carriers>>1; i++) { - sacch_re[i] /= avg; - sacch_im[i] /= avg; - // printf("sacch: i=%d : %d %d %d %d\n",i,sacch_data[i<<2],sacch_data[1+(i<<2)],sacch_data[2+(i<<2)],sacch_data[3+(i<<2)]); - } - - for (i=0; i<nb_sach_carriers>>1; i++) { - sach_re[i] /= avg; - sach_im[i] /= avg; - // printf("sach : i=%d : %d %d %d %d\n",i,sach_data[i<<2],sach_data[1+(i<<2)],sach_data[2+(i<<2)],sach_data[3+(i<<2)]); - } - - // avg = 2048.0; - - avg = 2.0; - - if ((user_index == 0) && (tchan_index == 0)) { - fl_set_xyplot_xbounds(form->sacch00,-avg,avg); - fl_set_xyplot_ybounds(form->sacch00,-avg,avg); - fl_set_xyplot_xbounds(form->sach00,-avg,avg); - fl_set_xyplot_ybounds(form->sach00,-avg,avg); - - fl_set_xyplot_data(form->sacch00,sacch_re,sacch_im,nb_sacch_carriers>>1,"","",""); - fl_set_xyplot_data(form->sach00,sach_re,sach_im,nb_sach_carriers>>1,"","",""); - } - - if ((user_index == 0) && (tchan_index == 1)) { - fl_set_xyplot_xbounds(form->sacch01,-avg,avg); - fl_set_xyplot_ybounds(form->sacch01,-avg,avg); - fl_set_xyplot_xbounds(form->sach01,-avg,avg); - fl_set_xyplot_ybounds(form->sach01,-avg,avg); - fl_set_xyplot_data(form->sacch01,sacch_re,sacch_im,nb_sacch_carriers>>1,"","",""); - fl_set_xyplot_data(form->sach01,sach_re,sach_im,nb_sach_carriers>>1,"","",""); - - } - - if ((user_index == 0) && (tchan_index == 2)) { - fl_set_xyplot_xbounds(form->sacch02,-avg,avg); - fl_set_xyplot_ybounds(form->sacch02,-avg,avg); - fl_set_xyplot_xbounds(form->sach02,-avg,avg); - fl_set_xyplot_ybounds(form->sach02,-avg,avg); - - fl_set_xyplot_data(form->sacch02,sacch_re,sacch_im,nb_sacch_carriers>>1,"","",""); - fl_set_xyplot_data(form->sach02,sach_re,sach_im,nb_sach_carriers>>1,"","",""); - } - - if ((user_index == 0) && (tchan_index == 3)) { - fl_set_xyplot_data(form->sacch03,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach03,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 0) && (tchan_index == 4)) { - fl_set_xyplot_data(form->sacch04,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach04,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - - if ((user_index == 1) && (tchan_index == 0)) { - - fl_set_xyplot_xbounds(form->sacch10,-avg,avg); - fl_set_xyplot_ybounds(form->sacch10,-avg,avg); - fl_set_xyplot_xbounds(form->sach10,-avg,avg); - fl_set_xyplot_ybounds(form->sach10,-avg,avg); - - fl_set_xyplot_data(form->sacch10,sacch_re,sacch_im,nb_sacch_carriers>>1,"","",""); - fl_set_xyplot_data(form->sach10,sach_re,sach_im,nb_sach_carriers>>1,"","",""); - } - - if ((user_index == 1) && (tchan_index == 1)) { - fl_set_xyplot_xbounds(form->sacch11,-avg,avg); - fl_set_xyplot_ybounds(form->sacch11,-avg,avg); - fl_set_xyplot_xbounds(form->sach11,-avg,avg); - fl_set_xyplot_ybounds(form->sach11,-avg,avg); - fl_set_xyplot_data(form->sacch11,sacch_re,sacch_im,nb_sacch_carriers>>1,"","",""); - fl_set_xyplot_data(form->sach11,sach_re,sach_im,nb_sach_carriers>>1,"","",""); - } - - if ((user_index == 1) && (tchan_index == 2)) { - fl_set_xyplot_xbounds(form->sacch12,-avg,avg); - fl_set_xyplot_ybounds(form->sacch12,-avg,avg); - fl_set_xyplot_xbounds(form->sach12,-avg,avg); - fl_set_xyplot_ybounds(form->sach12,-avg,avg); - - fl_set_xyplot_data(form->sacch12,sacch_re,sacch_im,nb_sacch_carriers>>1,"","",""); - fl_set_xyplot_data(form->sach12,sach_re,sach_im,nb_sach_carriers>>1,"","",""); - } - - if ((user_index == 1) && (tchan_index == 3)) { - fl_set_xyplot_data(form->sacch13,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach13,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 1) && (tchan_index == 4)) { - fl_set_xyplot_data(form->sacch13,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach13,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 2) && (tchan_index == 0)) { - fl_set_xyplot_data(form->sacch20,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach20,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 2) && (tchan_index == 1)) { - fl_set_xyplot_data(form->sacch21,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach21,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 2) && (tchan_index == 2)) { - fl_set_xyplot_data(form->sacch22,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach22,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 2) && (tchan_index == 3)) { - fl_set_xyplot_data(form->sacch23,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach23,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 2) && (tchan_index == 4)) { - fl_set_xyplot_data(form->sacch24,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach24,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - - if ((user_index == 3) && (tchan_index == 0)) { - fl_set_xyplot_data(form->sacch30,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach30,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 3) && (tchan_index == 1)) { - fl_set_xyplot_data(form->sacch31,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach31,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 3) && (tchan_index == 2)) { - fl_set_xyplot_data(form->sacch32,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach32,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 3) && (tchan_index == 3)) { - fl_set_xyplot_data(form->sacch33,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach33,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - if ((user_index == 3) && (tchan_index == 4)) { - fl_set_xyplot_data(form->sacch33,sacch_re,sacch_im,nb_sacch_carriers,"","",""); - fl_set_xyplot_data(form->sach33,sach_re,sach_im,nb_sach_carriers,"","",""); - } - - } // active - - } // tchan loop - - } // user loop - - usleep(10000); - -} - -//----------------------------------------------------------------------------- -do_scope() -{ - - //----------------------------------------------------------------------------- - char ch; - - fl_set_idle_callback(sach_scope_idle_callback, NULL); - fl_do_forms() ; /* SIGSCOPE */ - - - -} - -//----------------------------------------------------------------------------- -int main(int argc, char *argv[]) -{ - //----------------------------------------------------------------------------- - - int openair_fd,i; - - unsigned int first_symbol; - char title[20]; - short *sach_data; - - if (argc<4) { - printf("Not enough arguments: sach_scope nb_tx_antennas sch_index \n"); - exit(-1); - } - - PHY_vars = malloc(sizeof(PHY_VARS)); - - PHY_config = malloc(sizeof(PHY_CONFIG)); - /* - if((config = fopen("./widens_config.cfg","r")) == NULL) // this can be configured - { - printf("[Main USER] The widens configuration file <widens_config.cfg> could not be found!"); - exit(0); - } - - if ((scenario= fopen("./widens_scenario.scn","r")) ==NULL) - { - printf("[Main USER] The widens scenario file <widens_scenario.scn> could not be found!"); - exit(0); - } - - printf("Opened configuration files\n"); - - reconfigure_MACPHY(scenario); - */ - - printf("Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDONLY)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - printf("Getting PHY_vars ...\n"); - - ioctl(openair_fd,openair_GET_VARS,PHY_vars); - - printf("Getting PHY_vars->tx_vars[0].TX_DMA_BUFFER=%p\n",PHY_vars->tx_vars[0].TX_DMA_BUFFER); - - printf("Getting PHY_config ...\n"); - - ioctl(openair_fd,openair_GET_CONFIG,PHY_config); - - printf("NUMBER_OF_OFDM_CARRIERS = %d\n",NUMBER_OF_OFDM_CARRIERS); - - - mem_base = mmap(0, - 4096*4096, - PROT_READ, - MAP_PRIVATE, - openair_fd, - 0); - - if (mem_base != -1) - msg("MEM base= %p: (%x,%x,%x,%x)\n",mem_base, - ((int*)mem_base)[0], - ((int*)mem_base)[1], - ((int*)mem_base)[2], - ((int*)mem_base)[3]); - else - msg("Could not map physical memory\n"); - - if (atoi(argv[1]) == 0) { // Clusterhead - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->sch_data[atoi(argv[3])].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel_f[%d]=%p (%x,%x,%x,%x)\n",i,channel_f[i],channel_f[i][0],channel_f[i][1],channel_f[i][2],channel_f[i][3]); - } - - sach_data = (short *)(mem_base + (unsigned int)PHY_vars->Sach_diagnostics[0][0].sach_demod_data-(unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("sach_data %p (%p)\n",PHY_vars->Sach_diagnostics[0][0].sach_demod_data,sach_data); - - printf("sach_data %p, (%x,%x,%x,%x)\n",sach_data,sach_data[0],sach_data[1],sach_data[2],sach_data[3]); - } else if (atoi(argv[1]) == 1) { // UE - - for (i=0; i<NB_ANTENNAS_RX; i++) { - channel_f[i] = (short*)(mem_base + (unsigned int)PHY_vars->chsch_data[atoi(argv[3])].channel_f[i] - (unsigned int)&PHY_vars->tx_vars[0].TX_DMA_BUFFER[0]); - printf("channel_f[%d]=%p\n",i,channel[i]); - } - - } else { - printf("Unknown node role %d\n",atoi(argv[1])); - close(openair_fd); - exit(-1); - - } - - nb_tx_ant = atoi(argv[2]); - - sprintf(title, "SACH SCOPE %d %d %d", atoi(argv[1]), atoi(argv[2]), atoi(argv[3])), - - fl_initialize(&argc, argv, title, 0, 0); /* SIGSCOPE */ - form = create_form_sach_scope(); /* SIGSCOPE */ - fl_show_form(form->sach_scope,FL_PLACE_HOTSPOT,FL_FULLBORDER,title); /* SIGSCOPE */ - - do_scope(); - sleep(5); - close(openair_fd); - return(0); -} diff --git a/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.c b/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.c deleted file mode 100644 index 726c2a1d18a42785067ceb846a59d511f9f00434..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.c +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/* Form definition file generated with fdesign. */ - -#include "forms.h" -#include <stdlib.h> -#include "sach_scope.h" - -FD_sach_scope *create_form_sach_scope(void) -{ - FL_OBJECT *obj; - FD_sach_scope *fdui = (FD_sach_scope *) fl_calloc(1, sizeof(*fdui)); - - fdui->sach_scope = fl_bgn_form(FL_NO_BOX, 1380, 590); - obj = fl_add_box(FL_UP_BOX,0,0,1380,590,""); - fdui->sacch00 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,110,20,90,90,"U0 : DCCH"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach00 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,190,20,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch01 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,280,20,90,90,"U0: DTCH0"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach01 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,360,20,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch02 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,450,20,90,90,"U0: DTCH1"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach02 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,530,20,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch03 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,620,20,90,90,"U0: DTCH2"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach03 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,700,20,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch04 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,790,20,90,90,"U0: DTCH3"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach04 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,870,20,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch10 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,110,150,90,90,"U1 : DCCH"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach10 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,190,150,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch11 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,280,150,90,90,"U1: DTCH0"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach11 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,360,150,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch12 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,450,150,90,90,"U1: DTCH1"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach12 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,530,150,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch13 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,620,150,90,90,"U1: DTCH2"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach13 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,700,150,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch14 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,790,150,90,90,"U1: DTCH3"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach14 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,870,150,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch20 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,110,290,90,90,"U2 : DCCH"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach20 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,190,290,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch21 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,280,290,90,90,"U2: DTCH0"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach21 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,360,290,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch22 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,450,290,90,90,"U2: DTCH1"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach22 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,530,290,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch23 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,620,290,90,90,"U2: DTCH2"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach23 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,700,290,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch24 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,790,290,90,90,"U2: DTCH3"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach24 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,870,290,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch30 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,110,430,90,90,"U3 : DCCH"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach30 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,190,430,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch31 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,280,430,90,90,"U3: DTCH0"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach31 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,360,430,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch32 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,450,430,90,90,"U3: DTCH1"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach32 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,530,430,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch33 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,620,430,90,90,"U3: DTCH2"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach33 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,700,430,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fdui->sacch34 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,790,430,90,90,"U3: DTCH3"); - fl_set_object_color(obj,FL_BLACK,FL_DODGERBLUE); - fdui->sach34 = obj = fl_add_xyplot(FL_POINTS_XYPLOT,870,430,90,90,""); - fl_set_object_color(obj,FL_BLACK,FL_RED); - fl_end_form(); - - fdui->sach_scope->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - diff --git a/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.fd b/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.fd deleted file mode 100644 index 6f651fb9056e56b28406bc13a84daeaa441ca035..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.fd +++ /dev/null @@ -1,754 +0,0 @@ -Magic: 13000 - -Internal Form Definition File - (do not change) - -Number of forms: 1 -Unit of measure: FL_COORD_PIXEL - -=============== FORM =============== -Name: sach_scope -Width: 1380 -Height: 590 -Number of Objects: 41 - --------------------- -class: FL_BOX -type: UP_BOX -box: 0 0 1380 590 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 110 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U0 : DCCH -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch00 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 190 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach00 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 280 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U0: DTCH0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch01 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 360 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach01 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 450 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U0: DTCH1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch02 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 530 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach02 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 620 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U0: DTCH2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch03 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 700 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach03 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 790 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U0: DTCH3 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch04 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 870 20 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach04 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 110 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U1 : DCCH -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch10 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 190 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach10 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 280 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U1: DTCH0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch11 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 360 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach11 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 450 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U1: DTCH1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch12 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 530 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach12 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 620 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U1: DTCH2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch13 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 700 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach13 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 790 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U1: DTCH3 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch14 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 870 150 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach14 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 110 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U2 : DCCH -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch20 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 190 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach20 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 280 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U2: DTCH0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch21 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 360 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach21 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 450 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U2: DTCH1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch22 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 530 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach22 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 620 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U2: DTCH2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch23 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 700 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach23 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 790 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U2: DTCH3 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch24 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 870 290 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach24 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 110 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U3 : DCCH -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch30 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 190 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach30 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 280 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U3: DTCH0 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch31 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 360 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach31 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 450 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U3: DTCH1 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch32 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 530 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach32 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 620 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U3: DTCH2 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch33 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 700 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach33 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 790 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_DODGERBLUE -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: U3: DTCH3 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sacch34 -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 870 430 90 90 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_RED -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: sach34 -callback: -argument: - -============================== -create_the_forms diff --git a/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.h b/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.h deleted file mode 100644 index cbcb5a54481e89ea9c684e38b4856c45c080d8fd..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SCOPE/sach_scope.h +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -/** Header file generated with fdesign on Tue Oct 21 17:41:09 2008.**/ - -#ifndef FD_sach_scope_h_ -#define FD_sach_scope_h_ - -/** Callbacks, globals and object handlers **/ - - -/**** Forms and Objects ****/ -typedef struct { - FL_FORM *sach_scope; - void *vdata; - char *cdata; - long ldata; - FL_OBJECT *sacch00; - FL_OBJECT *sach00; - FL_OBJECT *sacch01; - FL_OBJECT *sach01; - FL_OBJECT *sacch02; - FL_OBJECT *sach02; - FL_OBJECT *sacch03; - FL_OBJECT *sach03; - FL_OBJECT *sacch04; - FL_OBJECT *sach04; - FL_OBJECT *sacch10; - FL_OBJECT *sach10; - FL_OBJECT *sacch11; - FL_OBJECT *sach11; - FL_OBJECT *sacch12; - FL_OBJECT *sach12; - FL_OBJECT *sacch13; - FL_OBJECT *sach13; - FL_OBJECT *sacch14; - FL_OBJECT *sach14; - FL_OBJECT *sacch20; - FL_OBJECT *sach20; - FL_OBJECT *sacch21; - FL_OBJECT *sach21; - FL_OBJECT *sacch22; - FL_OBJECT *sach22; - FL_OBJECT *sacch23; - FL_OBJECT *sach23; - FL_OBJECT *sacch24; - FL_OBJECT *sach24; - FL_OBJECT *sacch30; - FL_OBJECT *sach30; - FL_OBJECT *sacch31; - FL_OBJECT *sach31; - FL_OBJECT *sacch32; - FL_OBJECT *sach32; - FL_OBJECT *sacch33; - FL_OBJECT *sach33; - FL_OBJECT *sacch34; - FL_OBJECT *sach34; -} FD_sach_scope; - -extern FD_sach_scope * create_form_sach_scope(void); - -#endif /* FD_sach_scope_h_ */ diff --git a/openair1/USERSPACE_TOOLS/SENSING/COPYING b/openair1/USERSPACE_TOOLS/SENSING/COPYING deleted file mode 100644 index 818433ecc0e094a4db1023c68b33f24344643ad8..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SENSING/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - 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/>. - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - <program> Copyright (C) <year> <name of author> - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -<http://www.gnu.org/licenses/>. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/openair1/USERSPACE_TOOLS/SENSING/Makefile b/openair1/USERSPACE_TOOLS/SENSING/Makefile deleted file mode 100644 index ece36c38667d76bfed0620d8ff90303cb31e2551..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SENSING/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -include $(OPENAIR_HOME)/common/utils/Makefile.inc - -TOP_DIR = ../.. - -CFLAGS += -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS=2 -DNB_ANTENNAS_TX=2 -DDEBUG_PHY -DCBMIMO1 - -# PHY Initialization routines -OBJS =$(TOP_DIR)/PHY/INIT/init.o - -# PHY TOOLS routines -OBJS +=$(TOP_DIR)/PHY/TOOLS/fft.o $(TOP_DIR)/PHY/TOOLS/cmult_vv.o $(TOP_DIR)/PHY/TOOLS/cmult_sv.o -#ifdef CBMIMO1 -OBJS +=$(TOP_DIR)/PHY/TOOLS/8bit_txmux.o -#endif - -# PHY ESTIMATION routines -OBJS += $(TOP_DIR)/PHY/ESTIMATION/channel_estimation.o - -# PHY MODULATION routines -OBJS +=$(TOP_DIR)/PHY/MODULATION/ofdm_mod.o - -# PHY Transport routines -OBJS += $(TOP_DIR)/PHY/TRANSPORT/chsch.o $(TOP_DIR)/PHY/TRANSPORT/chbch.o $(TOP_DIR)/PHY/TRANSPORT/sch.o $(TOP_DIR)/PHY/TRANSPORT/sach.o $(TOP_DIR)/PHY/TRANSPORT/mrbch.o - -# PHY Coding routines -OBJS+=$(TOP_DIR)/PHY/CODING/ccoding_byte.o $(TOP_DIR)/PHY/CODING/crc_byte.o $(TOP_DIR)/PHY/CODING/viterbi.o - -# PHY Synch routines -OBJS +=$(TOP_DIR)/PHY/ESTIMATION/synch_time.o - -# Utility routines -OBJS +=$(TOP_DIR)/PHY/TOOLS/dB_routines.o $(TOP_DIR)/PHY/TOOLS/file_output.o $(TOP_DIR)/PHY/TOOLS/memory_routines.o $(TOP_DIR)/PHY/TOOLS/signal_energy.o $(TOP_DIR)/PHY/TOOLS/sqrt.o $(TOP_DIR)/PHY/TOOLS/log2_approx.o $(TOP_DIR)/SIMULATION/TOOLS/rangen_double.o $(TOP_DIR)/SIMULATION/TOOLS/random_channel.o - -# CONFIG routines -OBJS +=$(TOP_DIR)/PHY/CONFIG/openair_configure.o $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.o - -$(OBJS) : %.o : %.c - $(CC) -c $(CFLAGS) -I$(TOP_DIR) -o $@ $< - -main_sensing : $(OBJS) main_sensing.c - $(CC) main_sensing.c -I$(TOP_DIR) -o main_sensing $(CFLAGS) $(OBJS) -lm - -all : main_sensing - -clean: - rm -f main_sensing - rm -f $(OBJ) - - diff --git a/openair1/USERSPACE_TOOLS/SENSING/main_sensing.c b/openair1/USERSPACE_TOOLS/SENSING/main_sensing.c deleted file mode 100644 index 05c589bc97d73dba6abbc450b227fb329fc3932c..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SENSING/main_sensing.c +++ /dev/null @@ -1,199 +0,0 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface 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. - - - OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - - *******************************************************************************/ -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#ifdef CBMIMO1 -#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h" -#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h" -#endif -#ifdef PLATON -#include "daq.h" -#endif - -#include "PHY/CONFIG/vars.h" -#include "MAC_INTERFACE/vars.h" - -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - -#include <sys/ioctl.h> -#include <sys/mman.h> -#include <sys/socket.h> -#include <sys/stat.h> -//#include <sys/time.h> -#include <sys/types.h> -//#include <sys/wait.h> -//#include <ctype.h> -#include <fcntl.h> -//#include <errno.h> -#include <unistd.h> -//#include <string.h> -//#include <netdb.h> - - -void main(int argc, char** argv) -{ - - int i; - FILE *rxsig_fd; - int openair_fd,rx_sig_fifo_fd,rf_cntl_fifo_fd,sched_cnt; - unsigned int params; - int result; - /* ############ variables declaration for sensing #######*/ - s16 *samples; - int size_signal = 20480; - struct complex16 signal[size_signal]; - - - printf("Allocating memory for PHY_VARS\n"); - - PHY_vars = (PHY_VARS *)malloc(sizeof(PHY_VARS)); - PHY_config = (PHY_CONFIG *)malloc(sizeof(PHY_CONFIG)); - mac_xface = (MAC_xface *)malloc(sizeof(MAC_xface)); - - if((config = fopen("./openair_config.cfg","r")) == NULL) { // this can be configured - printf("[Main USER] The widens configuration file <widens_config.cfg> could not be found!"); - exit(0); - } - - if ((scenario= fopen("./openair_scenario.scn","r")) ==NULL) { - printf("[Main USER] The widens scenario file <widens_scenario.scn> could not be found!"); - exit(0); - } - - printf("Opened configuration files\n"); - printf("[openair][INFO][START] Opening /dev/openair0\n"); - - if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) { - fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd); - exit(-1); - } - - rx_sig_fifo_fd=open("/dev/rtf59",O_RDONLY); - - if (rx_sig_fifo_fd==-1) { - printf("Can not open rxsig FIFO (/dev/rtf59)!\n"); - exit(0); - } - - rf_cntl_fifo_fd=open("/dev/rtf60",O_RDONLY); - - if (rf_cntl_fifo_fd==-1) { - printf("Can not open rf_cntl FIFO (/dev/rtf60)!\n"); - exit(0); - } - - if ((rxsig_fd = fopen("rxsig0.dat","w")) == NULL) { - printf("Cannot open rxsig0 output file\n"); - exit(0); - } - - reconfigure_MACPHY(scenario); - mac_xface->is_cluster_head = 0; - - phy_init(NB_ANTENNAS_TX); - printf("Initialized PHY variables\n"); - - //mac_init(); - - /* - PHY_config->PHY_framing.fc_khz = 1907600; - - result=ioctl(openair_fd, openair_DUMP_CONFIG,(char *)PHY_config); - if (result == 0) { - printf ("[openair][CONFIG][INFO] loading openair configuration in kernel space\n"); - } else { - printf ("[openair][START][INFO] loading openair configuration in kernel space failed \n"); - } - */ - - params = 1|(3<<1)|(3<<3); - result=ioctl(openair_fd,openair_GET_BUFFER,(void *)¶ms); - - if (result == 0) { - printf ("[openair][CONFIG][INFO] getting rx buffer\n"); - } else { - printf ("[openair][START][INFO] getting rx buffer failed \n"); - } - - read(rf_cntl_fifo_fd,(void *)&sched_cnt,4); - - printf("Sched count %d\n",sched_cnt); - - for (i=0; i<NB_ANTENNAS; i++) { - read(rx_sig_fifo_fd, - PHY_vars->rx_vars[i].RX_DMA_BUFFER, - FRAME_LENGTH_BYTES); - } - - printf("Got Frame for %d antennas, demodulating\n",NB_ANTENNAS); - - fwrite(PHY_vars->rx_vars[0].RX_DMA_BUFFER,1,FRAME_LENGTH_BYTES,rxsig_fd); - - /*############### sensing code################*/ - samples = (s16 *)PHY_vars->rx_vars[0].RX_DMA_BUFFER; - - for (i=0; i<size_signal; i++) { - signal[i].r = samples[2*i]; - signal[i].i = samples[2*i+1]; - } - - printf("sample 1 = %d + i%d\n",signal[0].r,signal[0].i); - printf("sample 2 = %d + i%d\n",signal[1].r,signal[1].i); - printf("sample 3 = %d + i%d\n",signal[2].r,signal[2].i); - printf("sample 4 = %d + i%d\n",signal[3].r,signal[3].i); - printf("sample 5 = %d + i%d\n",signal[4].r,signal[4].i); - printf("sample 6 = %d + i%d\n",signal[5].r,signal[5].i); - - printf("FRAME_LENGTH_BYTES = %d\n",FRAME_LENGTH_BYTES); - printf("size_signal = %d\n",size_signal); - - printf("RX_DMA_BUFFER 1 = %d\n",samples[0]); - printf("RX_DMA_BUFFER 2 = %d\n",samples[1]); - printf("RX_DMA_BUFFER 3 = %d\n",samples[2]); - printf("RX_DMA_BUFFER 4 = %d\n",samples[3]); - printf("RX_DMA_BUFFER 5 = %d\n",samples[4]); - printf("RX_DMA_BUFFER 6 = %d\n",samples[5]); - - - fclose(config); - fclose(rxsig_fd); - - close(openair_fd); - close(rx_sig_fifo_fd); - close(rf_cntl_fifo_fd); - - free(PHY_vars); - free(PHY_config); - - printf("Exiting00000\n"); - -} diff --git a/openair1/USERSPACE_TOOLS/SENSING/sensing_matlab.m b/openair1/USERSPACE_TOOLS/SENSING/sensing_matlab.m deleted file mode 100644 index 05524f93f7fbb3503ef357fa6333764f0716ca8d..0000000000000000000000000000000000000000 --- a/openair1/USERSPACE_TOOLS/SENSING/sensing_matlab.m +++ /dev/null @@ -1,15 +0,0 @@ -clear all -system("source /opt/intel/cc/10.0.023/bin/iccvars.sh") - -system("./main_sensing"); - -fd = fopen("rxsig0.dat","r"); - -temp = fread(fd,20480*2,"int16"); -fclose(fd); - -rxs = temp(1:2:length(temp)) + sqrt(-1)*temp(2:2:length(temp)); - -figure(2) -plot(20*log10(abs(fftshift(fft(rxs))))) -