Complex Binary Number System: Algorithms and Circuits
By Tariq Jamil
()
About this ebook
It is hoped that this work will be of interest to anyone involved in computer arithmetic and digital logic design and kindle renewed enthusiasm among the engineers working in the areas of digital signal and image processing for developing newer and efficient algorithms and techniques incorporating CBNS.
Related to Complex Binary Number System
Related ebooks
Machine Learning for Decision Makers: Cognitive Computing Fundamentals for Better Decision Making Rating: 0 out of 5 stars0 ratingsAutomated Theorem Proving in Software Engineering Rating: 0 out of 5 stars0 ratingsPython for Probability, Statistics, and Machine Learning Rating: 0 out of 5 stars0 ratingsHandbook of Human Centric Visualization Rating: 0 out of 5 stars0 ratingsGetting Started with Greenplum for Big Data Analytics Rating: 0 out of 5 stars0 ratingsHow Transistor Area Shrank by 1 Million Fold Rating: 0 out of 5 stars0 ratingsSocial Media Data Mining and Analytics Rating: 0 out of 5 stars0 ratingsComplex analysis A Complete Guide Rating: 0 out of 5 stars0 ratingsJump Start Sass: Get Up to Speed With Sass in a Weekend Rating: 0 out of 5 stars0 ratingsHow to Design Optimization Algorithms by Applying Natural Behavioral Patterns Rating: 0 out of 5 stars0 ratingsSingular Spectrum Analysis for Time Series Rating: 0 out of 5 stars0 ratingsResponsible Data Science Rating: 0 out of 5 stars0 ratingsPractical MATLAB: With Modeling, Simulation, and Processing Projects Rating: 0 out of 5 stars0 ratingsMining for Knowledge: Exploring GPU Architectures In Cryptocurrency and AI: The Crypto Mining Mastery Series Rating: 0 out of 5 stars0 ratingsLearn Java for Android Development: Java 8 and Android 5 Edition Rating: 0 out of 5 stars0 ratingsEmbedded Software Design and Programming of Multiprocessor System-on-Chip: Simulink and System C Case Studies Rating: 0 out of 5 stars0 ratingsMATLAB Optimization Techniques Rating: 0 out of 5 stars0 ratingsPython for Marketing Research and Analytics Rating: 0 out of 5 stars0 ratings.NET DevOps for Azure: A Developer's Guide to DevOps Architecture the Right Way Rating: 0 out of 5 stars0 ratingsLearn LLVM 12: A beginner's guide to learning LLVM compiler tools and core libraries with C++ Rating: 0 out of 5 stars0 ratingsTensor Analysis and Elementary Differential Geometry for Physicists and Engineers Rating: 0 out of 5 stars0 ratingsOpenCV Android Programming By Example Rating: 0 out of 5 stars0 ratingsGraph Databases A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsASP.NET 3.5 CMS Development Rating: 0 out of 5 stars0 ratingsModern C for Absolute Beginners: A Friendly Introduction to the C Programming Language Rating: 0 out of 5 stars0 ratingsNoSQL Essentials: Navigating the World of Non-Relational Databases Rating: 0 out of 5 stars0 ratingsMicrosoft Dynamics CRM 2011 Customization & Configuration (MB2-866) Certification Guide Rating: 0 out of 5 stars0 ratings
Electrical Engineering & Electronics For You
The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution Rating: 4 out of 5 stars4/5How to Diagnose and Fix Everything Electronic, Second Edition Rating: 4 out of 5 stars4/5Off-Grid Projects: Step-by-Step Guide to Building Your Own Off-Grid System Rating: 0 out of 5 stars0 ratingsElectrical Engineering | Step by Step Rating: 0 out of 5 stars0 ratingsElectrician's Pocket Manual Rating: 0 out of 5 stars0 ratingsDigital Filmmaking for Beginners A Practical Guide to Video Production Rating: 0 out of 5 stars0 ratingsRaspberry Pi Projects for the Evil Genius Rating: 0 out of 5 stars0 ratingsElectric Circuits Essentials Rating: 5 out of 5 stars5/5Basic Electricity Rating: 4 out of 5 stars4/5Two-Stroke Engine Repair and Maintenance Rating: 0 out of 5 stars0 ratingsThe Homeowner's DIY Guide to Electrical Wiring Rating: 5 out of 5 stars5/5Understanding Electricity Rating: 4 out of 5 stars4/5Practical Electrical Wiring: Residential, Farm, Commercial, and Industrial Rating: 4 out of 5 stars4/5DIY Lithium Battery Rating: 3 out of 5 stars3/5Electricity for Beginners Rating: 4 out of 5 stars4/5Upcycled Technology: Clever Projects You Can Do With Your Discarded Tech (Tech gift) Rating: 5 out of 5 stars5/5Schaum's Outline of Basic Electricity, Second Edition Rating: 5 out of 5 stars5/5Ramblings of a Mad Scientist: 100 Ideas for a Stranger Tomorrow Rating: 0 out of 5 stars0 ratingsThe Electrician's Trade Demystified Rating: 0 out of 5 stars0 ratingsBeginner's Guide to Reading Schematics, Fourth Edition Rating: 4 out of 5 stars4/5Basic Electronics: Book 2 Rating: 5 out of 5 stars5/5Circuitbuilding Do-It-Yourself For Dummies Rating: 0 out of 5 stars0 ratingsBeginner's Guide to Reading Schematics, Third Edition Rating: 0 out of 5 stars0 ratingsTHE Amateur Radio Dictionary: The Most Complete Glossary of Ham Radio Terms Ever Compiled Rating: 4 out of 5 stars4/5Soldering electronic circuits: Beginner's guide Rating: 4 out of 5 stars4/5Electronic Circuits for the Evil Genius 2/E Rating: 0 out of 5 stars0 ratingsProgramming Arduino: Getting Started with Sketches Rating: 4 out of 5 stars4/5Making Everyday Electronics Work: A Do-It-Yourself Guide: A Do-It-Yourself Guide Rating: 4 out of 5 stars4/52022 Adobe® Premiere Pro Guide For Filmmakers and YouTubers Rating: 5 out of 5 stars5/5
Reviews for Complex Binary Number System
0 ratings0 reviews
Book preview
Complex Binary Number System - Tariq Jamil
Tariq JamilSpringerBriefs in Electrical and Computer EngineeringComplex Binary Number System2013Algorithms and Circuits10.1007/978-81-322-0854-9_1© The Author(s) 2013
1. Introduction
Tariq Jamil¹
(1)
Department of Electrical and Computer Engineering, Sultan Qaboos University, Muscat, 123, Oman
Tariq Jamil
Email: tjamil@squ.edu.om
Abstract
Complex numbers play a truly unique and important role in the realm of modern science and engineering. Using these numbers it is possible to locate a point within two dimensions of a Cartesian co-ordinate system. Therefore, these numbers are used extensively in digital signal processing algorithms and image processing applications. In this chapter we are going to review basic theory about complex numbers and arithmetic operations involving such type of numbers. This will enable us to justify the need for a more efficient representation of these numbers in computer architecture.
1.1 What is a Complex Number?
A complex number represents a point in a two-dimensional system and, in rectangular form, is written in the form $$ \left( {x + jy} \right) $$ where $$ x $$ , called the real part, denotes the position along the horizontal axis and y, called the imaginary part, denotes the position along the vertical axis. j
is considered equivalent to $$ \sqrt { - 1} $$ and is used to represent the imaginary nature of the variable $$ y $$ . Another way of locating the point in a two-dimensional system is to use polar notation $$ r\angle \theta $$ where $$ r $$ represents the hypotenuse of length $$ \sqrt {x^{2} + y^{2} } $$ for a right-angled triangle having $$ x $$ as the base and $$ y $$ as the perpendicular, and $$ \theta $$ represents the angle made by the hypotenuse with the base of the triangle, given by $$ \tan^{ - 1} \frac{y}{x} $$ .
1.2 Arithmetic Operations Involving Complex Numbers
Arithmetic operations involving two complex numbers $$ (a + jb) $$ and $$ (c + jd) $$ are carried out as follows:
Addition involves two individual additions, one for the real parts $$ (a + c) $$ and one for the imaginary parts $$ (b + d) $$ :
$$ (a + jb) + (c + jd) = (a + c) + j(b + d) $$(1.1)
Subtraction involves two individual subtractions, one for the real parts $$ (a - c) $$ and one for the imaginary parts $$ (b - d) $$ :
$$ (a + jb) - (c + jd) = (a - c) + j(b - d) $$(1.2)
Multiplication involves four individual multiplications $$ ac, ad, bc, bd $$ , one subtraction $$ac - bd$$ , and one addition $$ ad + bc $$ :
$$ \left( {a + jb} \right) \times \left( {c + jd} \right) = ac + j\left( {ad + bc} \right) + j^{2} bd = \left( {ac - bd} \right) + j(ad + bc) $$(1.3)
Division involves six individual multiplications $$ ac, ad, bc, bd, c^{2} , d^{2} $$ , two additions $$ac + bd$$ and $$ c^{2} + d^{2} $$ , one subtraction $$ bc - ad $$ , and then two individual divisions $$ \frac{ac + bd}{{c^{2} + d^{2} }} $$ and $$ \frac{bc - ad}{{c^{2} + d^{2} }} $$ :
$$ \frac{{\left( {a + jb} \right)}}{{\left( {c + jd} \right)}} = \frac{{\left( {a + jb} \right)}}{{\left( {c + jd} \right)}} \times \frac{{\left( {c - jd} \right)}}{{\left( {c - jd} \right)}} = \frac{{ac + j\left( {bc - ad} \right) - j^{2} bd}}{{c^{2} - j^{2} d^{2} }} $$$$ = \frac{{\left( {ac + bd} \right) + j(bc - ad)}}{{c^{2} + d^{2} }} = \frac{ac + bd}{{c^{2} + d^{2} }} + j \frac{bc - ad}{{c^{2} + d^{2} }} $$(1.4)
1.3 Justification for Complex Binary Number System
Let’s assume that each individual addition/subtraction, involving complex numbers, takes $$ p $$ ns to complete and each individual multiplication/division takes $$ q $$ ns to execute, such that $$ p \ll q $$ (multiplication can be assumed to be repeated-addition and division can be assumed to be repeated subtraction), then each complex addition/subtraction will take $$ 2p $$ ns, each complex multiplication will take $$ 4q + p + p = (2p + 4q) $$ ns, and each complex division will take $$ 6q + 2p + p + 2q = (3p + 8q) $$ ns. Now imagine a number system in which complex arithmetic does not involve any combination of individual arithmetic operations as described in Sect. 1.2. That is, addition, subtraction, multiplication, or division of complex numbers is just one pure addition, one pure subtraction, one pure multiplication, or one pure division operation respectively and not a combination of various individual operations within a given arithmetic operation as mentioned previously. This will effectively reduce the complex addition/subtraction time to $$ p $$ ns and complex multiplication/division time to $$ q $$ ns. Mathematically, such a complex number system will yield reduction in execution time of addition/subtraction operation roughly by a factor of $$ \frac{p}{2p} \times 100 = 50\,\% $$ , for multiplication $$ \frac{(2p + 4q)}{q} \times 100 = \frac{4q}{q} \times 100 = 400\,\% $$ (since $$ p $$ is very small compared to $$ q) $$ , and for division $$ \frac{(3p + 8q)}{q} \times 100 = \frac{8q}{q} \times 100 = 800\,\% $$ . With the reduction in execution times of complex arithmetic operations roughly by factors of 50–800 % in digital signal and image processing applications, it is possible to achieve tremendous enhancement in the overall performance of systems based on these applications, provided a technique exists which treats a complex number as a single entity (rather than two entities comprising of real and imaginary parts) and facilitates a single-unit representation of complex numbers in binary format within a microprocessor environment (rather than two individual representations for real and imaginary parts respectively, as in today’s computers). Such a unique number system is referred to as Complex Binary Number System (CBNS).
1.4 What is Complex Binary Number System?
Efforts in defining a binary number system (0 or 1) with bases other than 2, which would facilitate a single-unit representation of complex numbers, date back to 1960 when Donald E. Knuth described a quater-imaginary
number system with base $$ 2j $$ and analyzed the arithmetic operations of numbers based on this imaginary base [1]. However, he was unsuccessful in providing a division algorithm and considered it as a main obstacle towards hardware implementation of any imaginary-base number system.
Walter Penney, in 1964, attempted to define a complex number system, first by using a negative base of $$ - 4 $$ [2], and then by using a complex number $$ ( - 1 + j) $$ as the base [3]. However, the main problem encountered with using these bases was again the inability to formulate an efficient division process. Stepanenko, in 1996, utilized the base $$ j\sqrt 2 $$ to generate real parts of complex numbers by taking even powers of the base and imaginary parts of complex numbers by taking odd powers of the base [4]. Although partly successful in resolving the division problem as an all-in-one
operation, in his algorithm …everything…reduces to good choice of an initial approximation
in a Newton–Raphson iteration which may or may not converge.
Jamil et al., in 2000, revisited Penney’s number system with base $$ ( - 1 + j) $$ and presented a detailed analysis of this number system, now called Complex Binary Number System (CBNS) [5]. During the past several years, Jamil et al. have obtained research grants and published several articles in international conferences and journals describing conversion algorithms, arithmetic operations, and computer hardware circuits involving CBNS. This book is a compilation of the entire research work carried out on CBNS by the author and his various research teams, and is intended to assist new researcher in the fields of computer arithmetic and computer architecture as well as any student with interest in digital logic towards advancing modern day computing through incorporation of CBNS in both the software and hardware paradigms.
In Chap. 2, algorithms to convert a given complex number into CBNS are presented. This is followed by presentation of techniques in Chap. 3 to carry out the arithmetic and shift operations in the new number system. Chapter 4 describes the hardware implementation, and performance statistics related to arithmetic circuits and, in Chap. 5, incorporation of these circuits within an associative dataflow environment to design a Complex Binary Associative Dataflow Processor (CBADP) has been explained. Conclusion and further research are outlined in Chap. 6.
References
1.
D.E. Knuth, An imaginary number system. Commun. ACM 3, 345–347 (1960)MathSciNetCrossRef
2.
W. Penney, A numeral system with a negative base. Math. Student J. 11(4), 1–2 (1964)
3.
W. Penney, A binary system for complex numbers. J. ACM 12(2), 247–248