diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/COPYING b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- 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.
- 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.
-
-
- Copyright (C)
-
- 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 .
-
-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:
-
- Copyright (C)
- 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
-.
-
- 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
-.
diff --git a/openair1/USERSPACE_TOOLS/OAI_FW_INIT/Makefile b/openair1/USERSPACE_TOOLS/OAI_FW_INIT/Makefile
deleted file mode 100644
index adca6587b3..0000000000
--- 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 35084dcbc9..0000000000
--- 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 .
-
- 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
-#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 715435f9a1..0000000000
--- 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 .
-
- 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 974fb46a33..0000000000
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 633eb1fecd..0000000000
--- 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 .
-
- 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 for updatefw tool.
-
- K. Khalfallah, Aug, 2007
- kkhalfallah@free.fr
-*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-#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; ie_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 6d487780ff..0000000000
--- 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 .
-
- 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 for updatefw tool.
-
- K. Khalfallah, Aug, 2007
- kkhalfallah@free.fr
-*/
-
-#ifndef UPDATEFW_H
-#define UPDATEFW_H
-
-#include
-#include
-#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 47aa52067d..0000000000
--- 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 diffSystem->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 8e5240db98..0000000000
--- 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 14bcd545a5..0000000000
--- 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 ab4070e807..0000000000
--- 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 e98a552242..0000000000
--- 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 6bb3f387c5..0000000000
--- 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 diff0)
-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 350f6ead8e..0000000000
--- 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 fb73fe1c93..0000000000
--- 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 faf625c92d..0000000000
--- 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 f206d36bd9..0000000000
--- 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 454ea5c6c1..0000000000
--- 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 47edfa586d..0000000000
--- 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 bb24d6b256..0000000000
--- 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 0f5721cd55..0000000000
--- 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 bc74e32af3..0000000000
--- 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 5aceb2f051..0000000000
--- 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 35bc21b5f4..0000000000
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 459cfb787f..0000000000
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 1a921062e7..0000000000
--- 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 f477acd832..0000000000
--- 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 f78e9077da..0000000000
--- 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 48aa674769..0000000000
--- 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 9b2b53f901..0000000000
--- 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 f6d716b9d7..0000000000
--- 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 1aa695731b..0000000000
--- 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 2a1a0c18e9..0000000000
--- 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 857120bdbf..0000000000
--- 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 e8890ea4ce..0000000000
--- 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 e2f7d99049..0000000000
--- 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 b36b27d631..0000000000
--- 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 1c9918bb96..0000000000
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 3babeb655a..0000000000
--- 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 de25fc234a..0000000000
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 1ae2dcc0eb..0000000000
--- 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 d339da0ba7..0000000000
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 1fa6fdfe7a..0000000000
--- 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 6d5e0f6412..0000000000
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 0a94b3ab68..0000000000
--- 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
-#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 7022d7e7b9..0000000000
--- 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 21be573634..0000000000
--- 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 2667429d0c..0000000000
--- 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 fb12144242..0000000000
--- 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
-#include
-#include
-
-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 5aaeec3279..0000000000
--- 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
-#include
-#include
-#include
-
-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;inb_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;inb_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 1deb35a4fa..0000000000
--- 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
-#include
-#include
-
-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
-
-//#include
-
-
-//#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
-#include
-#include
-#include
-
-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;aaTX_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;aaTX_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 96bdb893da..0000000000
--- 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
-#include
-#include
-
-#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 5791850287..0000000000
--- 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
-#include
-#include
-
-#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 8eb0c9bbb8..0000000000
--- 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
-#include
-#include
-
-#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 fe3d835ac1..0000000000
--- 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
-#include
-#include
-
-#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 039647bebe..0000000000
--- 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
-#include
-#include
-
-#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 e585d29fca..0000000000
--- 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
-#include
-#include
-
-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 52c0a898c1..0000000000
--- 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 72c9974853..0000000000
--- 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 6713e826d3..0000000000
--- 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 757ae4ce3b..0000000000
--- 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 9b64c1ac1c..0000000000
--- 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 8e5240db98..0000000000
--- 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 808eed39ce..0000000000
--- 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 a07e04a1c3..0000000000
--- 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 32b3260a3b..0000000000
--- 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 1b25f765a0..0000000000
--- 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 61709c8c80..0000000000
--- 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 02d0a79922..0000000000
--- 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 d739a54e9f..0000000000
--- 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 a0c9591dbe..0000000000
--- 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 bc74e32af3..0000000000
--- 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 3184553021..0000000000
--- 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 a2b6d8dd8e..0000000000
--- 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 73054a5cd4..0000000000
--- 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 95da0a6fb1..0000000000
--- 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
-#include
-#include "/usr/include/gpib/ib.h"
-#include
-
-/* 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 81a2193a37..0000000000
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 06035651db..0000000000
--- 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
-#include
-#include "ib.h"
-#include
-
-
-/* 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 df4713a271..0000000000
--- 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 aac693d2b8..0000000000
--- 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 f4dcf822f7..0000000000
--- 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 4a954beb84..0000000000
--- 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 be063e0c02..0000000000
--- 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 7b02fd2cdf..0000000000
--- 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 320646567e..0000000000
--- 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 0c1f82aec3..0000000000
--- 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 ffdb5f8781..0000000000
--- 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 63b254c87d..0000000000
--- 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 df5b8af71b..0000000000
--- 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 9d01d50674..0000000000
--- 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 96ee450354..0000000000
--- 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 6f2acf9aee..0000000000
--- 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 d61eb1e21e..0000000000
--- 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 3e00f59078..0000000000
--- 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 46b53806ee..0000000000
--- 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 9384d49359..0000000000
--- 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 fe3357f5e7..0000000000
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 d7a95ce98e..0000000000
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 eea8943c61..0000000000
--- 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 251cabd8f7..0000000000
--- 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 818433ecc0..0000000000
--- 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.
- 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.
-
-
- Copyright (C)
-
- 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 .
-
-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:
-
- Copyright (C)
- 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
-.
-
- 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
-.
diff --git a/openair1/USERSPACE_TOOLS/OPENAIR_RF/Makefile b/openair1/USERSPACE_TOOLS/OPENAIR_RF/Makefile
deleted file mode 100755
index 71bce12294..0000000000
--- 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 eacd366407..0000000000
--- 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 88e9a22930..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#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; ii) { /** 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 *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.
-
- 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< 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 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>= 1;
- wi >>= 1;
- }
-
- for(i=m; i>= 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
-#include
-
-#define LOG2Nfft 8
-#define Nfft (1<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 1ee2dfe210..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#include
-#include
-//#include
-#include
-#include
-#include
-
-#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 fda77ca117..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#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 d9d0a42bcd..0000000000
--- 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 .
-
- 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
-#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; iTX_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 d388409fc9..0000000000
--- 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 .
-
- 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
-#include
-#include
-
-//#include
-#include
-//#include
-//#include
-#include
-#include
-#include
-#include
-#include
-//#include
-//#include
-//#include
-#include
-//#include
-#include
-//#include
-//#include
-
-#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; i5)
- 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 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<
- 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.
-
-
- Copyright (C)
-
- 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 .
-
-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:
-
- Copyright (C)
- 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
-.
-
- 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
-.
diff --git a/openair1/USERSPACE_TOOLS/SCOPE/Makefile b/openair1/USERSPACE_TOOLS/SCOPE/Makefile
deleted file mode 100755
index a02ed10ee8..0000000000
--- 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 bf4252f9a6..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-//#include
-//#include
-#include
-#include
-#include
-#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; kscatter_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 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 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 could not be found!");
- exit(0);
- }
-
- if ((scenario= fopen("./widens_scenario.scn","r")) ==NULL)
- {
- printf("[Main USER] The widens scenario file 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; ichsch_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; isch_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<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; isch_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<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; isch_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 abd3847cb3..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-//#include
-//#include
-#include
-#include
-#include
-#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; kscatter_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; ideterm,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 could not be found!");
- exit(0);
- }
-
- if ((scenario= fopen("./widens_scenario.scn","r")) ==NULL)
- {
- printf("[Main USER] The widens scenario file 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; ichsch_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; isch_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<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; isch_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<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; isch_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 0e765d57c2..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-//#include
-//#include
-#include
-#include
-#include
-#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; kscatter_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 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 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 could not be found!");
- exit(0);
- }
-
- if ((scenario= fopen("./widens_scenario.scn","r")) ==NULL)
- {
- printf("[Main USER] The widens scenario file 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; ichsch_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; isch_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<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; isch_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<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; isch_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 8979dabbde..0000000000
--- 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 .
-
- 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
-#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 0c55d9f15e..0000000000
--- 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 949f4e91a5..0000000000
--- 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 .
-
- 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 26de5c1299..0000000000
--- 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 .
-
- 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
-#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 f20fef5f43..0000000000
--- 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 d75b433224..0000000000
--- 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 .
-
- 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 b497423f91..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-//#include
-//#include
-#include
-#include
-#include
-#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; isymbols_per_tti*NUMBER_OF_OFDM_CARRIERS;k++){
- for (k=0; kchannel_f,30,70);
- fl_set_xyplot_data(form->channel_f,sig_time,mag_sig,ind,"","","");
-
- // channel_t_re = sync_corr
- for (i=0; ichannel_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;iofdm_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; isymbols_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; isymbols_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; ilte_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 6042e97bc2..0000000000
--- 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 .
-
- 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
-#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 793a0b269f..0000000000
--- 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 dac29214c4..0000000000
--- 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 .
-
- 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
-
-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 e39754b811..0000000000
--- 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 .
-
- 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
-#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 8dc0dc159e..0000000000
--- 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 815557ccf0..0000000000
--- 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 .
-
- 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 b0fda175c7..0000000000
--- 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 .
-
- 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
-#include
-#include
-#include
-#include
-#include