(57)【特許請求の範囲】
【請求項１】
グラフィカル・ユーザインターフェース（ＧＵＩ）上に線で相互連結されたブロックを含むブロックダイヤグラムを、コンピュータを用いて生成する段階と、
ソースブロック並びにバッファリング或いはサンプル速度及び／又はフレームサイズに関連する変更を備えたブロックにおいて、フレーム及びチャンネル情報を、コンピュータを用いて指定する段階であって、前記フレーム情報は、フレームが連続か不連続かを識別する情報を含む、指定する段階と、
前記ブロックダイヤグラムにおける各ブロックで利用可能なフレーム及びチャンネル情報を、コンピュータを用いて伝搬する段階とを含む、コンピュータにより実現される方法。
【請求項２】
前記フレーム及びチャンネル情報をＧＵＩで表示する段階を更に含む、請求項１に記載の方法。
【請求項３】
前記フレーム及びチャンネル情報が、
フレーム長と、
チャンネル数とを更に含む、請求項１に記載の方法。
【請求項４】
前記フレーム及びチャンネル情報は前記フレームが連続フレームであることを識別し、連続フレームは、直前及び直後のフレーム内のサンプルと時間的に連続又は隣接する１つのフレーム内のサンプルを表す、請求項１に記載の方法。
【請求項５】
連続フレームにおける前記サンプル間の間隔がΔs = Tf/Fとして計算され、Fがフレーム長を表し、Tfが新しいフレームが作成される期間を表す、請求項４に記載の方法。
【請求項６】
前記フレーム情報は前記フレームが不連続フレームであることを識別し、不連続フレームは、直前及び直後のフレーム内のサンプルと時間的に連続又は隣接しない１つのフレーム内のサンプルを表し、不連続フレームは、各不連続フレーム内のサンプル間の間隔によって、前記フレーム情報において均等又は不均等として識別される、請求項１に記載の方法。
【請求項７】
均等な不連続フレームの前記サンプル間の間隔がΔs＝Ｔｆ／Ｆとして計算され、Fがフレーム長を表し、Tfが新しいフレームが作成される期間を表す、請求項６に記載の方法。
【請求項８】
不均等な不連続フレームの前記サンプル間の間隔が、各フレームについて間隔関数fΔ(i)として表される、請求項６に記載の方法。
【請求項９】
不連続フレームが、ＧＵＩ上で、周期的な垂直分離線を備えた二重線矢印として表される、請求項２に記載の方法。
【請求項１０】
コンピュータにより実現されるブロックダイヤグラム・モデリング方法であって、
グラフィカル・ユーザインターフェース（ＧＵＩ）上に線で相互連結されたブロックを含むブロックダイヤグラムを、コンピュータを用いて生成する段階と、
フレーム及びチャンネル情報をコンピュータを用いて指定する段階であって、該フレーム情報がフレーム長及び連続又は不連続として識別されたフレーム・カテゴリを含み、該チャンネル情報がチャンネル数を含む、指定する段階と、
前記ブロックダイヤグラムにおけるその後の各ブロックで利用可能なフレーム及びチャンネル情報を、コンピュータを用いて伝搬する段階とを含む、方法。
【請求項１１】
前記フレーム及びチャンネル情報をＧＵＩで表示する段階を更に含む、請求項１０に記載の方法。
【請求項１２】
前記フレーム・カテゴリが連続フレームであり、連続フレームは、直前及び直後のフレーム内のサンプルと時間的に連続又は隣接する１つのフレーム内のサンプルを表す、請求項１０に記載の方法。
【請求項１３】
連続フレームにおける前記サンプル間の間隔がΔs = Tf/Fとして計算され、Fがフレーム長を表し、Tfが新しいフレームが作成される期間を表す、請求項１２に記載の方法。
【請求項１４】
前記フレーム・カテゴリが不連続フレームあり、不連続フレームは、直前及び直後のフレーム内のサンプルと時間的に連続又は隣接しない１つのフレーム内のサンプルを表し、不連続フレームは、各不連続フレーム内のサンプル間の間隔によって、均等又は不均等として識別される、請求項１０に記載の方法。
【請求項１５】
均等な不連続フレームの前記サンプル間の間隔が、Δs＝Ｔｆ／Ｆとして計算され、Fがフレーム長を表し、Tfが新しいフレームが作成される期間を表す、請求項１４に記載の方法。
【請求項１６】
不均等な不連続フレームの前記サンプル間の間隔が、各フレームについて間隔関数fΔ(i)として表される、請求項１４に記載の方法。
【請求項１７】
不連続フレームが、ＧＵＩ上で、周期的な垂直分離線を備えた二重線矢印として表される、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ブロックダイヤグラム・モデリングにおけるフレームに関する。
【背景技術】
【０００２】
信号処理システムは、一組の所望の出力信号を得るために１つ又は複数の入力信号に一連の信号操作及び変換を実行する複数の構成要素を一般に含む。実世界におけるほとんどの応用例では、こうした信号処理システムは、この処理を実時間で実行して、入力信号のサンプルが利用可能になるのに合わせて出力信号のサンプルを生成する必要がある。この処理は、サンプルベース処理又はフレームベース処理を用いて実行できる。サンプルベース処理では、各構成要素は、その実行毎にその入力信号の１つのサンプルに作用する。フレームベース処理では、各構成要素は、その実行毎にその入力信号内の連続サンプルのバッチすなわち「フレーム」に作用する。
【０００３】
フレームベース処理には、サンプルベース処理に比べて幾つかの利点がある。例えば、フレームベース処理では、所定数のサンプルを処理するために構成要素が実行される回数が減少する。この減少により、システム全体のソフトウェア及びハードウェア実装において、システム内で構成要素を繰り返し実行することに関わるオーバーヘッドが少なくなる。
【０００４】
更にフレームベース処理では、複数のサンプルがアルゴリズムの各実行ステップで処理される場合は、より効率的にアルゴリズムを実現する様々な信号操作及び変換が存在する。こうした操作の一例が、直接サンプルベース畳み込みによるか、フレームベースのオーバーラップ加算（ＯＬＡ）アルゴリズムによって実現可能な有限インパルス応答（ＦＩＲ）デジタル・フィルタリングである。Ｍタップフィルタを介して処理される入力信号のＮ個のサンプルに関し、直接畳み込みアプローチの計算量はO(NM)だが、ＯＬＡアルゴリズムの計算量はO(N
log M)であり、より優れている。
【０００５】
ブロックダイヤグラム・モデリングは、（ソフトウェア又はハードウェアでの）カスタム信号処理システムを概念化、設計、シミュレーション、及び実現する過程を単純化する。ブロックダイヤグラム・モデルは、動的システムを表す信号と状態変数との時間ベースの関係である。モデルの解（システム応答の計算）は、これら関係を経時的に評価することより得られ、この時間はユーザが指定する「開始時刻」で開始され、ユーザが指定する「停止時刻」で終了する。これら関係の各評価は、時間段階と呼ばれる。信号は経時的に変化する量を表し、これら量は、ブロックダイヤグラムの開始時刻と停止時刻との間の全時刻に関して定義される。信号と状態変数との間の関係は、ブロックにより表される式の組により定義される。これら式は、入力信号と、出力信号と、状態変数との関係を定義する。この定義にはパラメータの概念が含まれ、パラメータは式の係数である。このブロックダイヤグラム・モデリングのアプローチは、シミュリンク（原語：Simulink）（登録商標）などの、システム分析及び設計の様々な側面を扱う多様なソフトウェア製品を生み出してきた。
【０００６】
信号は、その値が信号サンプルにより表される場合はサンプルベースといわれる。この概念を拡張して、信号は、その値が複数サンプルのバッチにより表される場合はフレームベースといわれる。
発明の概要
【０００７】
一様態では、本発明は、グラフィカル・ユーザインターフェース（ＧＵＩ）上に線で相互連結されたブロックを含むブロックダイヤグラムを生成する段階と、ソースブロック並びにバッファリング或いはサンプル速度及び／又はフレームサイズに関連する変更を備えたブロックにおいて、フレーム及びチャンネル情報を指定する段階と、前記ブロックダイヤグラムにおける各ブロックで利用可能なフレーム及びチャンネル情報を伝搬する段階とを含む、方法を特徴とする。
【０００８】
次の１つ又は複数の有利な特徴を含むこともできる。この方法は、フレーム及びチャンネル情報をＧＵＩで表示する段階も含むことができる。フレーム及びチャンネル情報は、フレーム長、チャンネル数、フレーム・カテゴリ、及びサンプル間の間隔を含むことができる。
【０００９】
幾つかの実施形態では、フレーム・カテゴリを連続フレームすることができる。連続フレームは、直前及び直後のフレームと連続的である１つのフレーム内のサンプルを表すことができる。連続フレームにおけるサンプル間の間隔は、Δs
= Tf/Fとして計算でき、ここでFはフレーム長を表し、Tfは新しいフレームが生成される速度を表す。
【００１０】
フレーム・カテゴリは不連続フレームでもよい。不連続フレームは、直前及び直後のフレームのサンプルと連続的でないか、隣接していない１つのフレームのサンプルを表すことができる。不連続フレームのサンプル間の間隔は、均等な不連続フレームに関してΔsとして表すことができる。不連続フレームのサンプル間の間隔は、不均等な不連続フレームに関して各フレームについて間隔関数fΔ(i)として表すことができる。不連続フレームは、ＧＵＩ上で、周期的な垂直分離線を備えた二重線矢印として示すことができる。
【００１１】
一様態では、本発明は、ブロックダイヤグラム・モデリング方法であって、グラフィカル・ユーザインターフェース（ＧＵＩ）上に線で相互連結されたブロックを含むブロックダイヤグラムを生成する段階と、フレーム長、チャンネル数、フレーム・カテゴリ、及びサンプル間の間隔を含むフレーム及びチャンネル情報を指定する段階と、前記ブロックダイヤグラムにおけるその後の各ブロックで利用可能なフレーム及びチャンネル情報を伝搬する段階とを含む、方法を特徴とする。
【００１２】
次の１つ又は複数の有利な特徴を含むこともできる。この方法は、フレーム及びチャンネル情報をＧＵＩで表示する段階も含むことができる。
【００１３】
幾つかの実施形態では、フレーム・カテゴリを連続フレームすることができる。連続フレームは、直前及び直後のフレームと連続的である１つのフレーム内のサンプルを表すことができる。連続フレームにおけるサンプル間の間隔は、Δs
= Tf/Fとして計算でき、ここでFはフレーム長を表し、Tfは新しいフレームが生成される速度を表す。
【００１４】
フレーム・カテゴリは不連続フレームでもよい。不連続フレームは、直前及び直後のフレームのサンプルと連続的でないか、隣接していない１つのフレームのサンプルを表すことができる。不連続フレームのサンプル間の間隔は、均等な不連続フレームに関してΔsとして表すことができる。不連続フレームのサンプル間の間隔は、不均等な不連続フレームに関して各フレームについて間隔関数fΔ(i)として表すことができる。不連続フレームは、ＧＵＩ上で、周期的な垂直分離線を備えた二重線矢印として示すことができる。
【００１５】
本発明の１つ又は複数の実施形態の詳細は、添付の図面及び以下の説明に記載されている。本発明のその他の特徴、目的、及び利点は、詳細な説明及び図面、並びに特許請求の範囲から明らかとなるはずである。
【発明を実施するための最良の形態】
【００１６】
図１において、モデリング・システム１０はプロセッサ１２及びメモリ１４を含む。メモリ１４は、リナックス又はウィンドウズ（登録商標）ＸＰなどのオペレーティング・システム（ＯＳ）１６と、ネットワーク（図示しない）を介して通信するためのＴＣＰ／ＩＰプロトコル・スタック１８と、ブロックダイヤグラム・モデリング・プロセス１００とを含む。又、システム１０は、記憶装置２０及び入出力（Ｉ／Ｏ）装置２２も含む。Ｉ／Ｏ装置２２は、ユーザ２６に表示するためのグラフィカル・ユーザインターフェース（ＧＵＩ）２４を含むことができる。
【００１７】
以前は、ブロックダイヤグラム・プロセスはある程度のフレームベース処理をサポートしていた。こうした以前のフレームベースのサポートは、プロセス１００と違って、概ね３つのカテゴリに分類される制約を受けていた。
【００１８】
本明細書でＦ−Ｉと呼ぶ第１のカテゴリでは、ブロックダイヤグラム全体のフレーム処理を切り換える機能がある。このアプローチでは、ユーザには、ブロックダイヤグラム内のブロックが、フレームベース・モード又はサンプルベース・モードのどちらで動作するかを指定するオプションが与えられる。フレームベース・モードで動作するときは、ユーザには、信号値の各フレームにおけるサンプル数を指定する機能が与えられる。
【００１９】
本明細書でＦ−ＩＩと呼ぶ第２のカテゴリでは、ブロックダイヤグラム内の各ブロックのフレーム処理を切り換える機能がある。このアプローチでは、ユーザには、各ブロックがフレームベース・モードで動作するかどうかを指定する機能が与えられる。更に、ユーザは各ブロックにおいてフレームのサイズを指定することになる。このアプローチにより、ユーザは、フレームベース及びサンプルベースの両方の特徴を持つ下位構成要素を備えた異種システムを構築できる。しかし、このアプローチは、ユーザが各ブロックで重複したフレーム情報を入力しなければならないので、かなり面倒であり、エラーが起こりやすいという欠点がある。
【００２０】
本明細書ではＦ−ＩＩＩ又は暗黙フレームベース処理と呼ぶ第３のカテゴリは、後述する高レベルの機構を用いて上述した２つのフレームベース処理アプローチＦ−Ｉ及びＦ−ＩＩの欠点を克服している。
【００２１】
図２では、ＧＵＩ５０は、サンプルベース・セクション５２及びフレームベース・セクション５４を備えたブロックダイヤグラム５１を含む。セクション５２は、正弦ブロック５６と、ＦＩＲ補間ブロック５８と、スコープ・ブロック６０とを含む。セクション５４は、正弦ブロック６２と、ＦＩＲ補間ブロック６４と、スコープ・ブロック６６とを含む。Ｆ−ＩＩのアプローチとは対照的に、ユーザは、２つのカテゴリのブロック（すなわち、ソースブロック、並びに／若しくはバッファリング或いはサンプル速度及び／又はフレームサイズに関連する変更を備えたブロック）のうち一方のみにフレーム属性情報を指定する。ソースブロックとは、入力信号を持たず、その値が時間の関数である信号を生成するブロックである。ユーザは、ソースが、どれだけの数のサンプルをバッファーに蓄積してから複数信号値からなるフレームを生成すべきかを指定できる。実行されると、ソースは、複数信号値からなる１つのフレームから構成される出力信号を生成する。ソース以外のバッファなどのブロックも、実行時に、それ自身の入力信号の関数としてフレームベース信号を生成できる。他のブロックは、信号のサンプル速度又はフレームサイズを変更でき、こうした変更はフレーム属性に影響する。
【００２２】
フレームベース補間の場合（例えば、セクション５４）、フレーム情報は、ソース正弦波ブロック６２のパラメータによってのみ指定される。正弦波ブロック６２のパラメータ・ダイアログＧＵＩ６８では、フレーム毎に３２個のサンプルがあることに注目されたい。これは、正弦波ブロック６２が、実行されると３２個のサンプルからなる１つのフレームを含む信号を生成することを意味する。このブロックダイヤグラムの実行時（本明細書では「ランタイム」とも呼ぶ）に、マサチューセッツ州ナティック所在のマスワークス社から入手可能なシミュリンク（登録商標）などのプロセス１００は、ユーザがフレーム情報を指定したブロックからのこの情報を、当該ブロックダイヤグラムにおける他のブロック全てに伝搬する。これは、ユーザがランタイム以前にフレーム属性を指定するＦ−Ｉ及びＦ−ＩＩのアプローチとは極めて対照的である。
【００２３】
この伝搬機構は、ブロックダイヤグラムおいて、フレーム情報を明示的に含むブロック（例えばソース及びバッファー）から、明示的なフレーム情報を持たない他のブロックにフレーム情報を送る役目を負っている。このフレーム情報は、（１）１つのブロックを他のブロックに連結する信号がサンプルベースかフレームベースを指定する１ビット情報と、（２）本明細書では[M
x 1]ベクトルとして表す、サンプルの数(M)によるフレームサイズとを含む。
【００２４】
セクション５２、５４では、フレーム属性は、正弦ブロック５６、６２からＦＩＲ補間ブロック５８、６４及びスコープ・ブロック６０、６６へ自動的に伝搬される。従って、フレーム情報は正弦ブロック５６、６２で指定されているだけでよい。残りのブロックは、フレーム属性情報を伝搬によって自動的に取得する。
【００２５】
このアプローチの重要な利点は、シミュリンク（登録商標）などのブロックダイヤグラム・プロセスを用いた、異なる二組のユーザを考慮してみれば理解できる。２番目のユーザ達は、様々な信号処理操作に応答するカスタム・ブロックの実現に責任を負っている。第３番目のユーザ達は、カスタム信号処理システムを実現するブロックダイヤグラムを構築するユーザである。フレーム情報の伝搬により、次の作業が自動的に容易となる。
【００２６】
第２番目のユーザ達は、ある処理のサンプルベース及びフレームベース実装を単一ブロックにパッケージ化できる。全ての信号のフレーム属性が分かっていれば、こうしたブロックは、ランタイムに適当な実装を使用できる。ランタイムにおける実装のこうした動的選択は、Ｃ＋＋及びＪａｖａ（登録商標）などのプログラミング言語が備えた多相性に似ている。
【００２７】
第３番目のユーザ達は、事前に厳密な文脈を指定しなくても、サンプルベース文脈及びフレームベース文脈の両方で同一ブロックを使用できる。これは、このソフトウェア・パッケージの使いやすさに貢献する。更に、これらユーザは、サンプル速度及び／又はフレームサイズに影響するブロックのみを操作することで、システムのサンプルベース実装とフレームベース実装との間を容易に切り換えることもできる。これは、ユーザがフレーム情報をソース正弦波ブロックのみで特定する必要がある、図２に示されている。これらソースに結合された残りのブロックは、サンプルベース又はフレームベースの挙動に自動的に適応する。
【００２８】
図３において、ＧＵＩ２００は、マルチチャネル・フレームベース処理を示す。様々な信号処理領域において、単一の信号は複数のチャンネルに分離される（例えば、音声領域における２チャンネル・ステレオ信号、レーダー及びソナー領域におけるＮチャンネル信号）。更に、これら領域では、マルチチャンネル信号はアプリケーション・システム（例えば、音声信号用の圧縮システム）を介して単一のアトミック信号として処理される。
【００２９】
第３番目のユーザに関連して上述したように、フレームベース処理の伝搬機構は、１つのブロックから別のブロックへ２つの情報を送る役目を負っている。マルチチャンネル処理をプロセス１００において実現するには、もう１つの情報（すなわち、チャンネル数(N)）を伝えるようにこの機構を拡張する。表現を簡素化するため、ここではフレーム及びチャンネルサイズ情報を、[M
x N]という表現に統合する。
【００３０】
ブロックダイヤグラム２０２は、音声特殊効果であるステレオパニングをシミュレートする。ブロックダイヤグラム２０２では、モノラル音声信号の１２８個のサンプル２０４のフレームが、チャンネル毎に１２８個のサンプルを備えたステレオ音声信号にどのように変換されるかが分かる。
【００３１】
異種シミュレーションに関して、このアプローチは、ブロックダイヤグラムをサンプルベース及びフレームベースの下位構成要素に分割する助けとなる視覚的合図（原語：cue）という概念を用いる。こうした合図は、ユーザが、ブロックダイヤグラムの図表示を見ることにより最大の情報を素早く取り込むのに必要である。第１の合図には、ブロックを結合する線を２つの異なる形式で引くことが含まれる。１つのブロックを他のブロックに相互連結するサンプルベース信号を表す線としては、単線を用いる。１つのブロックを他のブロックに相互連結するフレームベース信号を表す線としては、二重線を用いる。第２の合図では、フレームサイズ(M)及びチャンネル数(N)が、[M
x N]形式で各線上に示される。
【００３２】
プロセス１００は、上述した暗黙のフレームベース処理アプローチを拡張する。例えば、プロセス１００は、フレームを連続的と不連続的というカテゴリに分類する。上述のアプローチＦ−ＩＩＩでは、各フレームは、単に順次信号サンプルのバッチであると見なされていた。プロセス１００では、我々は、１つのフレームに含まれるサンプルの、次のフレームに含まれるサンプルへの関係に基づいた、次のフレーム分類を導入する。
【００３３】
連続フレーム：  あるフレーム内のサンプルが直前及び直後のフレーム内のサンプルに時間的に連続していれば、フレームベース信号の値は連続フレームから構成されている。
【００３４】
不連続フレーム：  あるフレーム内のサンプルが直前尾及び直後のフレーム内のサンプルに時間的に連続又は隣接していない場合、フレームベース信号の値は不連続フレームから構成されている。こうしたフレームが生成されるのは、１つのフレームから次のフレームの間でサンプルにオーバーラップ又は隙間がある時か、１つのフレームから次のフレームまでのサンプルが独立していて、その間に何の連続関係（原語：sequential
relationship）もない時である。フレームが、その入力信号を周波数又はケプストラム領域などの別の領域に変換するブロックにより生成される信号に対応する場合は、後者が一般的である。
【００３５】
連続又は不連続というフレームの分類は、例えば異なる２つの例で有用である。信号の視覚化及びロギングにおいて、フレームが連続的だと分かっていれば、ビューアは１つのフレームから次のフレームにかけて信号内の値を継ぎ目なしでプロットできる。又、信号は、後で順次分析できるように経時的にロギングできる。このことは、スコープが、連続フレームを含む信号をプロットする図４に示されている。反対に、不連続フレームの場合、ビューアには、新しい各フレームの信号値が利用可能となる毎に、経時的に表示情報をリフレッシュする機能を特に付与できる。
【００３６】
ブロックの多相性においては、入力信号フレームが連続的か不連続的かを知ることにより、ブロックは自動的にそれ自身の挙動を修正できる。例えば、ユニット遅延ブロックの場合を考慮する。ユニット遅延ブロックは、その入力を指定されたサンプル時間で遅らせる。ユニット遅延ブロックは、１つの入力を受け取り１つの出力を生成するが、これは両方ともスカラーでもベクトルでもよい。入力フレームが連続的か不連続的かに従って、このブロックは、図５に示したようにその挙動をサンプル遅延又は全フレーム遅延に自動的に変更できる。離散フィルタブロックを考慮すれば、こうした多相性の更に別の例が見つかる。離散フィルタブロックは、z-1（遅延演算子）の多項式を用いてデジタル・フィルタを記述する信号処理技術者が頻繁に使用する方法である。このフィルタブロックへの入力が連続フレームであれば、このフィルタはその入力信号の連続するフレームを処理する過程で、その状態を維持するはずである。不連続フレーム入力の場合、２つの連続したフレーム間には表現可能な関係がないので、このフィルタはその入力信号の連続するフレームを処理する過程で、その状態を初期条件にリセットするはずである。
【００３７】
プロセス１００は、サンプル間の時間間隔Δsを各フレームと関連付ける。連続フレームの場合は、２つのサンプル間の間隔を明示的に捕獲する必要はない。これは、各フレームの長さ(F)と新しいフレームが生成される期間とが与えられれば、サンプル間の間隔は、Δs
= Tf/Fとして計算できるからである。
【００３８】
不連続フレームの場合、サンプル間の間隔情報を各フレームに明示的に関連付ける。不連続フレーム内のサンプルが均等に離間しているかどうかに基づいて、この情報は２つの形式のうち何れかを取ることができる。均等な不連続フレームでは、フレーム内のサンプルは等しく離れている。こうしたフレームに関しては、図６に示したように、ここではサンプル間の間隔である単一の数Δsを記憶するのみである。不均等な不連続フレームに関しては、これらは、フレーム内のサンプルが等しく離れていないフレームである。こうしたフレームについては、間隔関数fΔ(i)を各フレームに関連付ける。フレーム内のある要素の指数「i」が与えられれば、fΔ(i)は、指数「i-1」を備えた直前のサンプルからの分離間隔を与える。或いは、サンプルが不均等に離れており、Δsに関する他の情報が得られないことを記録する。
【００３９】
各不連続フレームに関するサンプル間の間隔を明示的に捕獲すると、幾つかの利点が得られる。図７では、信号視覚化及びロギングが改善している。Δsを使用しなければ、周波数プロットのＸ軸における間隔は正しくならなかったはずである。又、この例は、不均等に離間されたフィルタバンクにより生成されるものような不均等な不連続フレームの場合にも容易に拡張できる。
【００４０】
サンプル間の間隔を明示的に明確化することで、複数のフレーム入力信号を用いるブロックが、入力信号値の間の位置合わせを実行できる。例えば、ここで２つのフレームベース入力信号を加算可能な「合計」ブロックを考慮する。加算されている２つの信号に関してサンプル間の間隔が均等でない場合、このブロックは自動的にエラーを生成できる。こうした位置合わせ制約を課すことができることで、大きなアプリケーションに対してクリーンなモデリング環境を提供する。
【００４１】
上述したアプローチＦ−ＩＩＩにより、ブロックダイヤグラムにおける１つのブロックから他のブロックへのフレーム情報の自動的な伝搬が導入された。これにより、ソースブロックとサンプル速度及び／又はフレームサイズを変更又は指定するブロック内で、フレーム情報の指定が最小限になった。プロセス１００では、伝搬されるこのフレーム情報を拡張して、フレーム・カテゴリ（連続的又は不連続的）と不連続フレームに関するサンプル間の間隔Δs（又はfΔ(s)）とを含める。こうした伝搬機構によって、ブロック多相性、信号視覚化、及びデータの境界合わせなどの利点が得られる。
【００４２】
プロセス１００は、連続フレームと不連続フレームベース信号とを区別するために標識付けブロックダイヤグラムを生成する段階を含む。例えば、不連続フレームを示すため、周期的な垂直分離線を備えた二重線矢印を用いている。こうした標識付けにより、ユーザはダイヤグラムを、異なるフレーム形式を処理する様々な領域へ視覚的に分割できる。又、フレーム内のサンプル間の間隔を示すため、線にはコールアウトで注釈を付ける。
【００４３】
プロセス１００は、入力として、線により相互連結されたブロックと、ソースブロック、バッファリングを備えたブロック、及びサンプル速度及び／又はフレームサイズを変更又は指定するブロックで指定されたフレーム及びチャンネル情報とを含むブロックダイヤグラムを受け取る。プロセス１００は、ブロックダイヤグラムにおける各ブロックで利用可能なフレーム及びチャンネル情報と、フレーム情報の表示とをＧＵＩにおいて出力する。
【００４４】
ブロックダイヤグラムにおけるブロックの各ポートで、フレーム及びチャンネル情報は、フレーム長、チャンネル数、フレーム・カテゴリ、及びサンプル間の間隔という属性を用いて表される。上述の情報を捕獲するために使用できる（Ｃ言語における）データ構造は次の通り。
【００４５】
0004580926.tif 000002
【００４６】
このフレーム情報は、ソースブロックのポートとサンプル速度及び／又はフレームサイズを変更又は指定するブロックのポートとで一般に完全に指定される。すると伝搬機構は、この情報がブロックダイヤグラムにおける残りのブロックのポートに自動的に伝搬されることを保証する。この伝搬機構の構成要素を後述する。
【００４７】
プロセス１００は、フレーム伝搬サブプロセス１０２を含む。サブプロセス１０２は、外部ループ・ステージ１０４及び内部ループ・ステージ１０６を含む。外部ループ・ステージは、ソースブロックからそれに直接的又は間接的に結合されている全ブロックへフレーム及びチャンネル情報を送る役目を負う全体処理ループである。
【００４８】
図８では、外部ループ・ステージ１０４は、サンプル速度及びフレームサイズなどのフレーム情報を変更又は指定する全ブロックの集合Ｓを生成するステップ（３００）を含む。ステージ１０４は、集合Ｓが空かどうかを調べる（３０２）。集合Ｓが空の場合、ステージ１０４はフレーム／チャンネル情報をＧＵＩ線上に描いて、終了する。
【００４９】
集合Ｓが空でない場合、ステージ１０２は集合Ｓ内の第１ブロックＢを処理する（３０８）。ステージ１０２は、Ｂの全出力信号に関するフレーム／チャンネル情報が既知かどうかを調べる（３１０）。既知なら、ステージ１０２は終了する。既知でなければ、ステージ１０２は、フレーム／チャンネル情報をＢに結合されている全ブロックに送る（３１２）。ステージ１０２がエラーを確認すると（３１４）、終了する。エラーが確認されない場合は（３１４）、ステージ１０２は、ＢをＳから除去して（３１６）、集合Ｓが空かどうかを調べる（３０２）。
【００５０】
図９では、内部ループ・ステージ１０６は、所定のブロックから入力信号を得る全ブロックの集合Ｓを生成するステップ（４００）を含む。ステージ１０６は、集合Ｓが空かどうかを調べ（４０２）、もし空なら終了する。集合Ｓが空でない場合、ステージ１０６は集合Ｓ内の第１ブロックＢを処理する（４０４）。ステージ１０６は、フレーム／チャンネル情報を所定のブロックからＢに送ることで、ステージ１０８を実行する（４０６）。ブロックＢは、この情報をその出力信号に使う。ステージ１０６は、エラーが発生するかどうかを調べ（４０８）、エラーが発生した場合は終了する。エラーが確認されない場合は（４０８）、ステージ１０６は、Ｂから入力信号を受け取る全ブロックにフレーム／チャンネル情報を送る（４１０）。ステージ１０６は、エラーを確認すると（４１２）終了する。エラーが確認されない場合は（４１２）、ステージ１０６は、ＢをＳから除去して（４１４）、集合Ｓが空かどうかを調べる（４０２）。
【００５１】
図１０では、ステージ１０８は、ブロックＢに関して新たに識別されたフレーム／チャンネル情報が、このブロックの入出力信号の既知のフレーム／チャンネル情報ブロックと一致しているかチェックするステップ（５００）を含む。エラーが確認された場合は（５０２）、ステージ１０８は終了する。エラーが発生しなければ、ステージ１０８は、入力信号の既知のフレーム／チャンネル情報を用いて、入出力信号に関する未知のフレーム／チャンネル情報を調べる（５０４）。もしステージ１０８が、Ｂの全入力信号に関するフレーム／チャンネル情報が既知でないことを確認した場合は（５０６）、ステージ１０８はエラーフラグを立て、終了する。もしステージ１０８が全出力信号に関するフレーム／チャンネル情報が既知であることを確認した場合は（５０８）、ステージ１０８はエラーフラグをクリアして、終了する。
【００５２】
ステージ１０４、１０６、１０８は、入力フレーム及びチャンネル情報に基づいて出力フレーム及びチャンネル情報を決定する規則を用いるステップを含む。こうした規則の幾つかの例を次に示す。例えば、バッファー・ブロックはサンプルベース信号を受け取り、それを指定されたフレームサイズのフレームベース信号に変換する。このブロックは、入力がサンプルベース信号であるという制約を課す。次に、このブロックは、指定されたフレームサイズのフレームベース信号を出力する。隣接フレーム間にオーバーラップや隙間がなければ、フレーム・カテゴリは連続に設定される。オーバーラップや隙間があれば、このカテゴリは不連続に設定される。サンプル間の間隔は適宜設定される。
【００５３】
別の例では、サンプルベース又はフレームベース信号を受け取って、その信号を整数因子でアップサンプリングするアップサンプリング器ブロックは、次の制約を課す。（１）入力がサンプルベースであれば、出力もサンプルベースである；（２）入力がフレームベースであれば、出力もフレームベースである；（３）入力フレーム・カテゴリは連続的でなければならない；（４）入出力信号は同一チャンネルサイズを備える；（５）出力フレームサイズは、入力フレームサイズをアップサンプリング因子で乗じたものである；（６）フレームベース信号の出力サンプル間の間隔は、入力の間隔の２分の１である。
【００５４】
（カスタムブロックを実装する）第２番目のユーザ達が、各ブロックにこれら規則を構築しなければならない事態を回避するため、これらユーザには、次のような組込みのデフォルト規則を提供する。
【００５５】
１．入力信号が１つで出力信号が１つのブロックに関しては、これら入出力信号は、同一のフレーム及びチャンネル属性をそなえていると想定する。
【００５６】
複数の入力信号及び１つの出力信号を備えたブロックに関しては、次のケースの何れかを実施する。
【００５７】
（ａ）全ての入力がサンプルベースであれば、出力はサンプルベースである。
【００５８】
（ｂ）全ての入力がフレームベースで、同一フレーム・カテゴリ且つ同じサンプル間の間隔であれば、出力はフレームベースであり、これら入力の任意のものと同一のカテゴリ及びサンプル間の間隔を備えている。更に、全ての入力及び出力は、そのフレーム及びチャンネルサイズを備えるように制約を受ける。
【００５９】
もし幾つかの入力がサンプルベースであり、幾つかが（同一のフレーム・カテゴリ及びサンプル間の間隔を備えた）フレームベースであれば、出力はフレームベースに設定され、フレーム・カテゴリ及びサンプル間の間隔はこれらフレームベース入力の何れかと同じに設定される。更に、全てのフレームベース入力及び出力は、そのフレーム及びチャンネル属性に関して同一サイズを備えるように制約を受ける。
【００６０】
（ｄ）これ以外の全ての組み合わせはエラーとなる。ユーザが特殊な挙動を望む場合は、このデフォルト規則に依存する必要はなく、カスタム伝搬規則を自分のブロックに組み込みできることに注目されたい。
【００６１】
フレーム／チャンネル情報を処理するための規則を明示的に指定しないその他全てのブロックに関しては、エラーアウトとなる。
【００６２】
本発明は、デジタル電子回路、又はコンピュータ・ハードウェア、ファームウェア、若しくはソフトウェア、或いはそれらの組合せによっても実現可能である。本方法は、コンピュータ・プログラム製品、すなわち情報媒体（例えば、プログラム可能プロセッサ、単一のコンピュータ、又は複数のコンピュータなどのデータ処理装置により実行されるか、その動作を制御するための機械可読記憶装置又は伝搬信号）において具体的に実現されたコンピュータ・プログラムとして実装できる。コンピュータ・プログラムは、コンパイル済み又は解釈実行言語を含む任意形式のプログラミング言語で書くことができ、こうしたプログラムは、独立型プログラム、又はモジュール、構成要素、サブルーチン、或いは計算環境における使用に適した他の単位を含む任意形式で導入できる。コンピュータ・プログラムは、単一のコンピュータ、又は単一サイトに配置した複数のコンピュータ、或いは複数サイトに分散されて通信ネットワークにより相互接続した複数のコンピュータで実行されるよう導入してもよい。
【００６３】
本発明の方法段階は、入力データに作用し且つ出力を生成することによって本発明の機能を実行するコンピュータ・プログラムを実行する１つ又は複数のプログラム可能プロセッサにより実行できる。又、方法段階は、例えば、ＦＰＧＡ（書替え可能ゲートアレイ）又はＡＳＩＣ（特定用途向けＩＣ）などの専用論理回路により実行でき、本発明の装置は、ＦＰＧＡ又はＡＳＩＣとして実装できる。
【００６４】
コンピュータ・プログラムの実行に適したプロセッサは、例示目的だが、汎用及び専用マイクロプロセッサ並びに任意種類のデジタル・コンピュータの１つ又は複数のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリ又はランダムアクセス・メモリ或いはそれら両方から命令及びデータを受け取る。コンピュータの不可欠な要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための１つ又は複数の記憶装置とである。一般に、コンピュータは、例えば、磁気ディスク、光磁気ディスク、又は光ディスクなどの１つ又は複数の大容量記憶装置を含むか、それらからデータを受信又は転送、或いはその両方を行うため機能的に接続されている。コンピュータ・プログラム命令及びデータを実現するのに適した情報媒体は、例として半導体記憶装置（例えば、EPROM、EEPROM、及びフラッシュメモリ装置）、磁気ディスク（例えば、内部ハードディスク又はリムーバルブディスク）、光磁気ディスク、及びCD
ROM及びDVD-ROMディスクを含むあらゆる形式の不揮発性記憶装置を含む。プロセッサ及びメモリは、専用論理回路により補足するかそれに組み込み可能である。
【００６５】
本発明の幾つかの実施形態を説明してきた。しかしながら、本発明の精神及び範囲から逸脱することなく多くの修正が可能なことは理解されるであろう。従って、これ以外の実施形態も次の特許請求の範囲に入る。
【図面の簡単な説明】
【００６６】
【図１】システムのブロックダイヤグラムである。
【図２】グラフィカル・ユーザインターフェース（ＧＵＩ）のブロックダイヤグラムである。
【図３】連続及び不連続フレームという概念を示すブロックダイヤグラムである。
【図４】連続フレームを１つの連続信号として示すブロックダイヤグラムである。
【図５】入力フレームの種類に基づいた多相性を示すブロックダイヤグラムである。
【図６】不連続の均等及び不均等フレームという概念を示すブロックダイヤグラムである。
【図７】不均等フレームにおけるサンプル間の間隔を用いることで、どのようにより優れた視覚化が容易に得られるかを示すブロックダイヤグラムである。
【図８】フローチャートである。
【図９】フローチャートである。
【図１０】フローチャートである。
【図１】
0004580926.tif 000003
【図２】
0004580926.tif 000004
【図３】
0004580926.tif 000005
【図４】
0004580926.tif 000006
【図５】
0004580926.tif 000007
【図６】
0004580926.tif 000008
【図７】
0004580926.tif 000009
【図８】
0004580926.tif 000010
【図９】
0004580926.tif 000011
【図１０】
0004580926.tif 000012