説明

絶対値比較回路および絶対値比較プログラム

【課題】 比較回路を備えずに絶対値の比較が可能な絶対値比較回路を提供する。
【解決手段】 本発明の絶対値比較回路は、半波整流回路1a〜1eおよび加算器3a〜3dで構成される。入力データXは2つに分岐され、一方は半波整流回路1aを介して加算器3aに入力され、もう一方は符号を反転させた後に半波整流回路1bを介して加算器3aに入力される。同様に、入力データYも2つに分岐され、一方は半波整流回路1cを介して加算器3bに入力され、もう一方は符号を反転させた後に半波整流回路1dを介して加算器3bに入力される。加算器3aの出力と加算器3bの出力とが加算器3cで加算され、半波整流回路1eに入力される。一方、加算器3aの出力と半波整流回路1eの出力とは加算器3dで加算され、結果が絶対値比較回路の出力となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2つの入力値から絶対値の大きいほうを選択し出力する絶対値比較回路に関する。
【背景技術】
【0002】
従来、DSP(Digital Signal Processing)等のデジタル信号処理で行われる絶対値の比較は、図5の構成図で示される絶対値比較回路で実現されていた。図5において、入力となるデジタルデータXは反転回路11a、さらに1加算器12aを通して符号なし比較回路10へと出力される。一方、同じく入力となるデジタルデータYは反転回路11b、さらに1加算器12bを通して符号なし比較回路10へと出力される。
【0003】
反転回路11aと1加算器12a(または反転回路11bと1加算器12b)は、入力データX(またはY)の絶対値を計算する回路であり、入力データX(またはY)が負の数であるときに2の補数を出力する。符号なし比較回路10は、入力データXおよびYの絶対値を入力し、大小を比較して大きい値を出力する。なお、本出願に関する従来技術の参考文献として、特許文献1が知られている。
【特許文献1】特開平10−161850号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、上記従来の絶対値比較方法では、図5の符号なし比較回路10等に代表される比較回路を備えている必要があり、比較回路を備えていないDSPでは、絶対値の比較を行うことができない。また、絶対値の比較を行わない前提で設計したDSPにおいて、設計後に追加で絶対値の比較が必要となった場合に、ソフトウェアの変更では対応できないという課題があった。
【0005】
本発明は上記事情を考慮してなされたもので、その目的は、比較回路を備えずに絶対値の比較が可能な絶対値比較回路を提供することにある。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたもので、請求項1に記載の発明は、2つのデータを入力とし当該入力データの絶対値のうち大きい値を出力とする絶対値比較回路であって、前記2つのデータの入力の一方を2つに分岐し、その一方のデータを入力とする第1の半波整流回路と、前記分岐した他方のデータに対して符号を反転させたものを入力とする第2の半波整流回路と、前記第1の半波整流回路の出力に対して符号を反転したものと、前記第2の半波整流回路の出力に対して符号を反転したものとを加算する第1の加算回路と、前記2つのデータの入力の他方を2つに分岐し、その一方のデータを入力とする第3の半波整流回路と、前記分岐した他方のデータに対して符号を反転させたものを入力とする第4の半波整流回路と、前記第3の半波整流回路の出力と、前記第4の半波整流回路の出力とを加算する第2の加算回路と、前記第1の加算回路の出力と、前記第2の加算回路の出力とを加算する第3の加算回路と、前記第3の加算回路の出力を入力とする第5の半波整流回路と、前記第1の加算回路の出力に対して符号を反転させたものと、前記第5の半波整流回路の出力とを加算する第4の加算回路とを具備し、前記第1ないし第5の半波整流回路は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力する回路であることを特徴としている。
【0007】
また、請求項2に記載の発明は、2つのデータを入力とし当該入力データの絶対値のうち大きい値を出力とする絶対値比較回路であって、前記2つのデータの入力の一方を入力とする第1の全波整流回路と、前記2つのデータの入力の他方を入力とする第2の全波整流回路と、前記第1の全波整流回路の出力に対して符号を反転させたものと、前記第2の全波整流回路の出力とを加算する第1の加算回路と、前記第1の加算回路の出力を入力とする半波整流回路と、前記第1の全波整流回路の出力と、前記半波整流回路の出力とを加算する第2の加算回路とを具備し、前記半波整流回路は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力する回路であり、前記第1及び第2の全波整流回路は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては当該データの符号を反転したものを出力する回路であることを特徴としている。
【0008】
また、請求項3に記載の発明は、2つのデータを入力し当該入力データの絶対値のうち大きい値を出力する絶対値比較プログラムにおいて、コンピュータに、前記2つのデータの入力の一方を2つに分岐し、その一方のデータを処理する第1の半波整流手順と、前記分岐した他方のデータに対して符号を反転させたものを処理する第2の半波整流手順と、前記第1の半波整流手順の出力に対して符号を反転したものと、前記第2の半波整流手順の出力に対して符号を反転したものとを加算する第1の加算手順と、前記2つのデータの入力の他方を2つに分岐し、その一方のデータを処理する第3の半波整流手順と、前記分岐した他方のデータに対して符号を反転させたものを処理する第4の半波整流手順と、前記第3の半波整流手順の出力と、前記第4の半波整流手順の出力とを加算する第2の加算手順と、前記第1の加算手順の出力と、前記第2の加算手順の出力とを加算する第3の加算手順と、前記第3の加算手順の出力を処理する第5の半波整流手順と、前記第1の加算手順の出力に対して符号を反転させたものと、前記第5の半波整流手順の出力とを加算する第4の加算手順とを実行させるための絶対値比較プログラムであって、前記第1ないし第5の半波整流手順は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力することを特徴としている。
【0009】
また、請求項4に記載の発明は、2つのデータを入力し当該入力データの絶対値のうち大きい値を出力する絶対値比較プログラムにおいて、コンピュータに、前記2つのデータの入力の一方を処理する第1の全波整流手順と、前記2つのデータの入力の他方を処理する第2の全波整流手順と、前記第1の全波整流手順の出力に対して符号を反転させたものと、前記第2の全波整流手順の出力とを加算する第1の加算手順と、前記第1の加算手順の出力を入力とする半波整流手順と、前記第1の全波整流手順の出力と、前記半波整流手順の出力とを加算する第2の加算手順とを実行させるための絶対値比較プログラムであって、前記半波整流手順は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力し、前記第1及び第2の全波整流手順は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては当該データの符号を反転したものを出力することを特徴としている。
【発明の効果】
【0010】
本発明によれば、比較器を備えていないDSPにおいても、絶対値の比較を行うことができる。また、設計後に絶対値比較回路が必要になった場合には、ソフトウェアを変更するだけでよく、ハードウェアに比較回路を追加する必要はない。
【発明を実施するための最良の形態】
【0011】
以下、図面を参照して本発明の実施形態について説明する。図1は、本発明の第1の実施形態にかかる絶対値比較回路の構成図である。図1において、乗算器4a〜4eは1倍の乗算器を表す。
【0012】
また、乗算器5a〜5eは、−1倍の乗算器を表し、例えば図5に示した反転回路11aおよび1加算器12aの組み合わせによりハードウェア上で実現可能である。
【0013】
半波整流回路1a〜1eは、入力データが正の場合はそのまま出力し、入力データが負の場合は0を出力する回路である。加算器(加算回路)3a〜3dは2つの入力データの和を出力する回路である。
【0014】
入力データXは2つに分岐され、一方が乗算器4aに、他方は乗算器5aに入力される。乗算器4aの出力は半波整流回路1aへ入力され、乗算器5aの出力は半波整流回路1bへ入力される。半波整流回路1aの出力は乗算器5bへ入力され、半波整流回路1bの出力は乗算器5cへ入力される。乗算器5bおよび乗算器5cの出力はともに加算器3aに入力される。
【0015】
一方、入力データYも2つに分岐され、一方が乗算器4bに、他方は乗算器5dに入力される。乗算器4bの出力は半波整流回路1cへ入力され、乗算器5dの出力は半波整流回路1dへ入力される。半波整流回路1cの出力は乗算器4cへ入力され、半波整流回路1dの出力は乗算器4dへ入力される。乗算器4cおよび乗算器4dの出力はともに加算器3bに入力される。
【0016】
加算器3aの出力は2つに分岐され、一方が乗算器5eへ入力される。加算器3aの出力の他方、および加算器3bの出力はともに加算器3cへ入力される。加算器3cの出力は半波整流回路1eへ入力される。
【0017】
半波整流回路1eの出力は乗算器4eへ入力され、乗算器4eの出力および乗算器5eの出力はともに加算器3dへ入力される。加算器3dの出力は、本実施形態における絶対値比較回路の出力となる。
【0018】
次に、上述した第1の実施形態の動作を、図3を参照して説明する。図3は、入力データX、Yの条件に対応して、図1に示したA点〜F点におけるデータおよび出力データZがどのように値になるかを示した表である。図3におけるAbs(X)は、Xの絶対値を意味する。
【0019】
図1の絶対値比較回路の各部の動作は、入力データXが正および負の場合、入力データYが正および負の場合、入力データXの絶対値が入力データYの絶対値より大きいか小さいかのそれぞれの条件によって異なる。以下では、全8通りの条件について図1の絶対値回路の動作を説明する。
【0020】
図3において、まず条件(1)で入力データX、Yともに正のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが正であるため、半波整流回路1a(第1の半波整流回路)の出力はX、半波整流回路1b(第2の半波整流回路)の出力は0となり、A点のデータは−X、B点のデータは0となる。
【0021】
一方、入力データYが正であるため、半波整流回路1c(第3の半波整流回路)の出力はY、半波整流回路1d(第4の半波整流回路)の出力は0となり、C点のデータはY、D点のデータは0となる。E点のデータは、A点のデータ−XとB点のデータ0が加算器3a(第1の加算回路)で加算された上で−1倍され、Xとなる。
【0022】
C点のデータYとD点のデータ0とが加算器3b(第2の加算回路)で加算され、さらに加算器3c(第3の加算回路)で−Xが加算されて−X+Yが半波整流回路1e(第5の半波整流回路)へ入力される。ここで、絶対値はXの方がYより大きく、−X+Yは負の値であり、半波整流回路1eの出力は0となる。F点のデータは0となり、E点のデータXと加算器3d(第4の加算回路)で加算され、出力データZはX、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0023】
続いて、条件(2)で入力データX、Yともに正のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データXが正であるため、条件(1)と同様、A点のデータは−X、B点のデータは0となる。
【0024】
一方、入力データYが正であるため、条件(1)と同様、C点のデータはY、D点のデータは0となる。E点のデータは、A点のデータ−XとB点のデータ0が加算器3aで加算された上で−1倍され、Xとなる。
【0025】
C点のデータYとD点のデータ0とが加算器3bで加算され、さらに加算器3cで−Xが加算されて−X+Yが半波整流回路1eへ入力される。ここで、絶対値はXの方がYより小さく、−X+Yは正の値であり、半波整流回路1eの出力はそのまま−X+Yとなる。F点のデータは−X+Yとなり、E点のデータXと加算器3dで加算され、出力データZはY、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0026】
続いて、条件(3)で入力データXが正のデータ、入力データYが負のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが正であるため、条件(1)と同様、A点のデータは−X、B点のデータは0となる。
【0027】
一方、入力データYが負であるため、半波整流回路1cの出力は0、半波整流回路1dの出力はーYとなり、C点のデータは0、D点のデータはーYとなる。E点のデータは、A点のデータ−XとB点のデータ0が加算器3aで加算された上で−1倍され、Xとなる。
【0028】
C点のデータ0とD点のデータ−Yとが加算器3bで加算され、さらに加算器3cで−Xが加算されて−X−Yが半波整流回路1eへ入力される。ここで、絶対値はXの方がYより大きく、−X−Yは負の値であり、半波整流回路1eの出力は0となる。F点のデータは0となり、E点のデータXと加算器3dで加算され、出力データZはX、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0029】
続いて、条件(4)で入力データXが正のデータ、入力データYが負のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データXが正であるため、条件(1)と同様、A点のデータは−X、B点のデータは0となる。
【0030】
一方、入力データYが負であるため、条件(3)と同様、C点のデータは0、D点のデータは−Yとなる。E点のデータは、A点のデータ−XとB点のデータ0が加算器3aで加算された上で−1倍され、Xとなる。
【0031】
C点のデータ0とD点のデータ−Yとが加算器3bで加算され、さらに加算器3cで−Xが加算されて−X−Yが半波整流回路1eへ入力される。ここで、絶対値はXの方がYより小さく、−X−Yは正の値であり、半波整流回路1eの出力はそのまま−X−Yとなる。F点のデータは−X−Yとなり、E点のデータXと加算器3dで加算され、出力データZは−Y、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0032】
続いて、条件(5)で入力データXが負のデータ、入力データYが正のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが負であるため、半波整流回路1aの出力は0、半波整流回路1bの出力は−Xとなり、A点のデータは0、B点のデータはXとなる。
【0033】
一方、入力データYが正であるため、条件(1)と同様、C点のデータはY、D点のデータは0となる。E点のデータは、A点のデータ0とB点のデータXが加算器3aで加算された上で−1倍され、−Xとなる。
【0034】
C点のデータYとD点のデータ0とが加算器3bで加算され、さらに加算器3cでXが加算されてX+Yが半波整流回路1eへ入力される。ここで、絶対値はXの方がYより大きく、X+Yは負の値であり、半波整流回路1eの出力は0となる。F点のデータは0となり、E点のデータ−Xと加算器3dで加算され、出力データZは−X、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0035】
続いて、条件(6)で入力データXが負のデータ、入力データYが正のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データXが負であるため、条件(5)と同様、A点のデータは0、B点のデータはXとなる。
【0036】
一方、入力データYが正であるため、条件(1)と同様、C点のデータはY、D点のデータは0となる。E点のデータは、A点のデータ0とB点のデータXが加算器3aで加算された上で−1倍され、−Xとなる。
【0037】
C点のデータYとD点のデータ0とが加算器3bで加算され、さらに加算器3cでXが加算されてX+Yが半波整流回路1eへ入力される。ここで、絶対値はXの方がYより小さく、X+Yは正の値であり、半波整流回路1eの出力はそのままX+Yとなる。F点のデータはX+Yとなり、E点のデータ−Xと加算器3dで加算され、出力データZはY、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0038】
続いて、条件(7)で入力データX、入力データYともに負のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが負であるため、条件(5)と同様、A点のデータは0、B点のデータはXとなる。
【0039】
一方、入力データYが負であるため、条件(3)と同様、C点のデータは0、D点のデータはーYとなる。E点のデータは、A点のデータ0とB点のデータXが加算器3aで加算された上で−1倍され、−Xとなる。
【0040】
C点のデータ0とD点のデータ−Yとが加算器3bで加算され、さらに加算器3cでXが加算されてX−Yが半波整流回路1eへ入力される。ここで、絶対値はXの方がYより大きく、X−Yは負の値であり、半波整流回路1eの出力は0となる。F点のデータは0となり、E点のデータ−Xと加算器3dで加算され、出力データZは−X、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0041】
続いて、条件(8)で入力データX、入力データYともに負のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データXが負であるため、条件(5)と同様、A点のデータは0、B点のデータはXとなる。
【0042】
一方、入力データYが負であるため、条件(3)と同様、C点のデータは0、D点のデータはーYとなる。E点のデータは、A点のデータ0とB点のデータXが加算器3aで加算された上で−1倍され、−Xとなる。
【0043】
C点のデータ0とD点のデータ−Yとが加算器3bで加算され、さらに加算器3cでXが加算されてX−Yが半波整流回路1eへ入力される。ここで、絶対値はXの方がYより大きく、X−Yは正の値であり、半波整流回路1eの出力はそのままX−Yとなる。F点のデータはX−Yとなり、E点のデータ−Xと加算器3dで加算され、出力データZは−Y、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0044】
以上、全8通りの条件において説明したとおり、図1の絶対値比較回路は入力データXの絶対値と入力データYの絶対値の大きい方の値を出力する回路である。図1において比較器は使用されていないため、比較器を備えていないDSPを用いる場合でも、半波整流回路を利用することにより図1の絶対値比較回路を実現することが可能である。
【0045】
次に、本発明の第2の実施形態にかかる絶対値比較回路について、図2を参照して説明する。図2において、半波整流回路1f、加算器3e、3f、乗算器4f、4g、5f、5gは第1の実施形態と同じ動作をする回路であり、説明を省略する。全波整流回路2a、2bは、入力データが正の場合はそのまま出力し、入力データが負の場合は符号を反転させて正の値を出力する回路である。
【0046】
入力データXは全波整流回路2aに入力され、入力データYは全波整流回路2bに入力される。全波整流回路2aの出力は乗算器5fに入力され、全波整流器2bの出力は乗算器4fに入力される。
【0047】
乗算器5fの出力は2つに分岐され、一方は乗算器5gへ入力される。乗算器5fの出力の他方は、乗算器4fの出力とともに加算器3eへ入力される。加算器3eの出力は半波整流回路1fへ入力され、半波整流回路1fの出力は乗算器4gへ入力される。乗算器5gの出力および乗算器4gの出力はともに加算器3fへ入力される。加算器3fの出力は、本実施形態における絶対値比較回路の出力となる。
【0048】
次に、上述した第2の実施形態の動作を、図4を参照して説明する。図4は、入力データX、Yの条件に対応して、図2に示したA点〜D点におけるデータおよび出力データZがどのように値になるかを示した表である。図4におけるAbs(X)は、Xの絶対値を意味する。
【0049】
図2の絶対値比較回路の各部の動作は、入力データXが正および負の場合、入力データYが正および負の場合、入力データXの絶対値が入力データYの絶対値より大きいか小さいかのそれぞれの条件によって異なる。以下では、全8通りの条件について、図2の絶対値回路の動作を説明する。
【0050】
図4において、まず条件(1)で入力データX、Yともに正のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが正であるため、全波整流回路2a(第1の全波整流回路)の出力はX、A点のデータは−Xとなる。一方、入力データYが正であるため、全波整流回路2b(第2の全波整流回路)の出力はY、B点のデータはYとなる。
【0051】
C点のデータは、A点のデータ−Xが−1倍され、Xとなる。一方、A点のデータ−XとB点のデータYとが加算器3e(第1の加算回路)で加算され、−X+Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより大きく、−X+Yは負の値であり、半波整流回路1fの出力は0となる。D点のデータは0となり、C点のデータXと加算器3f(第2の加算回路)で加算され、出力データZはX、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0052】
続いて、条件(2)で入力データX、Yともに正のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データX、Yがともに正であるため、条件(1)と同様、A点のデータは−Xとなる、B点のデータはYとなる。
【0053】
C点のデータは、A点のデータ−Xが−1倍され、Xとなる。一方、A点のデータ−XとB点のデータYとが加算器3eで加算され、−X+Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより小さく、−X+Yは正の値であり、半波整流回路1fの出力はそのまま−X+Yとなる。D点のデータは−X+Yとなり、C点のデータXと加算器3fで加算され、出力データZはY、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0054】
続いて、条件(3)で入力データXが正のデータで、入力データYが負のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが正であるため、条件(1)と同様、A点のデータは−Xとなる。一方、入力データYが負であるため、全波整流回路2bの出力は−Y、B点のデータは−Yとなる。
【0055】
C点のデータは、A点のデータ−Xが−1倍され、Xとなる。一方、A点のデータ−XとB点のデータ−Yとが加算器3eで加算され、−X−Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより大きく、−X−Yは負の値であり、半波整流回路1fの出力は0となる。D点のデータは0となり、C点のデータXと加算器3fで加算され、出力データZはX、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0056】
続いて、条件(4)で入力データXが正のデータで、入力データYが負のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データXが正で、入力データYが負であるため、条件(3)と同様、A点のデータは−X、B点のデータは−Yとなる。
【0057】
C点のデータは、A点のデータ−Xが−1倍され、Xとなる。一方、A点のデータ−XとB点のデータ−Yとが加算器3eで加算され、−X−Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより小さく、−X−Yは正の値であり、半波整流回路1fの出力はそのまま−X−Yとなる。D点のデータは−X−Yとなり、C点のデータXと加算器3fで加算され、出力データZは−Y、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0058】
続いて、条件(5)で入力データXが負のデータで、入力データYが正のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが負であるため、全波整流回路2aの出力は−X、A点のデータはXとなる。一方、入力データYが正であるため、条件(1)と同様、B点のデータはYとなる。
【0059】
C点のデータは、A点のデータXが−1倍され、−Xとなる。一方、A点のデータXとB点のデータYとが加算器3eで加算され、X+Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより大きく、X+Yは負の値であり、半波整流回路1fの出力は0となる。D点のデータは0となり、C点のデータ−Xと加算器3fで加算され、出力データZは−X、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0060】
続いて、条件(6)で入力データXが負のデータで、入力データYが正のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データXが負で、入力データYが正であるため、条件(5)と同様、A点のデータはX、B点のデータはYとなる。
【0061】
C点のデータは、A点のデータXが−1倍され、−Xとなる。一方、A点のデータXとB点のデータYとが加算器3eで加算され、X+Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより小さく、X+Yは正の値であり、半波整流回路1fの出力はそのままX+Yとなる。D点のデータはX+Yとなり、C点のデータ−Xと加算器3fで加算され、出力データZはY、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0062】
続いて、条件(7)で入力データX、Yともに負のデータであり、絶対値は入力データXが入力データYより大きい場合について説明する。入力データXが負であるため、条件(5)と同様、A点のデータはXとなる。一方、入力データYが負であるため、条件(3)と同様、B点のデータは−Yとなる。
【0063】
C点のデータは、A点のデータXが−1倍され、−Xとなる。一方、A点のデータXとB点のデータ−Yとが加算器3eで加算され、X−Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより大きく、X−Yは負の値であり、半波整流回路1fの出力は0となる。D点のデータは0となり、C点のデータ−Xと加算器3fで加算され、出力データZは−X、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0064】
続いて、条件(8)で入力データX、Yともに負のデータであり、絶対値は入力データXが入力データYより小さい場合について説明する。入力データXが負であるため、条件(5)と同様、A点のデータはXとなる。一方、入力データYが負であるため、条件(3)と同様、B点のデータは−Yとなる。
【0065】
C点のデータは、A点のデータXが−1倍され、−Xとなる。一方、A点のデータXとB点のデータ−Yとが加算器3eで加算され、X−Yが半波整流回路1fへ入力される。ここで、絶対値はXの方がYより小さく、X−Yは正の値であり、半波整流回路1fの出力はそのままX−Yとなる。D点のデータはX−Yとなり、C点のデータ−Xと加算器3fで加算され、出力データZは−Y、すなわち入力データX、Yの絶対値のうち大きい値となる。
【0066】
以上、全8通りの全ての条件において説明したとおり、図2の絶対値比較回路は入力データXの絶対値と入力データYの絶対値の大きい方の値を出力する回路である。図2において比較器は使用されていないため、比較器を備えていないDSPを用いる場合でも、半波整流回路および全波整流回路を利用することにより図2の絶対値比較回路を実現することが可能である。
【0067】
図2の絶対値比較回路を実現するためには、DSPが全波整流回路を備えている必要があるが、図1と比較して回路構成が簡略化され、またDSPで使用するプログラムの量を削減できるという利点がある。
【0068】
図1、図2に示した絶対値比較回路は、ソフトウェアの処理でも実現することが可能であり、このとき、−1倍の乗算器は2の補数を取る処理に対応し、加算器は加算を行う処理に対応する。
【0069】
本発明の2つの実施形態は、例えば音源から出力されるステレオ音声データを構成する左右2つの楽音データをそれぞれ入力データX、Yとして入力し、左右どちらの楽音データの絶対値が大きいかを判定するときに適用できる。所定の音量を超えたときに圧縮をかけるコンプレッサでは、左右の楽音データに対して異なる比率で圧縮をかけると、出力する音声が聴取者に不自然に聞こえるため、左右の楽音データに対して同じ比率で圧縮をかける必要がある。
【0070】
このとき、左右の楽音データのうち音量の大きい(すなわち、楽音データの絶対値が大きい)方を基準として圧縮率を決める必要があり、ここで本発明で開示した絶対値比較回路を使用することで、絶対値の大きい楽音データを出力として取り出すことができる。
【0071】
以上、本発明の実施形態を詳述してきたが、具体的な構成は本実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0072】
本発明は、2つの入力値から絶対値の大きいほうを選択し出力する絶対値比較回路に用いて好適である。
【図面の簡単な説明】
【0073】
【図1】本発明の第1の実施形態にかかる絶対値比較回路の構成図である。
【図2】本発明の第2の実施形態にかかる絶対値比較回路の構成図である。
【図3】図1の絶対値比較回路の各部における出力データの値を示した表である。
【図4】図2の絶対値比較回路の各部における出力データの値を示した表である。
【図5】従来技術における絶対値比較回路の構成図である。
【符号の説明】
【0074】
1、1a、1b、1c、1d、1e、1f…半波整流回路、2a、2b…全波整流回路、3a、3b、3c、3d、3e、3f…加算器(加算回路)、10…符号なし比較回路、11a、11b…反転回路、12a、12b…1加算器

【特許請求の範囲】
【請求項1】
2つのデータを入力とし当該入力データの絶対値のうち大きい値を出力とする絶対値比較回路において、
前記2つのデータの入力の一方を2つに分岐し、その一方のデータを入力とする第1の半波整流回路と、
前記分岐した他方のデータに対して符号を反転させたものを入力とする第2の半波整流回路と、
前記第1の半波整流回路の出力に対して符号を反転したものと、前記第2の半波整流回路の出力に対して符号を反転したものとを加算する第1の加算回路と、
前記2つのデータの入力の他方を2つに分岐し、その一方のデータを入力とする第3の半波整流回路と、
前記分岐した他方のデータに対して符号を反転させたものを入力とする第4の半波整流回路と、
前記第3の半波整流回路の出力と、前記第4の半波整流回路の出力とを加算する第2の加算回路と、
前記第1の加算回路の出力と、前記第2の加算回路の出力とを加算する第3の加算回路と、
前記第3の加算回路の出力を入力とする第5の半波整流回路と、
前記第1の加算回路の出力に対して符号を反転させたものと、前記第5の半波整流回路の出力とを加算する第4の加算回路と、
を具備し、
前記第1ないし第5の半波整流回路は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力する回路であることを特徴とする絶対値比較回路。
【請求項2】
2つのデータを入力とし当該入力データの絶対値のうち大きい値を出力とする絶対値比較回路において、
前記2つのデータの入力の一方を入力とする第1の全波整流回路と、
前記2つのデータの入力の他方を入力とする第2の全波整流回路と、
前記第1の全波整流回路の出力に対して符号を反転させたものと、前記第2の全波整流回路の出力とを加算する第1の加算回路と、
前記第1の加算回路の出力を入力とする半波整流回路と、
前記第1の全波整流回路の出力と、前記半波整流回路の出力とを加算する第2の加算回路と、
を具備し、
前記半波整流回路は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力する回路であり、
前記第1及び第2の全波整流回路は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては当該データの符号を反転したものを出力する回路であることを特徴とする絶対値比較回路。
【請求項3】
2つのデータを入力し当該入力データの絶対値のうち大きい値を出力する絶対値比較プログラムにおいて、
コンピュータに、
前記2つのデータの入力の一方を2つに分岐し、その一方のデータを処理する第1の半波整流手順と、
前記分岐した他方のデータに対して符号を反転させたものを処理する第2の半波整流手順と、
前記第1の半波整流手順の出力に対して符号を反転したものと、前記第2の半波整流手順の出力に対して符号を反転したものとを加算する第1の加算手順と、
前記2つのデータの入力の他方を2つに分岐し、その一方のデータを処理する第3の半波整流手順と、
前記分岐した他方のデータに対して符号を反転させたものを処理する第4の半波整流手順と、
前記第3の半波整流手順の出力と、前記第4の半波整流手順の出力とを加算する第2の加算手順と、
前記第1の加算手順の出力と、前記第2の加算手順の出力とを加算する第3の加算手順と、
前記第3の加算手順の出力を処理する第5の半波整流手順と、
前記第1の加算手順の出力に対して符号を反転させたものと、前記第5の半波整流手順の出力とを加算する第4の加算手順と、
を実行させるための絶対値比較プログラムであって、
前記第1ないし第5の半波整流手順は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力することを特徴とする絶対値比較プログラム。
【請求項4】
2つのデータを入力し当該入力データの絶対値のうち大きい値を出力する絶対値比較プログラムにおいて、
コンピュータに、
前記2つのデータの入力の一方を処理する第1の全波整流手順と、
前記2つのデータの入力の他方を処理する第2の全波整流手順と、
前記第1の全波整流手順の出力に対して符号を反転させたものと、前記第2の全波整流手順の出力とを加算する第1の加算手順と、
前記第1の加算手順の出力を入力とする半波整流手順と、
前記第1の全波整流手順の出力と、前記半波整流手順の出力とを加算する第2の加算手順と、
を実行させるための絶対値比較プログラムであって、
前記半波整流手順は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては0を出力し、
前記第1及び第2の全波整流手順は、符号が正の入力データに対しては当該入力データと同じ値を出力し、符号が負の入力データに対しては当該データの符号を反転したものを出力することを特徴とする絶対値比較プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−58486(P2007−58486A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2005−242055(P2005−242055)
【出願日】平成17年8月24日(2005.8.24)
【出願人】(000004075)ヤマハ株式会社 (5,930)