| 【発明の名称】 |
波形編集方法 |
| 【発明者】 |
【氏名】高井 亨
|
| 【要約】 |
【課題】従来の波形編集方法の誤差を排除し、正確な編集済波形データを自動的に生成できる波形編集方法を提供すること。
【解決手段】波形編集方法は、メモリにアドレス順に連続的に記憶された複数ポイントの元波形データの選択された連続ポイントの部分元波形データを夫々一定方向にシフトした連続アドレスに編集済部分波形データ(A〜B)を記憶し、該編集済部分波形データの一端から外側に連続する所定範囲のスムージング領域の各アドレス値のデータ値を求め、上記元波形データの表す曲線と上記編集済部分波形データの表す曲線とを滑らかに接続するスムージング編集済波形60のデータを生成する。 |
【特許請求の範囲】
【請求項1】 メモリにアドレス順に連続的に記憶された複数ポイントの元波形データの選択された連続ポイントの部分元波形データを夫々一定方向にシフトした連続アドレスに編集済部分波形データを記憶し、該編集済部分波形データの一端から外側に連続する所定範囲のスムージング領域の各アドレス値のデータ値を求め、上記元波形データの表す曲線と上記編集済部分波形データの表す曲線とを滑らかに接続するスムージング編集済波形のデータを生成する波形編集方法であって、上記スムージング領域の特定のアドレス値から所定関数に基づいて高精度の仮想アドレス値を求め、該仮想アドレス値の近傍の実際の複数のアドレス値における夫々の上記元波形データの値から補間計算により上記仮想アドレス値における仮想データ値を求め、該仮想データ値を上記スムージング領域の上記特定のアドレス値のデータ値とすることにより、上記スムージング編集済波形のデータを生成することを特徴とする波形編集方法。 【請求項2】 請求項1記載の波形編集方法において、メモリにアドレス順に連続的に記憶された複数ポイントの元波形データの選択された連続ポイントの部分元波形データを夫々一定方向にシフトした連続アドレスに編集済部分波形データを記憶し、該編集済部分波形データの他端から外側に連続する所定範囲の別のスムージング領域の各アドレス値のデータ値を求め、上記元波形データの表す曲線と上記編集済部分波形データの表す曲線とを滑らかに接続する別のスムージング編集済波形のデータを生成する際に、上記別のスムージング領域の特定のアドレス値から所定関数に基づいて高精度の仮想アドレス値を求め、該仮想アドレス値の近傍の実際の複数のアドレス値における夫々の上記元波形データの値から補間計算により上記仮想アドレス値における仮想データ値を求め、該仮想データ値を上記スムージング領域の上記特定のアドレス値のデータ値とすることにより、上記スムージング編集済波形のデータを生成することを特徴とする波形編集方法。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、メモリに記憶された元波形データを編集して編集済波形データを生成する波形編集方法に関する。 【0002】 【従来の技術】任意波形発生器は、波形メモリに波形データを記憶しておき、この波形メモリから読み出した波形データをデジタル・アナログ変換することによりアナログ波形信号を出力する。メモリに記憶する波形データの内容を任意に調整することにより任意の出力波形信号を発生することができる。この場合、操作者は、波形メモリに記憶された波形データをCRT(陰極線管)等の表示スクリーン上に表示し、この表示波形の形状を操作パネルを操作して任意に編集することにより所望の波形を生成することができる。 【0003】波形編集を実行する場合、表示波形の一部分を特定し、その特定の部分波形を横軸方向又は縦軸方向にシフトさせたり、拡大又は縮小表示させたりする操作が頻繁に行われる。その場合、シフトさせたり、拡大又は縮小させたりした特定の部分波形と元の波形とが重なったり離れたりすることにより、波形の不連続や空白部分が生じることがある。図4は、従来の波形編集方法の一例を説明するための波形図である。横軸が時間軸(各時間値はメモリの各アドレス値に対応)であり、縦軸は、各ポイントの電圧値を表す電圧軸である。時間軸上の1つのアドレスが1ポイントのデータに対応しており、1つの波形データは、例えば512ポイントとか1024ポイント等のデータ群で構成されている。元波形の点a(アドレス値:m)から点b(アドレス値:n)までの波形を時間軸に沿って右方向にΔTだけシフトさせた場合を示している。この元波形の点aから点bまでの部分を部分元波形(a〜b)と表記し、ΔTだけ右方向にシフトした後の点A(アドレス値:m+ΔT)から点B(アドレス値:n+ΔT)までの部分波形を編集済部分波形(A〜B)と表記する。部分元波形(a〜b)の全てのポイントをΔTずつシフトしたのが編集済部分波形(A〜B)であり、両者の波形部分は同一の形状の波形で表されるので、図4では、部分元波形(a〜b)の波形を便宜上表示していないことに留意されたい。 【0004】このように、部分元波形(a〜b)を編集済部分波形(A〜B)に移動させると、点aと点Aとの間が時間軸上で離間し、点bと点Bとの間が時間軸上で重複することになる。よって、この従来方法によれば、元波形と編集済部分波形(A+B)との間を滑らかに接続するために、元波形の点aから点cまでの波形データを用いて、点Aから点cまでを滑らかに接続する波形データを自動的に計算する。同様に、元波形の点bから点dまでの波形データを用いて点Bから点dまでを滑らかに接続する波形データも自動的に計算する。この結果、図4に太線で示すような、滑らかな曲線部分(c〜A)及び(B〜d)が自動的に得られるので、操作者は、元波形の任意の部分を選択して、時間軸方向にずらすだけで、ずらした波形部分の両端と元波形とが自動的に滑らかに接続されるので、波形編集を極めて容易かつ迅速に行うことができる。 【0005】図4において、点c(アドレス値:m−sm)から点A(アドレス値:m+ΔT)までの時間軸領域を第1スムージング領域という。また、点B(アドレス値:n+ΔT)から点d(n+ΔT+sm)までの時間軸領域を第2スムージング領域という。これら第1及び第2スムージング領域の範囲は、smの値を選択することにより、任意に設定できる。図4で太線で示した第1及び第2スムージング領域の部分波形(c〜A)及び(B〜d)は、それぞれ元波形の(c〜a)及び(b〜d)の部分波形データから自動的に計算されて得られもので、それぞれ第1スムージング編集済波形及び第2スムージング編集済波形と呼ぶ。例示として、元波形の部分波形(c〜a)上の任意の点eのデータを所定関数で計算することにより、第1スムージング編集済波形(c〜A)上の点fのデータが求められる。すなわち、点e及び点fの縦軸座標値は同じであり、点e及び点f間の横軸座標値(アドレス値)の差を変数yで表すと、この変数yは、点eの横軸座標(アドレス値)xの所定の3次関数とする。 【0006】図5は、図4の場合に対応して第1及び第2スムージング編集済波形部分を計算する方法を説明するための図である。横軸は、時間軸に対応する元波形データのアドレス値(変数x)を表し、縦軸は、元波形データから編集済波形データまでのアドレスシフト量(変数y)を表している。すなわち、元波形の点a(アドレス値:m)から点b(アドレス値:n)までの部分の全ポイントは、ΔTだけシフトされ、点Aから点Bまでの編集済部分波形(A〜B)に対応する線分で表している。この従来方法では、点cから点Aまでを滑らかに接続する曲線を得る必要があるので、求める曲線は、点cにおいてx軸に接し、点Aでは線分ABに滑らかにつながるように、傾きが線分ABと同じになる必要がある。図5では、線分ABは水平な線分であるが、元波形の一部分を拡大したり縮小したりすると、部分波形の連続ポイントにおけるアドレスシフト量を拡大率又は縮小率に応じて変化させることになるので、線分ABが傾く場合や曲線ABとなる場合も生じ得る。したがって、点cと点Aとを滑らかに接続する曲線の関数は、点cではx軸に接すること及び点Aでは線分(又は曲線)ABの点Aにおける傾きに一致した傾きになることを条件とする。この条件を満たす簡単な関数は、3次式で一義的に求めることができる。すなわち、x座標軸のx0の点でx軸に接し、かつ、点(x1,y1)を傾きKで通る3次式は、以下の数式1で表される。 【数1】y=p*(x−x0)*(x−x0)*(x−q)ただし、p={K*(x1−x0)−2*y1}/(x1−x0)**3q=x1−y1*(x1−x0)/{K*(x1−x0)−2*y1} ここで、「*」は乗算、「**」は累乗、「/」は除算を表す。 【0007】もちろん、図5のように線分ABが水平な直線の場合には、点Aにおける傾きK=0となる。上記数式1を図5の場合に適用するには、次の数式2のように置換するだけで容易に適用できる。 【数2】 x0=(m−sm) x1=my1=ΔTこれと同様に、図5の点Bから点dまでの第2スムージング波形の各ポイントのデータも3次式の計算から容易に求めることができる。 【0008】 【発明が解決しようとする課題】上述の従来方法では、波形データの横軸のアドレス値の密度に制限が存在することにより、現実に生成可能な編集済波形データのポイントと計算上のポイントがずれることになる。図6は、従来の方法の問題点を説明するための拡大図である。図6において、曲線50は、元波形データの波形の一部を示しており、ポイントeは、元波形データの中の1つのデータ・ポイントを表している。上述のように、従来の方法によれば、ポイントeのx座標の値から時間(アドレス値)のシフト量yが計算される。破線で示した曲線52は、このような計算上で得られた理想的な編集済データの曲線を表している。しかし、実際の波形編集装置においては、波形メモリのアドレスの密度の制限により、計算上の理想的な編集済データを生成することができない。図5において、ポイントeから計算した編集済データ・ポイントgは、現実の波形メモリ上のアドレス値に対応しているとは限らない。ポイントgは計算上の値を表しているに過ぎず、この計算上のポイントの前後の2つの点f及びgが現実のアドレス値i及びjに夫々対応した点である。この例では、ポイントgに最も近いポイントとしてポイントfが選択される。このように、図4について説明した従来の方法では、計算上のポイントがそのまま編集済データとして得られるのではなく、計算上のポイントの近似点の集合として編集済データが生成されるに過ぎない。すなわち、上記の例では計算上のポイントgが実際のアドレス値に対応したポイントfに置換されるので、現実に得られる編集済データには誤差が不可避的に含まれることになってしまう。 【0009】したがって、本発明の目的は、従来の波形編集方法の誤差を排除し、正確な編集済波形データを自動的に生成できる波形編集方法を提供することである。 【0010】 【課題を解決する為の手段】本発明は、メモリにアドレス順に連続的に記憶された複数ポイントの元波形データの選択された連続ポイントの部分元波形データを夫々一定方向にシフトした連続アドレスに編集済部分波形データを記憶し、該編集済部分波形データの一端から外側に連続する所定範囲のスムージング領域の各アドレス値のデータ値を求め、上記元波形データの表す曲線と上記編集済部分波形データの表す曲線とを滑らかに接続するスムージング編集済波形のデータを生成する波形編集方法である。この波形編集方法によれば、スムージング領域の特定のアドレス値から所定関数に基づいて高精度の仮想アドレス値を求め、この仮想アドレス値の近傍の実際の複数のアドレス値における夫々の上記元波形データの値から補間計算により上記仮想アドレス値における仮想データ値を求め、この仮想データ値を上記スムージング領域の上記特定のアドレス値のデータ値とすることにより、上記スムージング編集済波形のデータを生成することを特徴とする。 【0011】この結果、従来のような誤差が生じることなく、正確な編集済波形データを自動生成することが可能になる。 【0012】 【発明の実施の形態】図3は、本発明を適用するのに好適な任意波形発生器の構成の一例を示すブロック図である。この装置は、マイクロ・プロセッサ(μP)10によりメイン・バス12を介して制御され、ROM及びRAMを含んだシステム・メモリ14に種々のパターンの波形データ及び制御ソフトウェア等が記憶されている。操作者は、操作パネル16を介して種々の操作を実行する。出力波形メモリ18は、操作者により作成された任意の波形データを記憶する。表示装置20は当業者には周知のものであり、CRT(陰極線管)又は液晶表示装置の如き表示スクリーン上に出力波形メモリ18の内容及び操作者により設定された種々の条件、動作モード等の状態を表示する。出力回路22は、出力波形メモリ18から読み出された波形データをアナログ波形信号に変換して出力端子24を介して出力する。本発明によれば、出力波形メモリ18に記憶した波形データを読出し、表示装置20のスクリーン上に波形を表示しつつ、操作者が波形の編集を実行する。したがって、編集中の波形のデータも出力波形メモリ18の中の所定の記憶領域に記憶させ、元波形データを用いることにより、編集済波形データを生成する。元波形データをどのように用いるかについては、詳細に後述する。なお、出力波形メモリ18とは別のハードウエアとして編集用波形メモリを設けて、編集中の波形データ及び編集済波形データを記憶させるようにしても良い。 【0013】図1は、本発明の波形編集方法を説明するための波形図である。従来方法との比較のため、図4の例とほぼ同様の波形図で示している。しかし、スムージング領域の波形データの求め方は従来方法と異なることに留意されたい。すなわち、第1スムージング領域のポイントcからポイントAまでのスムージング編集済波形60上の特定のポイント62のデータ値を求める方法が従来方法と全く異なっている。この特定のポイント62の時間軸のアドレス値をz(既知)とすると、この特定のポイントに対応する元波形50上の仮想ポイント64の仮想アドレス値xを上述の数式1を用いて計算できる。すなわち、上述の数式1において以下のように置換すれば良い。 【数3】z=x−yすなわち、z=x−p*(x−x0)*(x−x0)*(x−q)ただし、p={K*(x1−x0)−2*y1}/(x1−x0)**3q=x1−y1*(x1−x0)/{K*(x1−x0)−2*y1} 【0014】もちろん、図5の場合と同様に線分ABが水平な直線の場合には、点Aにおける傾きK=0となる。上述の数式2の場合と同様に、上記数式3において、次の数式4のように置換するだけで図1の場合に容易に適用できる。 【数4】 x0=(m−sm) x1=my1=ΔTなお、上記仮想アドレス値xは、数式3の3次関数を解くことにより容易に求められる。これと同様に、図1の点Bから点dまでの第2スムージング領域の波形の各ポイントのデータも同様の計算から容易に求めることができる。 【0015】図1において、仮想アドレス値xが計算されると、この仮想アドレス値における元波形50上の仮想ポイント64の電圧データ値Vxが計算される。この結果得られた電圧データ値Vxがスムージング編集済波形60上の特定のポイント62のデータ値として採用され、結局、特定のポイント62のデータが完全に決定することになる。 【0016】図2は、図1の波形図の一部分を拡大表示した図である。スムージング編集済波形60上の全てのポイントは既知のアドレス値に夫々対応しているので、この特定のポイント62のアドレス値zも既知である。しかし、スムージング編集済波形60上の各ポイントの電圧データ値は不明なので、スムージング編集済波形60のデータを決定するには、各アドレス値の電圧データ値を求める必要がある。特定のポイント62の電圧データ値は、上述のように、数式3及び4に基づき、高精度の仮想アドレス値xを計算し、この仮想アドレス値xにおける元波形50上の仮想ポイント64の電圧データ値Vxを求めることにより、特定ポイント62の電圧データ値を正確に決定することができる。ここで、仮想ポイント64の仮想アドレス値xは、一般にメモリのアドレス値に一致していないので、単に計算上の仮想ポイントである。よって、この仮想ポイント64の電圧データ値を正確に求めることにより、スムージング編集済波形60上の特定のポイント62のデータ値を正確に決定する。このために、仮想ポイント64の近傍の複数のポイントの補間計算を実行する。図2の場合、アドレス値s、電圧値V1の実際のポイント66とアドレス値r、電圧値V2の実際のポイント68の間で線形補間計算を実行することにより容易に正確なデータ値Vxを求めることができる。 【0017】すなわち、元波形50上のポイント66及び68のアドレス値及び電圧値は既知であり、上述の計算で仮想アドレス値xも決定されるので、仮想ポイント64の電圧値も線形補間の計算により容易に求められる。この仮想ポイント64の電圧値Vxをスムージング編集済波形60上の特定のポイント62の電圧値として採用する。この結果、ポイント62のデータ値が正確に決定される。なお、図2では、仮想ポイント64の近傍の2つの既知のポイント66及び68の線形補間を計算したが、補間計算は、線形補間に限定されるものではない。例えば、仮想ポイント64の近傍の3つのポイント間で2次補間計算をしても良いし、3次補間計算や周知のsinX/X補間計算を採用しても良い。 【0018】以上、本発明の好適実施例を説明したが、本発明は、上述の実施例のみに限定されるものではなく、本発明の要旨から逸脱することなく、種々の変形及び修正を加え得ることは当業者には明らかである。
|
| 【出願人】 |
【識別番号】000108409 【氏名又は名称】ソニー・テクトロニクス株式会社
|
| 【出願日】 |
平成9年(1997)11月25日 |
| 【代理人】 |
|
| 【公開番号】 |
特開平11−160363 |
| 【公開日】 |
平成11年(1999)6月18日 |
| 【出願番号】 |
特願平9−339306 |
|