JP4640321B2 - 波形発生回路 - Google Patents

波形発生回路 Download PDF

Info

Publication number
JP4640321B2
JP4640321B2 JP2006313256A JP2006313256A JP4640321B2 JP 4640321 B2 JP4640321 B2 JP 4640321B2 JP 2006313256 A JP2006313256 A JP 2006313256A JP 2006313256 A JP2006313256 A JP 2006313256A JP 4640321 B2 JP4640321 B2 JP 4640321B2
Authority
JP
Japan
Prior art keywords
data
waveform data
waveform
storage means
memory
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.)
Expired - Fee Related
Application number
JP2006313256A
Other languages
English (en)
Other versions
JP2008131280A (ja
Inventor
順哉 谷口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2006313256A priority Critical patent/JP4640321B2/ja
Publication of JP2008131280A publication Critical patent/JP2008131280A/ja
Application granted granted Critical
Publication of JP4640321B2 publication Critical patent/JP4640321B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、正弦波又は余弦波の波形データを発生する波形発生回路に関する。
正弦波の波形データをサンプリング周期で発生する波形発生回路がある。特許文献1には、サンプリング周期の最初の2点(サンプル点)の波形データを初期値として、これらの初期値に基づいて漸化式により正弦波信号を生成する方式が記載されている。この漸化式方式においては、処理対象であるサンプル点p(pは自然数)における波形データsin(p)は、直前の2つのサンプル点p−1及びp−2における波形データsin(p−1)及びsin(p−2)に基づいて生成される。
図6に、この従来の漸化式方式による波形発生回路Aを示す。図6に示されるように、従来の波形発生回路Aは、入力されたデータdcを遅延させてデータdaを出力する第1の遅延回路D1と、データdaを遅延させてデータdbを出力する第2の遅延回路D2と、データdaに係数Qを乗算する乗算器1と、乗算器1から出力されるデータQ・da及びデータdbとを加減算する加減算器2とを有する。加減算器2から出力されるデータdcは外部に出力されると共に、第1の遅延回路D1に入力される。ここで、Q=2×cos(Δω)、Δω=2π×f÷fs(ω:角速度、f:正弦波の周波数、fs:サンプリング周波数)であり、Δωは1サンプリング周期となる。また、第1の遅延回路D1と第2の遅延回路D2の遅延時間は1サンプリング周期Δωとなる。
特開2004−48101号公報
ところで、発生させる周波数fが低い場合や、サンプリング周波数が高い場合、1サンプリング周期Δωは小さい値となる。このとき、上述した波形発生回路Aにおいては、初期値であるsin(Δω)が極端に0に近づいてくる。しかしながら、乗算器1と加減算器2におけるビット数は有限であるため、初期値が0に近づくと有効数字のけた数が減少する。このため、この初期値を用いた演算に誤差が生じる。さらに、従来の漸化式方式では、直前の2つのサンプル点を帰納的に用いて波形データを求めるので、波形の演算が進むにつれて最初の誤差が蓄積する。つまり、時間(t)が経過するほど波形の誤差が拡がっていく。
本発明は、以上の事情に鑑みてなされたものであり、漸化式を用いて正弦波又は余弦波を生成する場合に、波形演算における誤差を抑制することが可能な波形生成装置を提供するという課題の解決を目的としている。
以上の課題を解決するために、本発明に係る波形発生回路は、正弦波又は余弦波の波形データをサンプリング周期で発生する波形発生回路であって、1番目の前記波形データから2m(mは2以上の自然数)番目の前記波形データまでを初期値として記憶する記憶手段と、第1データと第2データとに基づいて前記波形データを演算する演算手段と、1番目から2m番目の波形を発生させる場合は前記記憶手段の出力を選択し、2m+1番目以降の波形を発生させる場合は前記演算手段の出力を選択する選択部と、前記選択部から出力される前記波形データを前記サンプリング周期のm倍の時間だけ遅延させて前記第1データを出力する第1遅延手段と、前記第1データを前記サンプルング周期のm倍の時間だけ遅延させて前記第2データを出力する第2遅延手段とを備え、前記演算手段は、前記第1データに係数を乗算して第3データを出力する乗算手段と、前記第3データと前記第2データとを加算又は減算して前記波形データを生成する加減算手段とを備えることを特徴とする。
本発明に係る別の波形発生回路は、正弦波又は余弦波の波形データをサンプリング周期で発生する波形発生回路であって、1番目の前記波形データから2m番目の前記波形データまでを初期値として記憶する第1記憶手段と、第1データに係数を乗算して第3データを出力する乗算手段と、第2データと前記第3データとを加算又は減算して前記波形データを生成する加減算手段と、前記乗算手段に前記第1データを供給すると共に前記加減算手段に前記第2データを供給する制御手段と、前記加減算手段によって生成された少なくとも2m個の前記波形データを記憶する第2記憶手段とを備え、前記制御手段は、iを1からmまでの自然数としたとき、前記第1データとして前記第1記憶手段から読み出したm+i番目の前記波形データを用いると共に、前記第2データとして前記第1記憶手段から読み出したi番目の前記波形データを用い、iを1からmまで変化させ、2m+1番目から3m番目までの前記波形データを生成し、前記第2記憶手段に記憶させ、前記第1データとして前記第2記憶手段から読み出した2m+i番目の前記波形データを用いると共に、前記第2データとして前記第1記憶手段から読み出したm+i番目の前記波形データを用い、iを1からmまで変化させ、3m+1番目から4m番目までの前記波形データを生成し、前記第2記憶手段に記憶させ、nを2以上の自然数としたとき、前記第1データとして前記第2記憶手段から読み出した(n+1)m+i番目の前記波形データを用いると共に、前記第2データとして前記第2記憶手段から読み出したnm+i番目の前記波形データを用い、iを1からmまで変化させ、(n+2)m+1番目から(n+3)m番目までの前記波形データを生成し、前記第2記憶手段に記憶させることを特徴とする。
本発明の別の波形発生回路においては、1番目の波形データから2m番目の波形データまでを初期値として記憶する第1記憶手段と、加減算手段によって生成された少なくとも2m個の波形データを記憶する第2記憶手段とを有し、2m+1番目から3m番目までの波形データを生成する場合には、第1データ及び第2データの両方を第1記憶手段から読み出して用い、3m+1番目から4m番目までの波形データを生成する場合には、第1データを第2記憶手段から読み出し、第2データを第1記憶手段から読み出して用いる。さらに、(n+2)m+1番目から(n+3)m番目までの波形データを生成する場合には、第1データと第2データの両方を第2記憶手段から読み出して用いる。このように、2m+1番目から3m番目までの波形データを生成する場合には、サンプリング周期がm個相異なる初期値を用いるので、波形演算における誤差が抑制される。これらの初期値を用いた演算結果は第2記憶手段に蓄積されて、以降の演算に用いられる。初期値を用いた演算の誤差が抑制されているので、以降の演算における誤差も同様に抑制される。また、演算が進むにつれて蓄積する誤差も、抑制することが可能となる。
<1.第1実施形態>
図1を参照して、本発明の第1実施形態に係る波形発生回路100の構成を説明する。波形発生回路100は、周波数fの正弦波Sをサンプリング周期で(又はΔωで)発生させる回路である。ここで、Δω=2π×f÷fsである。図1に示されるように、この波形発生回路100は、入力される波形データdをΔωのm(mは自然数)倍の時間だけ遅延させて第1データDaとして出力する第1遅延回路20Aと、第1遅延回路20Aの後段に位置して第1データDaを遅延させて第2データDbとして出力する第2遅延回路20Bとを有する。第1遅延回路20A及び第2遅延回路20Bの遅延時間は、Δωのm(mは自然数)倍に相当する時間であり、1サンプリング周期のm倍の時間である。
さらに、波形発生回路100は、第1データDaに係数Kを乗算する乗算器31と、この乗算器31からの出力データと第2データDbを加減算する加減算器32とを有する演算部(演算手段)30を有する。このように、波形発生回路100は、第1遅延回路20A、第2遅延回路20B及び演算部30とを有することにより、漸化式方式で帰納的に波形データdを生成することが可能である。くわえて、波形発生回路100は後述の波形データの初期値を記憶するメモリMと選択部40とを有する。選択部40は、メモリMから出力される波形データd又は加減算器32から出力される波形データdのいずれかを選択して出力波形データdoutとして出力する。ここで、係数K=2×cos(Δω・m)である。
メモリMには、周波数fの正弦波Sをサンプリング周波数fsで発生させる場合における、1番目から2m(mは任意の自然数)番目の波形データdが初期値として記憶されている。具体的には、正弦波Sの波高値を示す2m個の波形データd1,d2,…,dm,dm+1,dm+2,…,d2mが予め保持されている。
波形発生回路100の選択部40は、x(xは自然数、1≦x≦2m)番目の波形データdx(波形データd1〜d2m)を生成する場合には、これらの初期値を出力波形データdoutとして出力するように動作する。以上のように生成された1番目から2m番目までの波形データd1〜d2mは、出力波形データdoutとして外部に出力される前に分岐して、第1遅延回路20Aに入力されて、2m+1番目以降の演算に利用される。
次に、2m+1番目から3m番目までの波形データd2m+1〜d3mを生成する場合について説明する。図2は、2m+1番目から3m番目までの波形データd2m+1〜d3mを生成する際に用いる波形データdを説明するための図である。図2に示されるように、例えば、2m+1番目の波形データd2m+1を生成するとき、第1データDaとして波形データdm+1が用いられ、第2データDbとして波形データd1が用いられる。また、2m+i(iは自然数、1≦i≦m)番目の波形データd2m+iを生成するとき、第1データDaとして波形データdm+iが用いられ、第2データDbとして波形データdiが用いられる。このように、波形データdの初期値をm個ずつ遅延させて、第1データDa及び第2データDbとして演算部30による演算に用いる。
さらに、詳細には、x(x≧2m+1)番目の波形データdxは、以下の式により演算される。
K=2×cos(Δω・m)
dx =sin(x)=K・sin(x−m)−sin(x−2m)
=K・Da−Db
よって、
sin(2m+1)=K・sin(m+1)−sin(1)=K・sin(m+1)
sin(2m+2)=K・sin(m+2)−sin(2)


sin(2m+i)=K・sin(m+i)−sin(i)


sin(2m+m)=sin(3m)=K・sin(2m)−sin(m)
但し、sin(j)はj(jは自然数)番目のサンプルを意味し、j=1のときsin(1)=0であり、正確にはsin(j)=sin(Δω(j−1))である。
以上のように生成された2m+1番目から3m番目までの波形データd2m+1〜d3mは、第1遅延回路20Aに入力されて、3m+1番目〜4m番目までの波形データdの演算に利用される。
次に、3m+1番目〜4m番目までの波形データd3m+1〜d4mが生成される。この場合、上記2m+1番目から3m番目までの波形データd2m+1〜d3mの演算結果が第1データDaとして用いられ、メモリMに記憶された波形データdの初期値を第2データDbとして演算に用いる。これらの演算結果もまた、第1遅延回路20Aに入力される。続いて、4m+1番目以降の波形データdが生成される。この場合、2m+1番目以降の波形データdの演算結果が第1データDa及び第2データDbとして用いられる。
ところで、上述したように、Δω=2π×f÷fsである。よって、周波数fが低いほどΔωは小さくなる。また、サンプリング周波数fsが高いほど(つまり、小刻みにサンプリングされるほど)、Δωは小さくなる。このとき、1番目の波形データsin(1)=0に続く2番目の波形データsin(2)は限りなく0に近づく。しかしながら、乗算器31や加減算器32におけるビット数は有限であるため、初期値が0に近づくと有効数字のけた数が減少する。このため、sin(1)及びsin(2)を初期値として漸化式に代入演算した結果(すなわち、演算回路30による演算結果)の誤差が大きくなる。この誤差を有する波形データは漸化式に代入されて繰り返し利用され、誤差がさらに蓄積することになる。これに対して、本実施形態の波形発生回路100では、演算回路30に入力される第1データDa及び第2データDbとしてm個飛ばしの初期値を用いる。すなわち、サンプリング周期のm倍に相当する時間(Δω・m)だけ遅延された初期値を用いて演算が行われる。よって、Δωの値が小さい場合であっても、時間(Δω・m)だけ離れたサンプルを初期値として用いるので、単にΔωだけ離れたサンプルを初期値として用いる場合と比較して、有効数字のけた数が増加し、演算結果における誤差が抑制される。また、初期値は予め生成されてメモリMに記憶されているので、初期値自体の誤差を予め抑制することが可能である。よって、全体として、波形演算の誤差が抑制される。
以上説明したように、第1実施形態の波形発生回路100においては、波形データd1〜波形データd2mの2m個の波形データを初期値として予めメモリMに記憶しておく。これらの初期値は、メモリMから順次読み出されて出力波形データdoutとして外部に出力されるとともに、第1遅延回路20Aに入力される。その結果、波形データd2m+1以降の演算には、m個飛ばしの2個の波形データdが各々第1データDa及び第2データDbとして利用される。つまり、波形発生回路100は、最初の2m個の波形データの出力が完了すると、選択部40を、加減算器32の演算結果としての波形データdを出力波形データdoutとして出力するように切り替え、それ以降は、m個飛ばしの2個の波形データ(すなわち、第1データDaおよび第2データDb)に基づく演算結果を外部に出力する。具体的には、例えば、2m+1番目の波形データd2m+1を生成する場合、第1遅延回路20Aは波形データd2m+1に対してm個遅延された波形データdm+1を第1データDaとして出力し、第2遅延回路20Bは波形データdm+1に対してm個遅延された波形データd1を第2データDbとして出力し(すなわち、各第1遅延回路20Aおよび第2遅延回路20Bは、波形データdを記憶して遅延させる手段として機能する)、演算部30はこの第1データDaおよび第2データDbを演算に用いる。このようにして、波形発生回路100では、波形演算の初期段階における誤差を抑制することにより以降の演算における誤差もまた抑制されるので、結果として、全体としての誤差の抑制が可能となる。
<2.第2実施形態>
図3は、第2実施形態に係る波形発生回路200の構成を示す図である。本実施形態の波形発生回路200は、第1実施形態の波形発生回路100と同様に、周波数fの正弦波Sをサンプリング周期で発生させる回路である。但し、第1実施形態の波形発生回路100の第1遅延回路20A及び第2遅延回路20Bの替わりに、第2実施形態の波形発生回路200では、第2メモリM2を用いる。
また、x番目の波形データdxを生成するにあたって、第1データDaとしてx−m番目の波形データdx-mを用い、第2データDbとしてx−2m番目の波形データdx-2mを用いる。なお、図3において、上記実施形態と同様の要素については同一の符号を付し、その説明は適宜省略する。
図3に示されるように、波形発生回路200は、上記実施形態と同様に、乗算器31と加減算器32とを有する演算部30、及び選択部40を備える。さらに、波形発生回路200は、1番目の波形データd1から2m番目の波形データd2mまでを初期値として記憶する第1メモリM1と、加減算器32からの順次出力される波形データdを少なくとも2m個記憶する第2メモリM2とを有する。制御部10は、第1データDa及び第2データDbを第1メモリM1及び第2メモリM2の両方、又は第2メモリM2のみから読み出して演算部30に供給する。くわえて、制御部10は選択部40を制御する。詳細には、加減算器32から出力された波形データd及び第1メモリM1から読み出された波形データdのいずれを出力波形データdoutとして出力するかを指示する選択信号S1,S2を、選択部40に対して供給する。
次に、図4及び図5を参照しながら、制御部10によって制御される波形データdxの生成処理手順について説明する。図4は、制御部10が実行する波形データ生成処理の流れを示すフローチャートである。図5は、波形データ生成処理に用いられる波形データdについて説明するための図である。
制御部10は、まず、生成すべき波形データdxが1番目〜2m番目の波形データd1〜d2mのいずれかであるかについて判定する(ステップS1)。この判定結果がYESの場合、制御部10は、ステップS2において、選択部40に選択信号S1を送信する。上述したように、1番目〜2m番目の波形データd1〜d2mの各々は、第1メモリM1に記憶されている。よって、選択信号S1は、選択部40に対して、第1メモリM1から供給される波形データを出力波形データdoutとして出力することを指示する信号である。次に、制御部10は、波形データdを第1メモリM1から読み出し(ステップS3)、この読み出した波形データdを出力波形データdoutとして出力する(ステップS4)。続いて、制御部10は、生成すべき波形データdxの全てについて出力が完了したか否かを判定する(ステップS5)。制御部10は、ステップS1の判定結果がNOになるまで、すなわち、2m番目の波形データdの生成が完了して2m+1番目の波形データdの生成処理に移行するまで、上述したステップS1〜S5の処理を繰り返す。
次いで、ステップS1における判定結果がNOの場合、すなわち、生成すべき波形データdxが1番目〜2m番目の波形データd1〜d2mでない場合、制御部10は選択部40に対して選択信号S2を送信する(ステップS6)。選択信号S2は、選択部40に対して、加減算器32から出力される波形データを出力波形データdoutとして出力することを指示する信号である。
次に、制御部10は、ステップS7において、生成すべき波形データdxが2m+1番目〜3m番目の波形データd2m+1〜d3mのいずれかであるかについて判定する。この判定結果がYESの場合、処理はステップS8に進む。図5に示されるように、2m+1番目〜3m番目の波形データd2m+1〜d3mの各々は、第1メモリM1に記憶された波形データdm+1〜d2mの各々を第1データDaとして読み出し、第1メモリM1に記憶された波形データd1〜dmの各々を第2データDbとして読み出すことにより生成される。よって、ステップS8において、制御部10は、第1データDa及び第2データDbを第1メモリM1から読み出す。具体的には、iを1からmまでの自然数としたとき、第1メモリM1に記憶されたm+i番目の波形データdm+iを第1データDaとして読み出し、i番目の波形データdiを第2データDbとして読み出す。
次に、制御部10は、第1メモリM1から読み出した第1データDa及び第2データDbを演算部30に供給して、演算部30において波形データdを生成させる(ステップS9)。この演算部30において、乗算器31は第1データDaに係数Kを乗算して、その演算結果を加減算器32に供給する。加減算器32は、乗算器31から供給された演算結果及び第2データDbを加減算して出力すると共に、ステップS10において、加減算器32から出力された波形データdを第2メモリM2に記憶する。続いて、制御部10は、ステップS4において加減算器32から出力された波形データdを出力波形データdoutとして出力する。
ここで、上述したように、波形データdxはK・sin(x−m)−sin(x−2m)=K・Da−Dbによって求められる。つまり、波形データdxの演算には、x−m番目の波形データdx-m及びx−2m番目の波形データdx-2mが用いられる。このため、第1メモリM1及び/又は第2メモリM2から、生成すべき波形データdxの直前2m個の波形データdが読み出せるように、少なくとも直前2m個の波形データdxが第1メモリM1及び第2メモリM2に記憶されていることが望ましい。このため、本実施形態では、2m+1番目以降の波形データdを生成する度に、生成した波形データdを第2メモリM2に記憶する構成としている。これにより、x−mの値が第1メモリM1に記憶された波形データの数(2m個)を超えた場合にも、第1メモリM1及び/又は第2メモリM2に記憶された波形データdx-m及び波形データdx-2mを用いて波形データdxを生成することが可能となる。
制御部10は、ステップS7の判定結果がNOになるまで、すなわち、3m番目の波形データd3mの生成処理が完了して3m+1番目の波形データd3m+1の生成処理に移行するまで、iを1からmまで変化させ、ステップS8〜S10、S4、S5、S1、S6、S7の処理を繰り返す。なお、制御部10は、例えば、iを1からmまで変化させる第1カウンタ及び第2カウンタ(図示略)を有し、第1データDaを読み出す度に第1カウンタのカウント値をインクリメントし、第2データDbを読み出す度に第2カウンタのカウント値をインクリメントする。第1カウンタ及び第2カウンタはカウント値がmに達すると0にリセットされる。
続いて、ステップS7における判定結果がNOの場合、すなわち、生成すべき波形データdxが2m+1番目〜3m番目の波形データd2m+1〜d3mのいずれかでない場合、制御部10は、さらに、生成すべき波形データdxが3m+1番目〜4m番目の波形データd3m+1〜d4mのいずれかであるか否か判定する(ステップS11)。この判定結果がYESの場合、処理はステップS12に進む。図5に示されるように、3m+1番目〜4m番目の波形データd3m+1〜d4mの各々は、第2メモリM2に記憶された波形データd2m+1〜d3mの各々を第1データDaとして読み出し、第1メモリM1に記憶された波形データdm+1〜d2mの各々を第2データDbとして読み出すことにより生成される。波形データd2m+1〜d3mは、上述したステップS8〜S10における処理を通じて生成されて第2メモリM2に記憶された波形データである。よって、制御部10は、ステップS12において、2m+i番目の波形データd2m+iを第1データDaとして第2メモリM2から読み出し、続いてステップS13において、m+i番目の波形データdm+iを第2データDbとして第1メモリM1から読み出す。具体的には、制御部10は、第2メモリM2に記憶された2m+i番目の波形データd2m+iを第1データDaとして読み出し、第1メモリに記憶されたm+i番目の波形データdm+iを第2データDbとして読み出す。この第1データDa及び第2データDbは演算部30に供給されて、この演算部30において波形データが生成される(ステップS9)。
次に、ステップS10において、演算部30から出力された波形データdを第2メモリM2に記憶すると共に、ステップS4において出力波形データdoutとして出力する。制御部10は、ステップS11の判定結果がNOになるまで、すなわち、4m番目の波形データd4mの生成処理が完了して4m+1番目の波形データd4m+1の生成処理に移行するまで、iを1からmまで変化させ、ステップS12、S13、S9、S10、S4、S5、S1、S6、S7、S11の処理を繰り返す。
次に、ステップS11の判定結果がNOの場合、すなわち、生成すべき波形データdxが3m+1番目〜4m番目でない場合、処理はステップS14に移行する。図5に示されるように、4m+1番目〜5m番目の波形データd4m+1〜d5mの各々は、第2メモリM2に記憶された波形データd3m+1〜d4mの各々を第1データDaとして読み出し、同じく第2メモリM2に記憶された波形データd2m+1〜d3mの各々を第2データDbとして読み出すことにより生成される。また、図示は略したが、5m+1番目以降の波形データdも同様に、第1データDa及び第2データDbの両方を第2メモリM2から読み出すことにより生成される。つまり、4m+1番目(つまり、(n+2)m+1番目、nは2以上の自然数)以降の波形データdの生成に際しては、第1データDaとして第2メモリM2から読み出した(n+1)m+i番目の波形データd(n+1)m+iを用い、第2データとして第2メモリM2から読み出したnm+1番目の波形データdnm+iを用いる。よって、制御部10は、ステップS14において、第1データDaとして、第2メモリM2から波形データd(n+1)m+iを読み出し、第2データDbとして、第2メモリM2から波形データdnm+iを読み出す。このようにして読み出されたこの第1データDa及び第2データDbは演算部30に供給されて、この演算部30において波形データが生成される(ステップS9)。
次に、ステップS10において、演算部30から出力された波形データdを第2メモリM2に記憶すると共に、ステップS4において出力波形データdoutとして出力する。制御部10は、ステップS5の判定結果がYESになるまで、すなわち、生成すべき波形データdxの出力が全て完了するまで、nがインクリメントする度にiを1からmまで変化させ、ステップS1、S6、S7、S11、S14、S9、S10、S4、S5の処理を繰り返す。ステップS5の判定結果がYESになると、波形データ生成処理は終了する。
以上説明したように、本実施形態における波形発生回路200においては、1番目の波形データd1から2m番目の波形データd2mまでを初期値として記憶する第1メモリM1と、演算部30によって生成された少なくとも2m個の波形データdを記憶する第2メモリM2とを有し、2m+1番目から3m番目までの波形データを生成する場合には、第1データDa及び第2データDbの両方を第1メモリM1から読み出して用い、3m+1番目から4m番目までの波形データを生成する場合には、第1データDaを第2メモリM2から読み出し、第2データDbを第1メモリM1から読み出して用いる。さらに、(n+2)m+1番目から(n+3)m番目までの波形データを生成する場合には、第1データDaと第2データDbの両方を第2メモリM2から読み出して用いる。このように、本実施形態の波形発生回路200によれば、上記第1実施形態と同様の効果を得ることが可能となる。すなわち、2m+1番目から3m番目までの波形データdを生成する場合には、サンプリング周期がm個相異なる初期値をメモリから読み出して用いるので、波形演算における誤差が抑制される。さらに、これらの初期値を用いた演算結果(波形データd2m+1〜d3m)は第2メモリM2に蓄積され、以降の演算に用いられる。初期値を用いて生成された波形データd2m+1〜d3mの誤差が抑制されているので、これらの波形データを以降の演算に用いることで、以降の演算における誤差も同様に抑制される。また、演算が進むにつれて蓄積する誤差も、同様に抑制することが可能となる。
<3.変形例>
上述した実施形態では、波形発生回路100,200が正弦波Sを生成する態様について説明したが、上記波形発生回路100,200を余弦波を生成する回路に適用させることも可能である。この場合、余弦波の波高値としての波形データd1〜d2mをテーブルとして予め保持し、これらを初期値として用いて2m+1番目以降の波形データを生成する。
第1実施形態に係る波形発生回路の構成を示すブロック図である。 第1実施形態における波形データの生成に用いられる波形データを説明するための図である。 第2実施形態に係る波形発生回路の構成を示すブロック図である。 第2実施形態における波形生成処理の流れを示すフローチャートである。 第2実施形態における波形データ生成処理に用いられる波形データを説明するための図である。 従来の波形発生回路の構成を示すブロック図である。
符号の説明
10……制御部、20A……第1遅延回路(第1遅延手段)、20B……第2遅延回路(第2遅延手段)、30……演算部(演算手段)、31……乗算部(乗算手段)、32……加減算部(加減算手段)、40……選択部、100,200……波形発生回路、Da……第1データ、Db……第2データ、K……係数、M……メモリ(記憶手段)、M1……第1メモリ(第1記憶手段)、M2……第2メモリ(第2記憶手段)、S……正弦波、d……波形データ、dout……出力波形データ、f……周波数、fs……サンプリング周波数。

Claims (2)

  1. 正弦波又は余弦波の波形データをサンプリング周期で発生する波形発生回路であって、
    1番目の前記波形データから2m(mは2以上の自然数)番目の前記波形データまでを初期値として記憶する記憶手段と、
    第1データと第2データとに基づいて前記波形データを演算する演算手段と、
    1番目から2m番目の波形を発生させる場合は前記記憶手段の出力を選択し、2m+1番目以降の波形を発生させる場合は前記演算手段の出力を選択する選択部と、
    前記選択部から出力される前記波形データを前記サンプリング周期のm倍の時間だけ遅延させて前記第1データを出力する第1遅延手段と、
    前記第1データを前記サンプルング周期のm倍の時間だけ遅延させて前記第2データを出力する第2遅延手段とを備え、
    前記演算手段は、
    前記第1データに係数を乗算して第3データを出力する乗算手段と、
    前記第3データと前記第2データとを加算又は減算して前記波形データを生成する加減算手段とを備え
    ことを特徴とする波形発生回路。
  2. 正弦波又は余弦波の波形データをサンプリング周期で発生する波形発生回路であって、
    1番目の前記波形データから2m(mは任意の自然数)番目の前記波形データまでを初期値として記憶する第1記憶手段と、
    第1データに係数を乗算して第3データを出力する乗算手段と、
    第2データと前記第3データとを加算又は減算して前記波形データを生成する加減算手段と、
    前記乗算手段に前記第1データを供給すると共に前記加減算手段に前記第2データを供給する制御手段と、
    前記加減算手段によって生成された少なくとも2m個の前記波形データを記憶する第2記憶手段とを備え、
    前記制御手段は、
    iを1からmまでの自然数としたとき、前記第1データとして前記第1記憶手段から読み出したm+i番目の前記波形データを用いると共に、前記第2データとして前記第1記憶手段から読み出したi番目の前記波形データを用い、iを1からmまで変化させ、2m+1番目から3m番目までの前記波形データを生成し、前記第2記憶手段に記憶させ、
    前記第1データとして前記第2記憶手段から読み出した2m+i番目の前記波形データを用いると共に、前記第2データとして前記第1記憶手段から読み出したm+i番目の前記波形データを用い、iを1からmまで変化させ、3m+1番目から4m番目までの前記波形データを生成し、前記第2記憶手段に記憶させ、
    nを2以上の自然数としたとき、前記第1データとして前記第2記憶手段から読み出した(n+1)m+i番目の前記波形データを用いると共に、前記第2データとして前記第2記憶手段から読み出したnm+i番目の前記波形データを用い、iを1からmまで変化させ、(n+2)m+1番目から(n+3)m番目までの前記波形データを生成し、前記第2記憶手段に記憶させる、
    ことを特徴とする波形発生回路。
JP2006313256A 2006-11-20 2006-11-20 波形発生回路 Expired - Fee Related JP4640321B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006313256A JP4640321B2 (ja) 2006-11-20 2006-11-20 波形発生回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006313256A JP4640321B2 (ja) 2006-11-20 2006-11-20 波形発生回路

Publications (2)

Publication Number Publication Date
JP2008131280A JP2008131280A (ja) 2008-06-05
JP4640321B2 true JP4640321B2 (ja) 2011-03-02

Family

ID=39556708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006313256A Expired - Fee Related JP4640321B2 (ja) 2006-11-20 2006-11-20 波形発生回路

Country Status (1)

Country Link
JP (1) JP4640321B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5662040B2 (ja) * 2010-03-16 2015-01-28 株式会社メガチップス 数値制御発振器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01278104A (ja) * 1988-04-30 1989-11-08 Oki Electric Ind Co Ltd ディジタル発振器
JP2004048101A (ja) * 2002-07-08 2004-02-12 Sony Corp 波形生成装置及び方法並びに復号装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01278104A (ja) * 1988-04-30 1989-11-08 Oki Electric Ind Co Ltd ディジタル発振器
JP2004048101A (ja) * 2002-07-08 2004-02-12 Sony Corp 波形生成装置及び方法並びに復号装置

Also Published As

Publication number Publication date
JP2008131280A (ja) 2008-06-05

Similar Documents

Publication Publication Date Title
JP2006227939A (ja) 演算装置
JP4661745B2 (ja) フィルタ装置および電子楽器
JPH1027088A (ja) 乱数発生装置および乱数発生方法
JP4640321B2 (ja) 波形発生回路
CN111164684B (zh) 数字声音处理装置、数字声音处理方法及数字声音处理程序
JP2004056263A (ja) 波形等化装置およびシフトレジスタ
Caffarena et al. Architectural synthesis of fixed-point dsp datapaths using fpgas
US6944218B2 (en) Adaptive filter having a small circuit scale with a low power consumption and tap-coefficients updating method of adaptive filter
JP2009065515A (ja) デジタルフィルタ
JP4745032B2 (ja) フィルタ装置
JP5593590B2 (ja) 共鳴音発生装置、電子楽器および共鳴音発生プログラム
JP2004173183A (ja) ラグランジェ補間サンプリングレート変換装置
JP2008099182A (ja) デジタルフィルタ装置
JP2000165204A (ja) Iir形デジタルローパスフィルタ
JP2008107682A (ja) フィルタ装置および電子楽器
JP4645337B2 (ja) 波形データ補間装置
JP2595820B2 (ja) ガロア拡大体演算器
JP3743625B2 (ja) 可変遅延装置
JP4243473B2 (ja) Firディジタルフィルタ
JP2669073B2 (ja) Pcm音源装置
JP2671648B2 (ja) ディジタルデータの補間装置
JP2006086681A (ja) A/d変換装置のデータ補正装置およびデータ補正方法
KR101179932B1 (ko) 모듈러 3 연산 장치 및 방법
JP3223555B2 (ja) 波形読出装置
JP2008070408A (ja) タッチレスポンス検出装置および電子楽器

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100729

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: 20101102

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees