JP2014139715A - 信号出力装置 - Google Patents
信号出力装置 Download PDFInfo
- Publication number
- JP2014139715A JP2014139715A JP2013008030A JP2013008030A JP2014139715A JP 2014139715 A JP2014139715 A JP 2014139715A JP 2013008030 A JP2013008030 A JP 2013008030A JP 2013008030 A JP2013008030 A JP 2013008030A JP 2014139715 A JP2014139715 A JP 2014139715A
- Authority
- JP
- Japan
- Prior art keywords
- signal value
- output
- update
- value
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Manipulation Of Pulses (AREA)
Abstract
【課題】乗算回路を用いずに、直線波形データを生成する信号出力装置を得る。
【解決手段】算出部60は、出力部50が更新回数=n回目(1≦n≦X−1)において出力した信号値Ynを入力し、出力部50が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出する。ここで、更新量ΔYn+1は「(目標値b−Yn)/(総更新回数X−n)+Yn」である。そして、出力部50は、更新回数=n+1回目に信号値Ynを「信号値Yn+1=信号値Yn+更新量ΔYn+1」へ更新し、信号値Yn+1を出力する。
【選択図】図1
【解決手段】算出部60は、出力部50が更新回数=n回目(1≦n≦X−1)において出力した信号値Ynを入力し、出力部50が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出する。ここで、更新量ΔYn+1は「(目標値b−Yn)/(総更新回数X−n)+Yn」である。そして、出力部50は、更新回数=n+1回目に信号値Ynを「信号値Yn+1=信号値Yn+更新量ΔYn+1」へ更新し、信号値Yn+1を出力する。
【選択図】図1
Description
本発明は、信号出力装置に関するものである。本発明は、特にデジタル信号を出力する信号出力装置に関するものである。
DAコンバータ等へ出力される任意の波形データを生成するデジタル回路がある。このデジタル回路は、直線波形データを生成する(例えば、特許文献1)。
ここで、直線波形データとは、初期値a(開始値a)から目標値b(終了値b)に向かって直線的に値が更新される(値が変化する)信号である。そして、初期値a、目標値b、総更新回数X(総出力回数X)が与えられた場合、直線波形データの更新回数(出力回数)n回目の出力値Ynは、以下の式にて求められる。
Yn=a+(b−a)×d。ここで、d=n/X(更新回数/総更新回数=割合)。
また、対数を用いることで、この直線波形データを生成するデジタル回路がある(例えば、特許文献2)。
ここで、直線波形データとは、初期値a(開始値a)から目標値b(終了値b)に向かって直線的に値が更新される(値が変化する)信号である。そして、初期値a、目標値b、総更新回数X(総出力回数X)が与えられた場合、直線波形データの更新回数(出力回数)n回目の出力値Ynは、以下の式にて求められる。
Yn=a+(b−a)×d。ここで、d=n/X(更新回数/総更新回数=割合)。
また、対数を用いることで、この直線波形データを生成するデジタル回路がある(例えば、特許文献2)。
例えば、特許文献1のように、初期値aを用いて各回の出力値Ynを生成しようとすると乗算回路が必要となる。そして、乗算回路は加算回路や減算回路に比べ、回路規模が大きくなり、回路面積増大に繋がるという課題がある。また、特許文献2では、基本となる差分値をメモリに記憶し、そのメモリから取り出した値を使用して演算を行っており、乗算は不要となるが、代わりに近似値を格納したメモリ(RAMまたはROM)が必要となる。更には、対数計算用のメモリも必要となる。その為、回路面積が増えてしまうという課題がある。
本発明は、例えば、乗算回路を用いずに、直線波形データを生成する信号出力装置を得ることを主な目的とする。
本発明に係る信号出力装置は、
予め設定された1回目〜X回目(Xは2以上の正の整数)の更新回数の各回において、信号値を更新し、更新した信号値を出力すると共に、更新回数=n回目(n=1)の前回である更新回数=n回目(n=0)に相当する初期状態に初期値の信号値を出力する出力部と、算出部とを備え、
(1)初期状態である更新回数=n回目(n=0)において、
前記出力部が、初期値aを信号値Y0として出力し、
前記算出部が、前記出力部が出力した信号値Y0を入力し、入力した信号値Y0から目標値bまでの差分量(b−Y0)を算出すると共に、算出した差分量(b−Y0)に基づいて、信号値Y0から、前記出力部が更新回数=n回目(n=1)に出力する信号値Y1への更新量ΔY1を算出し、
(2)更新回数=n回目(n=1)において、
前記出力部が、前記算出部により算出された更新量ΔY1に基づき、信号値Y0を信号値Y1へ更新し、信号値Y1を出力し、
前記算出部が、前記出力部が出力した信号値Y1を入力し、入力した信号値Y1から目標値bまでの差分量(b−Y1)を算出すると共に、算出した差分量(b−Y1)に基づいて、信号値Y1から、前記出力部が更新回数=n回目(n=2)に出力する信号値Y2への更新量ΔY2を算出し、
(3)更新回数=n回目(2≦n≦X−1)においても、更新回数=n回目(n=1)と同様に、
前記出力部が、前記算出部により算出された更新量ΔYnに基づき、信号値Yn−1を信号値Ynへ更新し、信号値Ynを出力し、
前記算出部が、前記出力部が出力した信号値Ynを入力し、入力した信号値Ynから目標値bまでの差分量(b−Yn)を算出すると共に、算出した差分量(b−Yn)に基づいて、信号値Ynから、前記出力部が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出し、
(4)更新回数=n回目(n=X)において、
前記出力部が、前記算出部により算出された更新量ΔYnに基づき、信号値Yn−1を目標値bへ更新し、目標値bを最終的に出力することを特徴とする。
予め設定された1回目〜X回目(Xは2以上の正の整数)の更新回数の各回において、信号値を更新し、更新した信号値を出力すると共に、更新回数=n回目(n=1)の前回である更新回数=n回目(n=0)に相当する初期状態に初期値の信号値を出力する出力部と、算出部とを備え、
(1)初期状態である更新回数=n回目(n=0)において、
前記出力部が、初期値aを信号値Y0として出力し、
前記算出部が、前記出力部が出力した信号値Y0を入力し、入力した信号値Y0から目標値bまでの差分量(b−Y0)を算出すると共に、算出した差分量(b−Y0)に基づいて、信号値Y0から、前記出力部が更新回数=n回目(n=1)に出力する信号値Y1への更新量ΔY1を算出し、
(2)更新回数=n回目(n=1)において、
前記出力部が、前記算出部により算出された更新量ΔY1に基づき、信号値Y0を信号値Y1へ更新し、信号値Y1を出力し、
前記算出部が、前記出力部が出力した信号値Y1を入力し、入力した信号値Y1から目標値bまでの差分量(b−Y1)を算出すると共に、算出した差分量(b−Y1)に基づいて、信号値Y1から、前記出力部が更新回数=n回目(n=2)に出力する信号値Y2への更新量ΔY2を算出し、
(3)更新回数=n回目(2≦n≦X−1)においても、更新回数=n回目(n=1)と同様に、
前記出力部が、前記算出部により算出された更新量ΔYnに基づき、信号値Yn−1を信号値Ynへ更新し、信号値Ynを出力し、
前記算出部が、前記出力部が出力した信号値Ynを入力し、入力した信号値Ynから目標値bまでの差分量(b−Yn)を算出すると共に、算出した差分量(b−Yn)に基づいて、信号値Ynから、前記出力部が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出し、
(4)更新回数=n回目(n=X)において、
前記出力部が、前記算出部により算出された更新量ΔYnに基づき、信号値Yn−1を目標値bへ更新し、目標値bを最終的に出力することを特徴とする。
本発明に係る信号出力装置は、更新回数=n回目にて出力した信号値Ynを用いて、更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出することで、信号値Yn+1の算出に初期値aを用いない。そのため、本発明に係る信号出力装置は、乗算回路を用いずに直線波形データを生成することが可能である。
実施の形態1.
(信号出力装置の構成)
図1は、信号出力装置100の構成の例を示す図である。
信号出力装置100は、直線波形データを生成する装置であり、換言すると、波形生成回路(波形生成装置)である。
信号出力装置100は、出力部50と算出部60とを備える。
出力部50は、加算器3と更新部40とを備え、更新部40は、セレクタ4と記憶素子5とを備える。また、算出部60は、減算器1a(第1の減算器)と減算器1b(第2の減算器)と除算器2とを備える。
直線波形データの具体例を示すと共に、信号出力装置の動作を以下に説明する。
(信号出力装置の構成)
図1は、信号出力装置100の構成の例を示す図である。
信号出力装置100は、直線波形データを生成する装置であり、換言すると、波形生成回路(波形生成装置)である。
信号出力装置100は、出力部50と算出部60とを備える。
出力部50は、加算器3と更新部40とを備え、更新部40は、セレクタ4と記憶素子5とを備える。また、算出部60は、減算器1a(第1の減算器)と減算器1b(第2の減算器)と除算器2とを備える。
直線波形データの具体例を示すと共に、信号出力装置の動作を以下に説明する。
(信号出力装置の動作の概要)
図2は、直線波形データの例を示す図である。
前述の通り、直線波形データとは、初期値aから目標値bに向かって直線的に値が更新される(変化する)信号である。
図2の縦軸は、信号出力装置100が出力する信号の信号値を示し、横軸は、信号出力装置100が信号の信号値を更新する更新回数を示す。この更新回数は、信号出力装置100が信号の信号値を更新し、更新した信号値を出力する出力回数と同じである。
出力部50は、予め設定された1回目〜X回目(Xは2以上の正の整数)の更新回数の各回において、信号値を更新し、更新した信号値を出力すると共に、更新回数=n回目(n=1)の前回である更新回数=n回目(n=0)に相当する初期状態に初期値の信号値を出力する。
図2は、直線波形データの例を示す図である。
前述の通り、直線波形データとは、初期値aから目標値bに向かって直線的に値が更新される(変化する)信号である。
図2の縦軸は、信号出力装置100が出力する信号の信号値を示し、横軸は、信号出力装置100が信号の信号値を更新する更新回数を示す。この更新回数は、信号出力装置100が信号の信号値を更新し、更新した信号値を出力する出力回数と同じである。
出力部50は、予め設定された1回目〜X回目(Xは2以上の正の整数)の更新回数の各回において、信号値を更新し、更新した信号値を出力すると共に、更新回数=n回目(n=1)の前回である更新回数=n回目(n=0)に相当する初期状態に初期値の信号値を出力する。
そして、実施の形態1の信号出力装置100は、以下の式に基づいた信号値を出力する。
「信号値Yn+1=(b−Yn)/(X−n)+Yn」。
ここで、目標値bと予め設定されたX回目(Xは2以上の正の整数)は、定数である。
また、信号値Ynは、信号出力装置100がn回目に更新した信号値であり、信号値Yn+1は、信号出力装置100がn回目の次の回であるn+1回目に更新する信号値である。すなわち、回数nと信号値Ynと信号値Yn+1とは変数である。
信号出力装置100が図2に示す直線波形データを出力する動作の詳細を以下に説明する。
「信号値Yn+1=(b−Yn)/(X−n)+Yn」。
ここで、目標値bと予め設定されたX回目(Xは2以上の正の整数)は、定数である。
また、信号値Ynは、信号出力装置100がn回目に更新した信号値であり、信号値Yn+1は、信号出力装置100がn回目の次の回であるn+1回目に更新する信号値である。すなわち、回数nと信号値Ynと信号値Yn+1とは変数である。
信号出力装置100が図2に示す直線波形データを出力する動作の詳細を以下に説明する。
(初期状態における動作:n=0)
図1に示すように、セレクタ4には、加算器3からの出力と初期値aとinit信号とが入力される。
初期状態である更新回数=n回目(n=0)において、init信号は「1(High)」となっている。そして、セレクタ4は、init信号が「1(High)」の場合、初期値aを選択して、記憶素子5に出力する。
ここで、図示は省略するが、信号出力装置100は、初期値aを記憶するメモリを備えており、セレクタ4は当該メモリから初期値aを入力する。
記憶素子5は、セレクタ4から出力された初期値aを記憶すると共に、記憶した初期値aを信号値Y0として出力し続ける。すなわち、出力部50は、初期状態において初期値aを信号値Y0として出力する。
つまり、「信号値Y0=初期値a」である。
図1に示すように、セレクタ4には、加算器3からの出力と初期値aとinit信号とが入力される。
初期状態である更新回数=n回目(n=0)において、init信号は「1(High)」となっている。そして、セレクタ4は、init信号が「1(High)」の場合、初期値aを選択して、記憶素子5に出力する。
ここで、図示は省略するが、信号出力装置100は、初期値aを記憶するメモリを備えており、セレクタ4は当該メモリから初期値aを入力する。
記憶素子5は、セレクタ4から出力された初期値aを記憶すると共に、記憶した初期値aを信号値Y0として出力し続ける。すなわち、出力部50は、初期状態において初期値aを信号値Y0として出力する。
つまり、「信号値Y0=初期値a」である。
ここで、記憶素子5は例えばフリップフロップ回路である。
図示は省略するが、信号出力装置100は、周期的なクロック信号(クロックパルス)を生成するクロック信号生成回路を備えている。そして、クロック信号生成回路は、このクロック信号を記憶素子5に出力する。
記憶素子5はクロック信号が入力された時(例えば、クロック信号が「0(Low)」から「1(High)」に立ちあがる時)に、信号入力端子に入力されている信号値を新たに記憶し、次のクロック信号が入力されるまで、記憶した信号値を出力し続ける。そして、記憶素子5は次のクロック信号が入力されると、次のクロック信号が入力された時に、信号入力端子に入力されている信号値を新たに記憶する。
図示は省略するが、信号出力装置100は、周期的なクロック信号(クロックパルス)を生成するクロック信号生成回路を備えている。そして、クロック信号生成回路は、このクロック信号を記憶素子5に出力する。
記憶素子5はクロック信号が入力された時(例えば、クロック信号が「0(Low)」から「1(High)」に立ちあがる時)に、信号入力端子に入力されている信号値を新たに記憶し、次のクロック信号が入力されるまで、記憶した信号値を出力し続ける。そして、記憶素子5は次のクロック信号が入力されると、次のクロック信号が入力された時に、信号入力端子に入力されている信号値を新たに記憶する。
なお、信号出力装置100は、デジタル回路である。そして、信号値は複数ビットで表わされ、当該複数ビット分の処理がパラレルに行われるが、このパラレル処理の説明は、実施の形態1においては省略する(実施の形態2以降についても同様)。
具体例として、記憶素子5は、当該複数ビットの各ビットに対し記憶素子がそれぞれ備えられるが、複数の記憶素子の図示及びパラレル処理の説明を省略し、単に1つの記憶素子5として図示し、説明を進める。他の構成要素も同様である。
具体例として、記憶素子5は、当該複数ビットの各ビットに対し記憶素子がそれぞれ備えられるが、複数の記憶素子の図示及びパラレル処理の説明を省略し、単に1つの記憶素子5として図示し、説明を進める。他の構成要素も同様である。
出力部50が信号値Y0を出力すると、算出部60の減算器1aは、前記出力部が出力した信号値Y0と目標値bとを入力し、入力した信号値Y0から目標値bまでの差分量(b−Y0)を算出し、算出した差分量(b−Y0)を出力する。また、算出部60の減算器1bは、出力部50の更新回数n(n=0)と、更新回数のX回目の回数X(総更新回数X)を入力し、回数Xから更新回数nを減算し、減算した結果を残回数(X−n)=(X−0)=Xとして出力する。
ここで、図示は省略するが、信号出力装置100は、目標値bを記憶するメモリを備えており、減算器1aは当該メモリから目標値bを入力する。また、信号出力装置100は、回数Xを記憶するメモリを備えており、減算器1aは当該メモリから回数X(総更新回数X)を入力する。更に、図示は省略するが、信号出力装置100は、更新回数nをカウントするカウント回路を備えており、減算器1aは当該カウント回路から更新回数nを入力する。
ここで、図示は省略するが、信号出力装置100は、目標値bを記憶するメモリを備えており、減算器1aは当該メモリから目標値bを入力する。また、信号出力装置100は、回数Xを記憶するメモリを備えており、減算器1aは当該メモリから回数X(総更新回数X)を入力する。更に、図示は省略するが、信号出力装置100は、更新回数nをカウントするカウント回路を備えており、減算器1aは当該カウント回路から更新回数nを入力する。
そして、算出部60の除算器2は、減算器1aが出力した差分量(b−Y0)と減算器1bが出力した残回数(X−n)=(X−0)=Xとを入力し、差分量(b−Y0)を残回数(X−n)=Xで除算し、除算した結果を更新量ΔY1として出力する。すなわち、除算器2は、減算器1aが出力した差分量(b−Y0)に基づいて、信号値Y0から、出力部50が更新回数=n回目(n=1)に出力する信号値Y1への更新量ΔY1を算出する。
更に、出力部50の加算器3は、除算器2が出力した更新量ΔY1を入力し、信号値Y0と更新量ΔY1とを加算し、加算した結果を信号値Y1としてセレクタ4に出力する。
すなわち、「信号値Y1=(b−Y0)/(X−n)+Y0=(b−a)/X+a」となる。
すなわち、「信号値Y1=(b−Y0)/(X−n)+Y0=(b−a)/X+a」となる。
この時点においては、セレクタ4は、初期値aを選択したままであり、記憶素子5は、初期値aを信号値Y0として出力している。
(更新回数=1回目における動作:n=1)
そして、信号出力装置100が信号値の更新処理を開始すると、カウント回路は、更新処理開始直後のクロック信号を更新回数=1回目としてカウントする。
そして、信号出力装置100が信号値の更新処理を開始すると、カウント回路は、更新処理開始直後のクロック信号を更新回数=1回目としてカウントする。
更に、信号出力装置100が信号値の更新処理を開始すると、init信号が「0(Low)」になる。セレクタ4は、init信号が「0(Low)」になると、加算器3から出力された信号値Y1を選択して、信号値Y1を記憶素子5に出力する。つまり、更新回数=n回目(n=1)となったことを契機として、セレクタ4は、初期値aから信号値Y1へ選択を切り替えて、信号値Y1を記憶素子5に出力する。
一方、記憶素子5もカウント回路が更新回数=1回目としてカウントしたクロック信号を入力することにより、新たな信号値を記憶する。つまり、記憶素子5は、更新回数=n回目(n=1)となったことを契機として、セレクタ4から出力された信号値Y1を記憶すると共に、記憶した信号値Y1を出力する。
すなわち、更新回数=n回目(n=1)において、出力部50は、算出部60により算出された更新量ΔY1に基づき、信号値Y0を信号値Y1へ更新し、信号値Y1を出力する。
一方、記憶素子5もカウント回路が更新回数=1回目としてカウントしたクロック信号を入力することにより、新たな信号値を記憶する。つまり、記憶素子5は、更新回数=n回目(n=1)となったことを契機として、セレクタ4から出力された信号値Y1を記憶すると共に、記憶した信号値Y1を出力する。
すなわち、更新回数=n回目(n=1)において、出力部50は、算出部60により算出された更新量ΔY1に基づき、信号値Y0を信号値Y1へ更新し、信号値Y1を出力する。
一方、算出部60の減算器1aは、前記出力部が出力した信号値Y1と目標値bとを入力し、入力した信号値Y1から目標値bまでの差分量(b−Y1)を算出し、算出した差分量(b−Y1)を出力する。また、算出部60の減算器1bは、出力部50の更新回数n(n=1)と、更新回数のX回目の回数Xを入力し、回数Xから更新回数n=1を減算し、減算した結果を残回数(X−n)=(X−1)として出力する。
更に、算出部60の除算器2は、減算器1aが出力した差分量(b−Y1)と減算器1bが出力した残回数(X−1)とを入力し、差分量(b−Y1)を残回数(X−1)で除算し、除算した結果を更新量ΔY1として出力する。すなわち、除算器2は、減算器1aが出力した差分量(b−Y1)に基づいて、信号値Y1から、出力部50が更新回数=n回目(n=2)に出力する信号値Y2への更新量ΔY2を算出する。
そして、出力部50の加算器3は、除算器2が出力した更新量ΔY2を入力し、信号値Y1と更新量ΔY2とを加算し、加算した結果を信号値Y2としてセレクタ4に出力する。
すなわち、「信号値Y2=(b−Y1)/(X−n)+Y1=(b−Y1)/(X−1)+Y1」となる。
すなわち、「信号値Y2=(b−Y1)/(X−n)+Y1=(b−Y1)/(X−1)+Y1」となる。
セレクタ4は、信号値Y2を記憶素子5に出力するが、この時点においては、更新処理開始後から2回目のクロック信号が発生しておらず、記憶素子5は、新たな信号値Y2が入力されていても、新たな信号値Y2を記憶しない。その為、記憶素子5は、信号値Y1を出力している。
そして、2回目のクロック信号が発生した時点で、カウント回路が更新回数=2回目とカウントすると共に、記憶素子5が新たな信号値Y2を記憶し、記憶した信号値Y2を出力する。
すなわち、記憶素子5とは、信号値が更新されるタイミングで、更新された信号値を選択し、出力する。
そして、2回目のクロック信号が発生した時点で、カウント回路が更新回数=2回目とカウントすると共に、記憶素子5が新たな信号値Y2を記憶し、記憶した信号値Y2を出力する。
すなわち、記憶素子5とは、信号値が更新されるタイミングで、更新された信号値を選択し、出力する。
(更新回数=n回目(2≦n≦X−1)における動作)
更新回数=n回目(2≦n≦X−1)においても、更新回数=n回目(n=1)と同様である。
ここで、更新回数=n回目とし、更新回数=n回目において出力部が出力する信号値を信号値Ynとして説明を進める。
更新回数=n回目(2≦n≦X−1)においても、更新回数=n回目(n=1)と同様である。
ここで、更新回数=n回目とし、更新回数=n回目において出力部が出力する信号値を信号値Ynとして説明を進める。
更新回数=n回目において、記憶素子5は、セレクタ4から出力された信号値Ynを記憶すると共に、記憶した信号値Ynを出力する。すなわち、更新回数=n回目において、出力部50は、算出部60により算出された更新量ΔYnに基づき、信号値Yn−1を信号値Ynへ更新し、信号値Ynを出力する。ここで、信号値Yn−1は、出力部が更新回数=n回目の直前の回(更新回数=n−1回目)に出力していた信号値である。
一方、算出部60の減算器1aは、前記出力部が出力した信号値Ynと目標値bとを入力し、入力した信号値Ynから目標値bまでの差分量(b−Yn)を算出し、算出した差分量(b−Yn)を出力する。換言すると、減算器1aは、目標値bから更新回数=n回目の信号値Ynを減算し、減算した結果を差分量(b−Yn)として出力する。
また、算出部60の減算器1bは、出力部50の更新回数nと、更新回数のX回目の回数Xを入力し、回数Xから更新回数nを減算し、減算した結果を残回数(X−n)として出力する。
更に、算出部60の除算器2は、減算器1aが出力した差分量(b−Yn)と減算器1bが出力した残回数(X−n)とを入力し、差分量(b−Yn)を残回数(X−n)で除算し、除算した結果を更新量ΔYn+1として出力する。すなわち、除算器2は、減算器1aが出力した差分量(b−Yn)に基づいて、信号値Ynから、出力部50が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出する。
なお、ここで説明した算出部60の動作は、初期状態(更新回数=0回目(n=0))においても、同様である。
また、算出部60の減算器1bは、出力部50の更新回数nと、更新回数のX回目の回数Xを入力し、回数Xから更新回数nを減算し、減算した結果を残回数(X−n)として出力する。
更に、算出部60の除算器2は、減算器1aが出力した差分量(b−Yn)と減算器1bが出力した残回数(X−n)とを入力し、差分量(b−Yn)を残回数(X−n)で除算し、除算した結果を更新量ΔYn+1として出力する。すなわち、除算器2は、減算器1aが出力した差分量(b−Yn)に基づいて、信号値Ynから、出力部50が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出する。
なお、ここで説明した算出部60の動作は、初期状態(更新回数=0回目(n=0))においても、同様である。
そして、出力部50の加算器3は、除算器2が出力した更新量ΔYn+1を入力し、更新回数=n回目の信号値Ynと更新量ΔYn+1とを加算し、加算した結果を信号値Yn+1としてセレクタ4に出力する。
すなわち、「信号値Yn+1=(b−Yn)/(X−n)+Yn」となる。
セレクタ4は、信号値Yn+1を記憶素子5に出力する。
更新回数=n+1回目において、記憶素子5は、セレクタ4から出力された信号値Yn+1を記憶すると共に、記憶した信号値Yn+1を出力する。すなわち、更新回数=n+1回目において、出力部50は、算出部60により算出された更新量ΔYn+1に基づき、信号値Ynを信号値Yn+1へ更新し、信号値Yn+1を出力する。
すなわち、更新部40(セレクタ4及び記憶素子5)は、加算器3が出力した信号値Yn+1を入力し、更新回数=n+1回目において、更新回数=n回目の信号値Ynを入力した信号値Yn+1に更新し、信号値Yn+1を出力する。
なお、ここで説明した出力部50の動作は、初期状態(更新回数=0回目(n=0))においても、同様である。
すなわち、「信号値Yn+1=(b−Yn)/(X−n)+Yn」となる。
セレクタ4は、信号値Yn+1を記憶素子5に出力する。
更新回数=n+1回目において、記憶素子5は、セレクタ4から出力された信号値Yn+1を記憶すると共に、記憶した信号値Yn+1を出力する。すなわち、更新回数=n+1回目において、出力部50は、算出部60により算出された更新量ΔYn+1に基づき、信号値Ynを信号値Yn+1へ更新し、信号値Yn+1を出力する。
すなわち、更新部40(セレクタ4及び記憶素子5)は、加算器3が出力した信号値Yn+1を入力し、更新回数=n+1回目において、更新回数=n回目の信号値Ynを入力した信号値Yn+1に更新し、信号値Yn+1を出力する。
なお、ここで説明した出力部50の動作は、初期状態(更新回数=0回目(n=0))においても、同様である。
以上の動作をまとめると、算出部60は、出力部50が更新回数=n回目(1≦n≦X−1)において出力した信号値Ynを入力し、入力した信号値Ynから目標値bまでの差分量(b−Yn)を算出する。更に、算出部60は、算出した差分量(b−Yn)に基づいて、出力部50がn回目に出力した信号値Ynから、出力部50が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出する。
そして、出力部50は、算出部により算出された更新量ΔYn+1に基づき、更新回数=n+1回目に信号値Ynを信号値Yn+1へ更新する。すなわち、出力部50は、直前の回に出力した信号値Ynを用いて信号値Ynを信号値Yn+1に更新し、信号値Yn+1を出力する。
そして、出力部50は、算出部により算出された更新量ΔYn+1に基づき、更新回数=n+1回目に信号値Ynを信号値Yn+1へ更新する。すなわち、出力部50は、直前の回に出力した信号値Ynを用いて信号値Ynを信号値Yn+1に更新し、信号値Yn+1を出力する。
(更新回数=n回目(n=X)における動作)
更新回数=X−1回目において、出力部50の加算器3は、「信号値Yn+1=(b−Yn)/(X−(X−1))+Yn=b」を算出する。セレクタ4は目標値bを記憶素子5に出力する。
そして、更新回数=X回目において、記憶素子5は、セレクタ4から出力された目標値bを記憶すると共に、記憶した目標値bを出力する。すなわち、更新回数=X回目において、出力部50は、算出部60により算出された更新量ΔYnに基づき、信号値Yn−1を目標値bへ更新し、目標値bを最終的に出力する。
更新回数=X−1回目において、出力部50の加算器3は、「信号値Yn+1=(b−Yn)/(X−(X−1))+Yn=b」を算出する。セレクタ4は目標値bを記憶素子5に出力する。
そして、更新回数=X回目において、記憶素子5は、セレクタ4から出力された目標値bを記憶すると共に、記憶した目標値bを出力する。すなわち、更新回数=X回目において、出力部50は、算出部60により算出された更新量ΔYnに基づき、信号値Yn−1を目標値bへ更新し、目標値bを最終的に出力する。
(実施の形態1の効果)
図3は、従来の直線波形データの算出処理を示す図である。
従来は、「信号値Yn=a+(b−a)×(n/X)」の式で信号値Ynを算出しているので、図3に示すように乗算器が必要であった。
一方、実施の形態1の信号出力装置100は、「信号値Yn+1=(b−Yn)/(X−n)+Yn」の式で、直前の信号値Ynを用いて、次の信号値Yn+1を算出する。
つまり、実施の形態1の信号出力装置100は、初動(更新回数1回目)以外は初期値aを使うことなく、現在値(n回目の信号値)を用いることで、次の回(n+1回目)の信号値を算出することが可能である。
その為、初期値からの経過時間分、乗算処理する必要がなくなるため、乗算器が必要なくなる。そして、回路面積を削減することが可能である。
図3は、従来の直線波形データの算出処理を示す図である。
従来は、「信号値Yn=a+(b−a)×(n/X)」の式で信号値Ynを算出しているので、図3に示すように乗算器が必要であった。
一方、実施の形態1の信号出力装置100は、「信号値Yn+1=(b−Yn)/(X−n)+Yn」の式で、直前の信号値Ynを用いて、次の信号値Yn+1を算出する。
つまり、実施の形態1の信号出力装置100は、初動(更新回数1回目)以外は初期値aを使うことなく、現在値(n回目の信号値)を用いることで、次の回(n+1回目)の信号値を算出することが可能である。
その為、初期値からの経過時間分、乗算処理する必要がなくなるため、乗算器が必要なくなる。そして、回路面積を削減することが可能である。
実施の形態2.
実施の形態2について、主に実施の形態1との差異を説明する。
図4は、実施の形態2の更新部40の例を示す図である。
実施の形態2では、更新部40は、記憶素子5の代わりに、タイミング管理機能付き記憶素子6(記憶部)を有する。
このタイミング管理機能付き記憶素子6は、例えばイネーブル付きのフリップフロップ回路である。なお、タイミング管理機能付き記憶素子6は後述で説明の動作と同様の動作が可能であれば、イネーブル付きのフリップフロップ回路に限定されるものではない。
実施の形態2について、主に実施の形態1との差異を説明する。
図4は、実施の形態2の更新部40の例を示す図である。
実施の形態2では、更新部40は、記憶素子5の代わりに、タイミング管理機能付き記憶素子6(記憶部)を有する。
このタイミング管理機能付き記憶素子6は、例えばイネーブル付きのフリップフロップ回路である。なお、タイミング管理機能付き記憶素子6は後述で説明の動作と同様の動作が可能であれば、イネーブル付きのフリップフロップ回路に限定されるものではない。
図示は省略するが、信号出力装置100は、初期状態時と信号値の更新のタイミングになった時とに、renewal信号(renewalパルス)を出力する(renewal信号を「1(High)」として出力する)renewal信号生成回路を備える。
そして、タイミング管理機能付き記憶素子6は、クロック信号に依存せず、例えばrenewal信号が「1」である場合に、セレクタ4が出力した信号値を記憶し、記憶した信号値を出力する。
なお、カウント回路は、実施の形態1と異なり、クロック信号ではなく、renewal信号を更新回数としてカウントする。
動作の詳細を以下に説明する。
そして、タイミング管理機能付き記憶素子6は、クロック信号に依存せず、例えばrenewal信号が「1」である場合に、セレクタ4が出力した信号値を記憶し、記憶した信号値を出力する。
なお、カウント回路は、実施の形態1と異なり、クロック信号ではなく、renewal信号を更新回数としてカウントする。
動作の詳細を以下に説明する。
(初期状態における動作)
セレクタ4は、実施の形態1と同様に初期値aを出力する。
初期状態時において、renewal信号は「1」であり、タイミング管理機能付き記憶素子6は、セレクタ4から出力された初期値aを記憶すると共に、記憶した初期値aを信号値Y0として出力し続ける。
算出部60は、実施の形態1と同様に、更新量ΔY1を算出する。そして、出力部50の加算器3及びセレクタ4は、実施の形態1と同様に、信号値Y1を出力する。
セレクタ4は、実施の形態1と同様に初期値aを出力する。
初期状態時において、renewal信号は「1」であり、タイミング管理機能付き記憶素子6は、セレクタ4から出力された初期値aを記憶すると共に、記憶した初期値aを信号値Y0として出力し続ける。
算出部60は、実施の形態1と同様に、更新量ΔY1を算出する。そして、出力部50の加算器3及びセレクタ4は、実施の形態1と同様に、信号値Y1を出力する。
(更新回数=1回目における動作)
信号値の更新の1回目のタイミングになった時に、renewal信号生成回路は、1回目のrenewal信号を出力する。
なお、信号値の更新のタイミングは、予め設定されており周期的でもよいし、周期的でなくてもよい。
そして、カウント回路は、1回目のrenewal信号を更新回数=1回目としてカウントする。
更に、実施の形態1と同様に、セレクタ4は、信号値Y1をタイミング管理機能付き記憶素子6に出力する。
信号値の更新の1回目のタイミングになった時に、renewal信号生成回路は、1回目のrenewal信号を出力する。
なお、信号値の更新のタイミングは、予め設定されており周期的でもよいし、周期的でなくてもよい。
そして、カウント回路は、1回目のrenewal信号を更新回数=1回目としてカウントする。
更に、実施の形態1と同様に、セレクタ4は、信号値Y1をタイミング管理機能付き記憶素子6に出力する。
タイミング管理機能付き記憶素子6は、1回目のrenewal信号を入力することにより、信号値Y1を記憶すると共に、記憶した信号値Y1を出力する。
すなわち、タイミング管理機能付き記憶素子6は、更新回数=n回目(0≦n≦X−1)の信号値Ynを記憶すると共に、記憶している信号値Ynを継続して出力し、更新回数=n+1において、信号値Ynを信号値Yn+1に更新し、信号値Ynの代わりに更新した信号値Yn+1を新たに記憶し、記憶している信号値Yn+1を継続して出力する。
すなわち、タイミング管理機能付き記憶素子6は、更新回数=n回目(0≦n≦X−1)の信号値Ynを記憶すると共に、記憶している信号値Ynを継続して出力し、更新回数=n+1において、信号値Ynを信号値Yn+1に更新し、信号値Ynの代わりに更新した信号値Yn+1を新たに記憶し、記憶している信号値Yn+1を継続して出力する。
そして、算出部60は、実施の形態1と同様に更新量ΔY2を算出し、出力部50の加算器3及びセレクタ4は、実施の形態1と同様に、信号値Y2を出力する。
ここで、実施の形態1では、次のクロック信号が発生すると、算出部60及び出力部50の加算器3の算出処理中であっても、記憶素子5が記憶する信号値は更新されてしまう。一方、実施の形態2では、renewal信号によりタイミング管理機能付き記憶素子6が記憶する信号値が更新されるので、次のクロック信号が発生しても構わない。すなわち、算出部60及び出力部50の加算器3の算出処理が1クロック以上かかってもよい。
ここで、実施の形態1では、次のクロック信号が発生すると、算出部60及び出力部50の加算器3の算出処理中であっても、記憶素子5が記憶する信号値は更新されてしまう。一方、実施の形態2では、renewal信号によりタイミング管理機能付き記憶素子6が記憶する信号値が更新されるので、次のクロック信号が発生しても構わない。すなわち、算出部60及び出力部50の加算器3の算出処理が1クロック以上かかってもよい。
そして、信号値の更新の2回目のタイミングになった時に、renewal信号生成回路は、2回目のrenewal信号を出力し、カウント回路は、2回目のrenewal信号を更新回数=2回目としてカウントする。
そして、タイミング管理機能付き記憶素子6は、2回目のrenewal信号を入力することにより、信号値Y2を記憶すると共に、記憶した信号値Y2を出力する。
以降の処理は、説明を省略する。
そして、タイミング管理機能付き記憶素子6は、2回目のrenewal信号を入力することにより、信号値Y2を記憶すると共に、記憶した信号値Y2を出力する。
以降の処理は、説明を省略する。
(実施の形態2の効果)
算出部60及び出力部50の加算器3の算出処理が1クロック以上かかる場合においても、実施の形態1と同様の効果を得ることができる。
算出部60及び出力部50の加算器3の算出処理が1クロック以上かかる場合においても、実施の形態1と同様の効果を得ることができる。
実施の形態3.
本実施の形態について、主に実施の形態1との差異を説明する。
図5は、実施の形態3の信号出力装置100の例を示す図である。
実施の形態3の信号出力装置100は、出力部50と算出部60とに加え、カウント回路10とタイミング管理部11とを備える。
算出部60は、実施の形態1の構成に加え、誤差補正部9を備える。誤差補正部9は、除算器2の除算により生じる誤差を補正する。誤差補正部9は、例えば小数点以下の四捨五入を行うが、四捨五入に限らず、どのような誤差補正でも良い。信号出力装置100から出力される信号値において、誤差を許容できるならば、誤差補正部9は、無くても良い。
カウント回路10は、実施の形態1及び実施の形態2では図示を省略していたカウント回路の具体例である。カウント回路10は加算器3a、セレクタ4b、記憶素子5a、比較器8aを備える。
タイミング管理部11は、比較器8b、ANDゲート7を備える。タイミング管理部11は、信号値を更新するタイミングを管理している。
出力部50は実施の形態1の構成に加え、セレクタ4aを備える。
動作の詳細を以下に説明する。
本実施の形態について、主に実施の形態1との差異を説明する。
図5は、実施の形態3の信号出力装置100の例を示す図である。
実施の形態3の信号出力装置100は、出力部50と算出部60とに加え、カウント回路10とタイミング管理部11とを備える。
算出部60は、実施の形態1の構成に加え、誤差補正部9を備える。誤差補正部9は、除算器2の除算により生じる誤差を補正する。誤差補正部9は、例えば小数点以下の四捨五入を行うが、四捨五入に限らず、どのような誤差補正でも良い。信号出力装置100から出力される信号値において、誤差を許容できるならば、誤差補正部9は、無くても良い。
カウント回路10は、実施の形態1及び実施の形態2では図示を省略していたカウント回路の具体例である。カウント回路10は加算器3a、セレクタ4b、記憶素子5a、比較器8aを備える。
タイミング管理部11は、比較器8b、ANDゲート7を備える。タイミング管理部11は、信号値を更新するタイミングを管理している。
出力部50は実施の形態1の構成に加え、セレクタ4aを備える。
動作の詳細を以下に説明する。
(初期状態における動作)
セレクタ4には、RSTN信号が入力されている。初期状態である更新回数=n回目(n=0)において、RSTN信号は「0(Low)」である。セレクタ4は、RSTN信号が「0(Low)」の場合、初期値aを出力する。
記憶素子5は、セレクタ4から出力された初期値aを記憶すると共に、記憶した初期値aを信号値Y0として出力する。
出力部50の加算器3及びセレクタ4aと、算出部60の減算器1bとは、この信号値Y0を入力する。
算出部60は、実施の形態1と同様に、更新量ΔY1を算出する。ここで、カウント回路10の記憶素子5aは、初期状態において「0(Low)」を出力している。なお、誤差補正部9の処理は説明を省略する。そして、出力部50の加算器3は、実施の形態1と同様に、信号値Y1を出力する。
セレクタ4には、RSTN信号が入力されている。初期状態である更新回数=n回目(n=0)において、RSTN信号は「0(Low)」である。セレクタ4は、RSTN信号が「0(Low)」の場合、初期値aを出力する。
記憶素子5は、セレクタ4から出力された初期値aを記憶すると共に、記憶した初期値aを信号値Y0として出力する。
出力部50の加算器3及びセレクタ4aと、算出部60の減算器1bとは、この信号値Y0を入力する。
算出部60は、実施の形態1と同様に、更新量ΔY1を算出する。ここで、カウント回路10の記憶素子5aは、初期状態において「0(Low)」を出力している。なお、誤差補正部9の処理は説明を省略する。そして、出力部50の加算器3は、実施の形態1と同様に、信号値Y1を出力する。
ここで、前述の通り、カウント回路10の記憶素子5aは、初期状態において「0(Low)」を出力しており、比較器8aはメモリに記憶された回数Xと記憶素子5aの出力とを比較する。
ここで、回数Xは、例えば「6回」として説明を進める。この場合、回数Xと記憶素子5aの出力「0」とは等しくないので、比較器8aは「0(Low)」を出力する。また、加算器3aには記憶素子5aの出力「0」が更新回数nとして入力される。
加算器3aは、「更新回数n=0」に「1」を加算し、セレクタ4bは、比較器8aからの信号が「0」である為に、加算器3aの出力である「更新回数n=1」を出力する。
ここで、記憶素子5aは、イネーブル付きのD型フリップフロップ回路であり、例えば、renewal信号が「0(Low)」から「1(High)」に立ちあがる際に「更新回数n=1」を記憶する。この場合、記憶素子5aは、「更新回数n=1」を記憶せず、「0」を出力し続ける。
ここで、回数Xは、例えば「6回」として説明を進める。この場合、回数Xと記憶素子5aの出力「0」とは等しくないので、比較器8aは「0(Low)」を出力する。また、加算器3aには記憶素子5aの出力「0」が更新回数nとして入力される。
加算器3aは、「更新回数n=0」に「1」を加算し、セレクタ4bは、比較器8aからの信号が「0」である為に、加算器3aの出力である「更新回数n=1」を出力する。
ここで、記憶素子5aは、イネーブル付きのD型フリップフロップ回路であり、例えば、renewal信号が「0(Low)」から「1(High)」に立ちあがる際に「更新回数n=1」を記憶する。この場合、記憶素子5aは、「更新回数n=1」を記憶せず、「0」を出力し続ける。
一方、タイミング管理部11の比較器8bは、メモリに記憶された「回数X=6回」を「IN2」として入力する。
更に、比較器8bは、カウント回路10の記憶素子5aの出力「更新回数n=0」を「IN1」として入力する。
比較器8bは、「IN1」と「IN2」とを比較し、「IN1≦IN2」の場合に「1(High)」を出力する。
ここで、ANDゲート7は、比較器8bの出力とrenewal信号との両方が「1(High)」である場合に「1(High)」を出力するので、初期状態においては、ANDゲート7は、「0(Low)」を出力する。
更に、比較器8bは、カウント回路10の記憶素子5aの出力「更新回数n=0」を「IN1」として入力する。
比較器8bは、「IN1」と「IN2」とを比較し、「IN1≦IN2」の場合に「1(High)」を出力する。
ここで、ANDゲート7は、比較器8bの出力とrenewal信号との両方が「1(High)」である場合に「1(High)」を出力するので、初期状態においては、ANDゲート7は、「0(Low)」を出力する。
そして、セレクタ4aは、ANDゲート7の出力が「0(Low)」の場合は、加算器3から出力される信号値Y1ではなく、記憶素子5から出力される信号値Y0を選択して出力する。
(更新回数=1回目における動作)
信号出力装置100が信号値の更新処理を開始すると、RSTN信号は「1(High)」に設定され、セレクタ4は、セレクタ4aから入力した信号値を選択して出力するが、この時点では、セレクタ4aは信号値Y0を出力しているので、セレクタ4が出力する信号値に変化はない。
信号出力装置100が信号値の更新処理を開始すると、RSTN信号は「1(High)」に設定され、セレクタ4は、セレクタ4aから入力した信号値を選択して出力するが、この時点では、セレクタ4aは信号値Y0を出力しているので、セレクタ4が出力する信号値に変化はない。
実施の形態2と同様に、信号値の更新の1回目のタイミングになった時に、renewal信号生成回路は、1回目のrenewal信号を出力する。
ここで、renewal信号が例えば、1μs、10μs、100μs等の一定周期で発生することで、信号出力装置100が一定時間ごとに信号値を更新するようになる。すなわち、更新回数nを時間に変換して制御することが可能である。
ここで、renewal信号が例えば、1μs、10μs、100μs等の一定周期で発生することで、信号出力装置100が一定時間ごとに信号値を更新するようになる。すなわち、更新回数nを時間に変換して制御することが可能である。
カウント回路10の記憶素子5aは、renewal信号が「0(Low)」から「1(High)」に立ちあがると、セレクタ4bから出力されている「更新回数n=1」を記憶し、「更新回数n=1」を出力する。
一方、タイミング管理部11の比較器8bは、IN1(カウント回路10の記憶素子5aの出力「更新回数n=1」)とIN2(回数X=6回)とを比較し、「IN1≦IN2」なので「1(High)」を出力する。
そして、ANDゲート7にもrenewal信号が入力されており、ANDゲート7は、renewal信号が入力されている期間(renewal信号が「1(High)」の期間)において「1(High)」を出力する。
なお、renewal信号が入力されている期間、すなわちrenewal信号のパルス幅は、算出部60によって更新量が算出される時間よりも短く設定される。
一方、タイミング管理部11の比較器8bは、IN1(カウント回路10の記憶素子5aの出力「更新回数n=1」)とIN2(回数X=6回)とを比較し、「IN1≦IN2」なので「1(High)」を出力する。
そして、ANDゲート7にもrenewal信号が入力されており、ANDゲート7は、renewal信号が入力されている期間(renewal信号が「1(High)」の期間)において「1(High)」を出力する。
なお、renewal信号が入力されている期間、すなわちrenewal信号のパルス幅は、算出部60によって更新量が算出される時間よりも短く設定される。
セレクタ4aは、ANDゲート7の出力が「1(High)」の場合は、加算器3から出力される信号値Y1を選択して出力する。そして、記憶素子5は、信号値Y1を記憶し、信号値Y1を出力する。
一方、カウント回路10の比較器8aは、「回数X=6回」と記憶素子5aの出力「更新回数n=1」とは等しくないので、比較器8aは「0(Low)」を出力する。また、加算器3aには記憶素子5aの出力「更新回数n=1」が更新回数nとして入力される。
加算器3aは、「更新回数n=1」に「1」を加算し、セレクタ4bは、比較器8aからの信号が「0」である為に、加算器3aの出力である「更新回数n=2」を出力する。
ここで、記憶素子5aは、次のrenewal信号が0(Low)」から「1(High)」に立ちあがる時までは、「更新回数n=2」を記憶しない。
加算器3aは、「更新回数n=1」に「1」を加算し、セレクタ4bは、比較器8aからの信号が「0」である為に、加算器3aの出力である「更新回数n=2」を出力する。
ここで、記憶素子5aは、次のrenewal信号が0(Low)」から「1(High)」に立ちあがる時までは、「更新回数n=2」を記憶しない。
算出部60は、「更新回数n=1」を用いて、更新量ΔY2を算出する。そして、出力部50の加算器3は、信号値Y2を出力する。ここで、renewal信号が入力されている期間(renewal信号が「1(High)」の期間)は、算出部60が更新量ΔY2を算出する時間よりも短い為、セレクタ4aは、加算器3から出力される信号値Y2ではなく、記憶素子5から出力される信号値Y1を選択して出力する。
更新回数n=2回目〜5回目における動作は、更新回数n=1回目と同様である為、説明を省略する。
(更新回数=6回目(更新回数n=X)における動作)
更新回数n=5回目において、記憶素子5から信号値Y5が出力され、セレクタ4aには信号値Y6が入力されている。ここで、信号値Y6は目標値bと等しい。
そして、renewal信号生成回路により6回目のrenewal信号が出力されると、カウント回路10の記憶素子5aは、「更新回数n=6」を出力する。
更新回数n=5回目において、記憶素子5から信号値Y5が出力され、セレクタ4aには信号値Y6が入力されている。ここで、信号値Y6は目標値bと等しい。
そして、renewal信号生成回路により6回目のrenewal信号が出力されると、カウント回路10の記憶素子5aは、「更新回数n=6」を出力する。
タイミング管理部11の比較器8bは、IN1(カウント回路10の記憶素子5aの出力「更新回数n=6」)とIN2(回数X=6回)とを比較し、「IN1≦IN2」なので「1(High)」を出力する。
なお、更新回数nが「6回」を超えると、比較器8bは、「0(Low)」のみを出力するようになる。
ANDゲート7にもrenewal信号が入力されており、ANDゲート7は、「1(High)」を出力する。
そして、セレクタ4aは、ANDゲート7の出力が「1(High)」の場合は、加算器3から出力される信号値Y6を選択して出力する。そして、記憶素子5は、信号値Y6を記憶し、信号値Y6を出力する。
なお、更新回数nが「6回」を超えると、比較器8bは、「0(Low)」のみを出力するようになる。
ANDゲート7にもrenewal信号が入力されており、ANDゲート7は、「1(High)」を出力する。
そして、セレクタ4aは、ANDゲート7の出力が「1(High)」の場合は、加算器3から出力される信号値Y6を選択して出力する。そして、記憶素子5は、信号値Y6を記憶し、信号値Y6を出力する。
一方、カウント回路10の比較器8aは、「回数X=6回」と記憶素子5aの出力「更新回数n=6」が等しくなったので、比較器8aは「1(High)」を出力する。
ここで、セレクタ4bには、記憶素子5aの出力「更新回数n=6」と、加算器3aにより「1」が加算された「更新回数n=7」とが入力されるが、セレクタ4bは、比較器8aからの信号が「1」である為に、「更新回数n=6」を出力する。
すなわち、7回目のrenewal信号が発生しても、カウント回路10は、更新回数nを「回数X=6回」までしか更新しない。
そして、信号出力装置100は、最終的に目標値bを出力する。
ここで、セレクタ4bには、記憶素子5aの出力「更新回数n=6」と、加算器3aにより「1」が加算された「更新回数n=7」とが入力されるが、セレクタ4bは、比較器8aからの信号が「1」である為に、「更新回数n=6」を出力する。
すなわち、7回目のrenewal信号が発生しても、カウント回路10は、更新回数nを「回数X=6回」までしか更新しない。
そして、信号出力装置100は、最終的に目標値bを出力する。
(実施の形態3の効果)
実施の形態3の信号出力装置100は、セレクタ4aにより、記憶素子5に入力する信号値を選択している。つまり、セレクタ4aは信号値の更新のタイミングで無い場合には、元の信号値Ynを選択し、信号値の更新のタイミングになると、更新値である信号値Yn+1を選択する。
このような回路構成とすることで、実施の形態2のようにイネーブル付きのフリップフロップ回路を用いなくても、実施の形態1と同様の効果を得ることが出来る。
実施の形態3の信号出力装置100は、セレクタ4aにより、記憶素子5に入力する信号値を選択している。つまり、セレクタ4aは信号値の更新のタイミングで無い場合には、元の信号値Ynを選択し、信号値の更新のタイミングになると、更新値である信号値Yn+1を選択する。
このような回路構成とすることで、実施の形態2のようにイネーブル付きのフリップフロップ回路を用いなくても、実施の形態1と同様の効果を得ることが出来る。
実施の形態4.
本実施の形態について、主に実施の形態1との差異を説明する。
実施の形態1では、目標値bが固定値の場合を説明したが、実施の形態4では目標値bが変数である場合を図6を用いて説明する。
換言すると、実施の形態4は、「信号値Yn+1=(b−Yn)/(X−n)+Yn」において、目標値がb0からb1へと変更される変更される場合に相当する。
図6は、波形データの例を示す図である(図6の(a)は、更新回数=0回目、図6の(b)は、更新回数=1回目、図6の(c)は、更新回数=2回目)。
本実施の形態について、主に実施の形態1との差異を説明する。
実施の形態1では、目標値bが固定値の場合を説明したが、実施の形態4では目標値bが変数である場合を図6を用いて説明する。
換言すると、実施の形態4は、「信号値Yn+1=(b−Yn)/(X−n)+Yn」において、目標値がb0からb1へと変更される変更される場合に相当する。
図6は、波形データの例を示す図である(図6の(a)は、更新回数=0回目、図6の(b)は、更新回数=1回目、図6の(c)は、更新回数=2回目)。
(初期状態における動作)
図6の(a)に示すように、初期状態である更新回数=n回目(n=0)において、算出部60は、初期目標値b0を目標値bとして、差分量(b0−Y0)を算出し、更に、更新量ΔY1を算出する。算出の方法は、実施の形態1と同様である。
そして、出力部50は、実施の形態1と同様に「信号値Y0=初期値a」を出力する。
図6の(a)に示すように、初期状態である更新回数=n回目(n=0)において、算出部60は、初期目標値b0を目標値bとして、差分量(b0−Y0)を算出し、更に、更新量ΔY1を算出する。算出の方法は、実施の形態1と同様である。
そして、出力部50は、実施の形態1と同様に「信号値Y0=初期値a」を出力する。
(更新回数=1回目における動作)
図6の(b)に示すように、出力部50は、実施の形態1と同様に、更新量ΔY1に基づいた信号値Y1を出力する。
ここで、実施の形態4においては、減算器1aに入力される目標値bの値が更新される。具体的には、減算器1aは、初期目標値b0から値が変更された変更目標値b1を目標値bとして入力する。
そして、算出部60は、差分量(b1−Yn)を算出する。
ここで、変更目標値b1は、初期目標値b0よりも大きい値として説明を進めるが、変更目標値b1は、初期目標値b0よりも小さい値であってもよい。
そして、算出部60は、更新量ΔY1よりも大きい更新量ΔY2を算出する。
図6の(b)に示すように、出力部50は、実施の形態1と同様に、更新量ΔY1に基づいた信号値Y1を出力する。
ここで、実施の形態4においては、減算器1aに入力される目標値bの値が更新される。具体的には、減算器1aは、初期目標値b0から値が変更された変更目標値b1を目標値bとして入力する。
そして、算出部60は、差分量(b1−Yn)を算出する。
ここで、変更目標値b1は、初期目標値b0よりも大きい値として説明を進めるが、変更目標値b1は、初期目標値b0よりも小さい値であってもよい。
そして、算出部60は、更新量ΔY1よりも大きい更新量ΔY2を算出する。
(更新回数=2回目における動作)
図6の(c)に示すように、出力部50は、更新量ΔY2に基づいた信号値Y2を出力する。
更に、変更目標値b1が変更目標値b1よりも大きい変更目標値b2に更新されると、算出部60は、更新量ΔY2よりも大きい更新量ΔY3を算出する。
以降の処理は説明を省略するが、目標値bは、以降の更新回数(3回目〜X−1回目)の各回において、更新されてもよい。
そして、目標値bは増加されたり、減少されたりしてもよい。
図6の(c)に示すように、出力部50は、更新量ΔY2に基づいた信号値Y2を出力する。
更に、変更目標値b1が変更目標値b1よりも大きい変更目標値b2に更新されると、算出部60は、更新量ΔY2よりも大きい更新量ΔY3を算出する。
以降の処理は説明を省略するが、目標値bは、以降の更新回数(3回目〜X−1回目)の各回において、更新されてもよい。
そして、目標値bは増加されたり、減少されたりしてもよい。
また、目標値bは、更新回数=1回目〜X−1回目のうちの少なくともいずれかである更新回数=n回目において更新されてもよい。
例えば、更新回数=1回目〜X−1回目(X≧5とする)のうちの3回目だけ目標値bが変更されれば、信号出力装置100は、更新回数=0回目〜3回目まで線形性を保った第1の直線波形データを出力し、更新回数=3回目〜X回目までは、第1の直線波形データとは傾きが異なる新たな線形性を保った第2の直線波形データを出力する。
例えば、更新回数=1回目〜X−1回目(X≧5とする)のうちの3回目だけ目標値bが変更されれば、信号出力装置100は、更新回数=0回目〜3回目まで線形性を保った第1の直線波形データを出力し、更新回数=3回目〜X回目までは、第1の直線波形データとは傾きが異なる新たな線形性を保った第2の直線波形データを出力する。
(実施の形態4の効果)
実施の形態4の信号出力装置100は、信号値の更新処理中に、目標値bが変更された場合であっても、変更された目標値に向かって線形性を保った直線波形データを出力することが可能である。
そして、信号出力装置100は、直線波形データだけではなく、任意の波形データを生成できる。例えば、更新間隔を微小化していけば、信号出力装置100は、近似的に任意の曲線波形データを生成することが可能となる。
実施の形態4の信号出力装置100は、信号値の更新処理中に、目標値bが変更された場合であっても、変更された目標値に向かって線形性を保った直線波形データを出力することが可能である。
そして、信号出力装置100は、直線波形データだけではなく、任意の波形データを生成できる。例えば、更新間隔を微小化していけば、信号出力装置100は、近似的に任意の曲線波形データを生成することが可能となる。
以上、本発明の実施の形態1〜4について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
1a,1b 減算器、2 除算器、3,3a 加算器、4,4a,4b セレクタ、5,5a 記憶素子、6 タイミング管理機能付き記憶素子、7 ANDゲート、8a,8b 比較器、9 誤差補正部、10 カウント回路、11 タイミング管理部、40 更新部、50 出力部、60 算出部、100 信号出力装置。
Claims (5)
- 予め設定された1回目〜X回目(Xは2以上の正の整数)の更新回数の各回において、信号値を更新し、更新した信号値を出力すると共に、更新回数=n回目(n=1)の前回である更新回数=n回目(n=0)に相当する初期状態に初期値の信号値を出力する出力部と、算出部とを備え、
(1)初期状態である更新回数=n回目(n=0)において、
前記出力部が、初期値aを信号値Y0として出力し、
前記算出部が、前記出力部が出力した信号値Y0を入力し、入力した信号値Y0から目標値bまでの差分量(b−Y0)を算出すると共に、算出した差分量(b−Y0)に基づいて、信号値Y0から、前記出力部が更新回数=n回目(n=1)に出力する信号値Y1への更新量ΔY1を算出し、
(2)更新回数=n回目(n=1)において、
前記出力部が、前記算出部により算出された更新量ΔY1に基づき、信号値Y0を信号値Y1へ更新し、信号値Y1を出力し、
前記算出部が、前記出力部が出力した信号値Y1を入力し、入力した信号値Y1から目標値bまでの差分量(b−Y1)を算出すると共に、算出した差分量(b−Y1)に基づいて、信号値Y1から、前記出力部が更新回数=n回目(n=2)に出力する信号値Y2への更新量ΔY2を算出し、
(3)更新回数=n回目(2≦n≦X−1)においても、更新回数=n回目(n=1)と同様に、
前記出力部が、前記算出部により算出された更新量ΔYnに基づき、信号値Yn−1を信号値Ynへ更新し、信号値Ynを出力し、
前記算出部が、前記出力部が出力した信号値Ynを入力し、入力した信号値Ynから目標値bまでの差分量(b−Yn)を算出すると共に、算出した差分量(b−Yn)に基づいて、信号値Ynから、前記出力部が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYn+1を算出し、
(4)更新回数=n回目(n=X)において、
前記出力部が、前記算出部により算出された更新量ΔYnに基づき、信号値Yn−1を目標値bへ更新し、目標値bを最終的に出力することを特徴とする信号出力装置。 - 前記算出部は、
更新回数=n回目(0≦n≦X−1)において、
前記出力部が出力した信号値Ynと、目標値bとを入力し、目標値bから更新回数=n回目の信号値Ynを減算し、減算した結果を差分量(b−Yn)として出力する第1の減算器と、
前記出力部の更新回数nと、更新回数のX回目の回数Xとを入力し、回数Xから更新回数nを減算し、減算した結果を残回数(X−n)として出力する第2の減算器と、
前記第1の減算器が出力した差分量(b−Yn)と前記第2の減算器が出力した残回数(X−n)とを入力し、差分量(b−Yn)を残回数(X−n)で除算し、除算した結果を更新量ΔYn+1として出力する除算器と
を有し、
前記出力部は、
前記除算器が出力した更新量ΔYn+1を入力し、更新回数=n回目の信号値Ynと更新量ΔYn+1とを加算し、加算した結果を信号値Yn+1として出力する加算器と、
前記加算器が出力した信号値Yn+1を入力し、更新回数=n+1回目において、更新回数=n回目の信号値Ynを入力した信号値Yn+1に更新し、信号値Yn+1を出力する更新部と
を有することを特徴とする請求項1記載の信号出力装置。 - 前記出力部の前記更新部は、
更新回数=n回目(0≦n≦X−1)の信号値Ynを記憶すると共に、記憶している信号値Ynを継続して出力し、更新回数=n+1において、信号値Ynを信号値Yn+1に更新し、信号値Ynの代わりに更新した信号値Yn+1を新たに記憶し、記憶している信号値Yn+1を継続して出力する記憶部を有することを特徴とする請求項2記載の信号出力装置。 - 前記算出部は、
更新回数=n回目(n=0)において、初期目標値b0を目標値bとして、差分量(b0−Y0)を算出し、
更新回数=1回目〜X−1回目のうちの少なくともいずれかである更新回数=n回目において、前記初期目標値b0から値が変更された変更目標値b1を目標値bとして、差分量(b1−Yn)を算出することを特徴とする請求項1〜3のいずれかに記載の信号出力装置。 - 予め設定された1回目〜X回目(Xは2以上の正の整数)の更新回数の各回において、直前の回に出力した信号値Ynを用いて信号値Ynを信号値Yn+1に更新し、信号値Yn+1を出力する出力部と、
前記出力部が更新回数=n回目(1≦n≦X−1)において出力した信号値Ynを入力し、入力した信号値Ynから目標値bまでの差分量(b−Yn)を算出すると共に、算出した差分量(b−Yn)に基づいて、前記出力部が前記n回目に出力した信号値Ynから、前記出力部が更新回数=n+1回目に出力する信号値Yn+1への更新量ΔYを算出する算出部と
を備え、
前記出力部は、
前記算出部により算出された更新量ΔYに基づき、更新回数=n+1回目に信号値Ynを信号値Yn+1へ更新することを特徴とする信号出力装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013008030A JP5984688B2 (ja) | 2013-01-21 | 2013-01-21 | 信号出力装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013008030A JP5984688B2 (ja) | 2013-01-21 | 2013-01-21 | 信号出力装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014139715A true JP2014139715A (ja) | 2014-07-31 |
JP5984688B2 JP5984688B2 (ja) | 2016-09-06 |
Family
ID=51416404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013008030A Expired - Fee Related JP5984688B2 (ja) | 2013-01-21 | 2013-01-21 | 信号出力装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5984688B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS519348A (ja) * | 1974-07-11 | 1976-01-26 | Nippon Musical Instruments Mfg | |
JPS60192995A (ja) * | 1984-03-14 | 1985-10-01 | ヤマハ株式会社 | 電子楽器用関数波形発生装置 |
JPS60195592A (ja) * | 1984-03-19 | 1985-10-04 | ヤマハ株式会社 | 電子楽器用関数波形発生装置 |
JPS62245434A (ja) * | 1986-04-18 | 1987-10-26 | Roorand Kk | 電子楽器の波形発生装置 |
-
2013
- 2013-01-21 JP JP2013008030A patent/JP5984688B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS519348A (ja) * | 1974-07-11 | 1976-01-26 | Nippon Musical Instruments Mfg | |
JPS60192995A (ja) * | 1984-03-14 | 1985-10-01 | ヤマハ株式会社 | 電子楽器用関数波形発生装置 |
JPS60195592A (ja) * | 1984-03-19 | 1985-10-04 | ヤマハ株式会社 | 電子楽器用関数波形発生装置 |
JPS62245434A (ja) * | 1986-04-18 | 1987-10-26 | Roorand Kk | 電子楽器の波形発生装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5984688B2 (ja) | 2016-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007208969A (ja) | ローカルクロック補正方法および回路 | |
US20060109035A1 (en) | Clock frequency divider circuit | |
JP6481533B2 (ja) | デジタル制御発振回路 | |
JP2013025467A (ja) | 対数関数の近似演算回路 | |
JP5984688B2 (ja) | 信号出力装置 | |
JP6299516B2 (ja) | 時間計測回路 | |
CN108111164B (zh) | 一种可编程分频器 | |
RU2680217C1 (ru) | Цифровое прогнозирующее устройство | |
JP6247546B2 (ja) | フラクショナルn周波数シンセサイザおよびその設定方法 | |
JP2020042005A (ja) | 時間計測回路及び積分型a/dコンバータ | |
RU2535467C1 (ru) | Адаптивное цифровое дифференцирующее и прогнозирующее устройство | |
RU2622852C1 (ru) | Адаптивное цифровое сглаживающее и прогнозирующее устройство | |
JP2012141952A (ja) | 除算回路及び除算方法 | |
CN103856211A (zh) | 计数器、计数方法和分频器 | |
KR20140077675A (ko) | 디지털 전치 왜곡 장치 | |
JP5560453B1 (ja) | Pwm出力装置、pwm出力方法、及び遊技機 | |
JP2017046037A (ja) | ボリウム制御装置 | |
RU2629641C1 (ru) | Цифровое прогнозирующее устройство | |
JP6519238B2 (ja) | 電流検出回路 | |
CN106849955B (zh) | 一种脉冲密度调制方法及脉冲密度值信号转换电路 | |
RU2629643C2 (ru) | Адаптивное цифровое прогнозирующее устройство | |
RU2720219C1 (ru) | Адаптивное цифровое прогнозирующее устройство | |
JP2002182898A (ja) | 積算値及び周期関数の生成方法及び回路 | |
RU2680215C1 (ru) | Адаптивное цифровое прогнозирующее устройство | |
RU2622851C1 (ru) | Адаптивное цифровое прогнозирующее устройство |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151007 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160802 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5984688 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |