JP7223661B2 - DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM AND ROTATION MEASURING DEVICE - Google Patents
DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM AND ROTATION MEASURING DEVICE Download PDFInfo
- Publication number
- JP7223661B2 JP7223661B2 JP2019147745A JP2019147745A JP7223661B2 JP 7223661 B2 JP7223661 B2 JP 7223661B2 JP 2019147745 A JP2019147745 A JP 2019147745A JP 2019147745 A JP2019147745 A JP 2019147745A JP 7223661 B2 JP7223661 B2 JP 7223661B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- addresses
- variable
- unit
- 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.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
本発明は、データ処理装置及びデータ処理方法とそのプログラム、並びに、データ処理装置を備えた回転計測装置に関するものである。 The present invention relates to a data processing device, a data processing method, a program thereof, and a rotation measuring device provided with the data processing device.
回転体の回転に伴う物理量(光、磁気など)の変化に基づいて、回転体の回転速度をリアルタイムに計測する計測装置が知られている。例えば下記の特許文献に記載される回転速度計測装置は、カメラで撮影した回転体の映像の一部分をユーザの操作によって選択し、選択した映像の一部分(検出範囲)に含まれる画素の情報(輝度情報)に対して時間周波数領域でフーリエ変換(離散フーリエ変換)を行い、フーリエ変換によって得られた周波数成分から回転速度を算出する。 2. Description of the Related Art A measuring device is known that measures the rotation speed of a rotating body in real time based on changes in physical quantities (light, magnetism, etc.) accompanying rotation of the rotating body. For example, the rotation speed measuring device described in the following patent document selects a portion of an image of a rotating body captured by a camera by a user's operation, and information (luminance information) is subjected to Fourier transform (discrete Fourier transform) in the time-frequency domain, and the rotational speed is calculated from the frequency components obtained by the Fourier transform.
ところで、上記特許文献1の回転速度計測装置における離散フーリエ変換(以下、DFTと略記する場合がある。)は、一連の複数の輝度情報からなるデータ列を使用する。データ列を構成する輝度情報の個数(データ長)を減らすと、DFTの演算の誤差が大きくなり、回転速度の精度が低下する。そのため、DFTに使用するデータ列にはある程度のデータ長が必要となる。
By the way, the discrete Fourier transform (hereinafter sometimes abbreviated as DFT) in the rotational speed measuring device of
他方、輝度情報は映像(動画)の1フレーム毎に1つずつ取得されるため、一般的なフレームレートのカメラを用いた場合、単位時間あたりに取得可能な輝度情報は数10程度である。この場合、1つのデータ列のデータ長を数100程度とすると、1つのデータ列に対応する映像の期間は数秒程度となる。1つの映像の期間から1つのデータ列のみを取得してDFTを行ったとすると、DFTは数秒に1回しか行われないため、回転速度の算出結果も数秒に1回しか得られないことになる。 On the other hand, since luminance information is acquired one by one for each frame of video (moving image), when using a camera with a general frame rate, the amount of luminance information that can be acquired per unit time is about several tens. In this case, if the data length of one data string is about several hundred, the video period corresponding to one data string is about several seconds. If only one data string is acquired from one image period and DFT is performed, the DFT is performed only once every few seconds, so the rotation speed calculation result is also obtained only once every few seconds. .
DFTの実行頻度を高める1つの方法として、連続したデータ列における一部の輝度情報を重複させることが考えられる。例えば、連続した2つのデータ列における半分の輝度情報を重複させた場合、1つのデータ列が取得されてから次のデータ列が取得されるまでの期間が半分になる。この場合、データ列の取得頻度が2倍になり、DFTの実行頻度も2倍となる。 One possible method for increasing the frequency of DFT execution is to overlap some luminance information in consecutive data strings. For example, if half of the luminance information in two consecutive data strings is overlapped, the period from the acquisition of one data string to the acquisition of the next data string is halved. In this case, the acquisition frequency of the data string is doubled, and the DFT execution frequency is also doubled.
連続したデータ列における一部のデータ(輝度情報など)が重複するようにデータ列を取得する処理は、例えば図10Aに示すようなリングバッファを用いて実現することができる。図10Aに示すリングバッファは、アドレスA0からアドレスA15までの16個のメモリ領域を備える。一定の時間間隔でサンプリングされたデータは、アドレスA0,A1,A2,…の順番で、リングバッファの各メモリ領域に書き込まれる。1つのデータが末尾のアドレスA15に書き込まれると、その次のデータは先頭のアドレスA0に書き込まれる。 The process of acquiring data strings such that some data (luminance information, etc.) in consecutive data strings overlap can be realized using, for example, a ring buffer as shown in FIG. 10A. The ring buffer shown in FIG. 10A has 16 memory areas from address A0 to address A15. Data sampled at regular time intervals are written to each memory area of the ring buffer in the order of addresses A0, A1, A2, . When one data is written to the last address A15, the next data is written to the first address A0.
図10Bは、アドレスA0~A11にデータD0~D11が格納された状態を示す。12個のデータD0~D11が1つのデータ列DS1を構成するものとすると、アドレスA0~A11からデータ列DS1を読み出すことができる。 FIG. 10B shows a state in which data D0-D11 are stored at addresses A0-A11. Assuming that 12 data D0 to D11 constitute one data string DS1, the data string DS1 can be read from addresses A0 to A11.
図10Cは、図10Bの状態から更に8つのデータD12~D19がリングバッファに書き込まれた状態を示す。図10Cに示すように、アドレスA12~A15,A0~A3に書き込まれた12個のデータD8~D19がデータ列DS2を構成するものとすると、アドレスA12~A15,A0~A3からデータ列DS2を読み出すことができる。この場合、連続する2つのデータ列DS1及びDS2においては、4つのデータD8~D11が重複している。 FIG. 10C shows a state in which eight pieces of data D12 to D19 have been written to the ring buffer from the state in FIG. 10B. As shown in FIG. 10C, 12 data D8-D19 written in addresses A12-A15 and A0-A3 form a data string DS2. can be read. In this case, four data D8 to D11 overlap in two continuous data strings DS1 and DS2.
このように、リングバッファを用いることによって、連続したデータ列における一部のデータが重複するようにデータ列を取得することが可能となる。しかしながら、リングバッファにおいては、書き込み先のアドレスが末尾のアドレスとなった場合、次の書き込み先のアドレスが先頭のアドレスに戻るため、1つのデータ列に含まれる一連のデータにおいてアドレスが不連続になる場合がある。例えば図10Cに示すデータ列DS2は、前半の8つのデータD8~D15のアドレスA8~A15と、後半の4つのデータD16~D19のアドレスA0~A3とが不連続になっている。DFTの演算処理では、データ列の各データを決められた組み合わせで順次、積和を繰り返す。そのため、データ列に含まれる一連のデータのアドレスが不連続になっていると、リングバッファからデータの読み出す際に条件判断などの処理が必要になり、全体的な演算の負荷が重くなるという不利益がある。 By using the ring buffer in this way, it is possible to acquire data strings such that some data in consecutive data strings overlap. However, in the ring buffer, when the write destination address becomes the last address, the next write destination address returns to the beginning address, so the addresses are discontinuous in the series of data included in one data string. may become. For example, in the data string DS2 shown in FIG. 10C, the addresses A8 to A15 of the eight data D8 to D15 in the first half and the addresses A0 to A3 of the four data D16 to D19 in the latter half are discontinuous. In the arithmetic processing of DFT, sum-of-products are sequentially repeated in predetermined combinations of each data in the data string. Therefore, if the series of data addresses contained in the data string is discontinuous, processing such as conditional judgment is required when reading data from the ring buffer, and the overall computational load increases. profitable.
本発明はかかる事情に鑑みてなされたものであり、その目的は、時系列データから周期的にデータ列を取得してDFTなど所定の演算を行う場合に、連続するデータ列において一部のデータが重複していても、記憶領域における連続したアドレス範囲に各データ列を書き込むことができるデータ処理装置、データ処理方法及びプログラムを提供することと、そのようなデータ処理装置を備える回転速度計測装置を提供することにある。 The present invention has been made in view of such circumstances, and its object is to obtain a data string periodically from time-series data and perform a predetermined calculation such as DFT, in which some data in a continuous data string To provide a data processing device, a data processing method, and a program capable of writing each data string in a continuous address range in a storage area even if there is overlap, and a rotation speed measuring device equipped with such a data processing device. is to provide
本発明の第1の態様は、時系列データをリアルタイムに処理するデータ処理装置であって、前記時系列データの各データを一時的に記憶するための記憶領域を持つ記憶部と、処理部とを有し、前記時系列データにおいて連続したM個の前記データが、1つのデータ列を構成し、前記時系列データにおいて連続した2つの前記データ列が、互いに共通するN個(NはMより小さい自然数を示す。)の前記データを含み、前記処理部は、前記時系列データの各前記データを順次に取得する処理と、取得した前記データの前記記憶領域における書き込み先のアドレスを生成する処理と、生成した前記アドレスに、取得した前記データを書き込む処理と、各前記データ列の書き込みが完了したことを検出する処理と、1つの前記データ列の書き込み完了を検出する度に、当該1つのデータ列に基づいて所定の演算を行う処理とを実行し、前記アドレスを生成する処理は、1つの前記データ列を構成する前記M個のデータに対応したM個の連続する前記アドレスを、1つの単位アドレス範囲として生成し、1つの前記単位アドレス範囲は、当該1つのデータ列における前半のN個の前記データに対応したN個の第1アドレスと、当該1つのデータ列における後半の(M-N)個の前記データに対応した(M-N)個の第2アドレスとを含み、前記アドレスを生成する処理は、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合、当該1つの単位アドレス範囲より前のN個の連続した前記アドレスを、当該1つのデータ列に続く次の前記データ列に対応した次の前記単位アドレス範囲における前記N個の第1アドレスとする。 A first aspect of the present invention is a data processing device for processing time-series data in real time, comprising: a storage unit having a storage area for temporarily storing each data of the time-series data; and a processing unit. M pieces of data consecutive in the time-series data constitute one data string, and two consecutive data strings in the time-series data are N common to each other (N is more than M represents a small natural number), and the processing unit performs a process of sequentially acquiring each of the data of the time-series data, and a process of generating a write destination address of the acquired data in the storage area. a process of writing the acquired data to the generated address; a process of detecting completion of writing of each data string; performing a predetermined operation based on a data string, and generating the addresses by converting the M consecutive addresses corresponding to the M data constituting one data string into 1; One unit address range includes N first addresses corresponding to the first N data in the one data string and the second half (M (M−N) second addresses corresponding to the N) pieces of data, and the process of generating the addresses is performed after the one unit address range corresponding to the one data string. When the number of addresses is less than (M−N), the N consecutive addresses preceding the one unit address range are transferred to the next data string corresponding to the next data string following the one data string. The N first addresses in the unit address range.
この構成によれば、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合、当該1つの単位アドレス範囲より後の前記記憶領域には、当該1つのデータ列に続く次の前記データ列に対応した次の前記単位アドレス範囲における前記(M-N)個の第2アドレスを確保することができない。この場合、当該1つの単位アドレス範囲より前のN個の連続した前記アドレスが、当該次の単位アドレス範囲における前記N個の第1アドレスとされる。これにより、当該次の単位アドレス範囲として、前記記憶領域の連続したM個の前記アドレスが確保される。また、当該次の単位アドレス範囲における前記N個の第1アドレスが当該1つの単位アドレス範囲から外れているため、当該N個の第1アドレスにN個の新たな前記データが書き込まれても、当該1つの単位アドレス範囲に既に書き込まれた前記データが当該新たなデータによって上書きされることがない。従って、連続する2つの前記データ列においてN個の前記データを重複させつつ、前記記憶領域の連続したアドレス範囲(単位アドレス範囲)に各前記データ列を書き込むことが可能となる。 According to this configuration, when the number of addresses after one unit address range corresponding to one data string is less than (MN), the storage area after the one unit address range , the (MN) second addresses in the next unit address range corresponding to the next data string following the one data string cannot be secured. In this case, the N consecutive addresses before the one unit address range are used as the N first addresses in the next unit address range. As a result, M consecutive addresses in the storage area are secured as the next unit address range. Further, since the N first addresses in the next unit address range are out of the one unit address range, even if the N new data are written to the N first addresses, The data already written in the one unit address range is not overwritten by the new data. Therefore, it is possible to write each of the data strings in a continuous address range (unit address range) of the storage area while overlapping the N pieces of data in the two consecutive data strings.
好ましくは、前記アドレスを生成する処理は、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個以上の場合、当該1つの単位アドレス範囲における後半のN個の前記アドレスを、前記次の単位アドレス範囲における前記N個の第1アドレスとし、当該1つの単位アドレス範囲の後に続く(M-N)個の連続した前記アドレスを、前記次の単位アドレス範囲における前記(M-N)個の第2アドレスとする。 Preferably, when the number of addresses subsequent to one unit address range corresponding to one data string is (M−N) or more, the process of generating the addresses includes: The latter N addresses are set as the N first addresses in the next unit address range, and the (M−N) consecutive addresses following the one unit address range are set as the next unit address range. The (MN) second addresses in the unit address range.
この構成によれば、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個以上の場合、当該1つの単位アドレス範囲より後の前記記憶領域には、当該1つのデータ列に続く次の前記データ列に対応した次の前記単位アドレス範囲における前記(M-N)個の第2アドレスを確保することができる。この場合、当該1つの単位アドレス範囲における後半のN個の前記アドレスが、前記次の単位アドレス範囲における前記N個の第1アドレスとされ、当該1つの単位アドレス範囲の後に続く(M-N)個の連続した前記アドレスが、前記次の単位アドレス範囲における前記(M-N)個の第2アドレスとされる。これにより、当該1つの単位アドレス範囲と前記次の単位アドレス範囲とが前記記憶領域において重なり合って確保されるため、前記記憶領域を効率的に使用することが可能となる。 According to this configuration, when the number of addresses after one unit address range corresponding to one data string is (MN) or more, the storage area after the one unit address range can secure the (MN) second addresses in the next unit address range corresponding to the next data string following the one data string. In this case, the latter N addresses in the one unit address range are set as the N first addresses in the next unit address range, and follow the one unit address range (MN). consecutive addresses are used as the (MN) second addresses in the next unit address range. As a result, the one unit address range and the next unit address range are secured overlapping each other in the storage area, so that the storage area can be used efficiently.
好ましくは、前記アドレスを生成する処理は、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合、前記記憶領域における先頭からN番目までのN個の前記アドレスを、前記次の単位アドレス範囲における前記N個の第1アドレスとする。 Preferably, in the process of generating the addresses, when the number of the addresses after one of the unit address ranges corresponding to one of the data strings is less than (MN), N The N addresses up to the th are set as the N first addresses in the next unit address range.
この構成によれば、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合、当該1つの単位アドレス範囲より後の前記記憶領域には、当該1つのデータ列に続く次の前記データ列に対応した次の前記単位アドレス範囲における前記(M-N)個の第2アドレスを確保することができない。この場合、前記記憶領域における先頭からN番目までのN個の前記アドレスが、前記次の単位アドレス範囲における前記N個の第1アドレスとされる。これにより、前記次の単位アドレス範囲における前記N個の第1アドレスの範囲が、当該1つの単位アドレス範囲に対して最大限に離れるため、当該1つの単位アドレス範囲への書き込みが完了した前記データ列が別の前記データによって上書きされるまでの時間を長くすることが可能となり、前記所定の演算の処理時間を確保し易くなる。 According to this configuration, when the number of addresses after one unit address range corresponding to one data string is less than (MN), the storage area after the one unit address range , the (MN) second addresses in the next unit address range corresponding to the next data string following the one data string cannot be secured. In this case, the N addresses from the top to the Nth address in the storage area are the N first addresses in the next unit address range. As a result, the range of the N first addresses in the next unit address range is maximally separated from the one unit address range. It is possible to lengthen the time until the column is overwritten by the other data, and it becomes easier to secure the processing time for the predetermined calculation.
好ましくは、前記アドレスを生成する処理は、取得途中の1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合であって、かつ、当該1つの単位アドレス範囲における後半のN個の前記アドレスを生成する場合、当該1つのデータ列における1つの前記データを取得する度に、前記後半のN個のアドレスから1つの前記アドレスを生成するとともに、前記次の単位アドレス範囲における前記N個の第1アドレスから1つの前記アドレスを生成し、取得途中の1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個以上の場合、当該1つのデータ列における1つの前記データを取得する度に、当該1つのデータに対応した1つの前記アドレスを生成する。 Preferably, the process of generating the addresses is performed when the number of the addresses after one of the unit address ranges corresponding to one of the data strings being acquired is less than (MN), and , when generating the latter N addresses in the one unit address range, each time one data in the one data string is obtained, one address is generated from the latter N addresses and generating one address from the N first addresses in the next unit address range, and the number of the addresses after the one unit address range corresponding to the one data string being obtained. is (M−N) or more, each time one data in the one data string is acquired, one address corresponding to the one data is generated.
この構成によれば、取得途中の1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合であって、かつ、当該1つの単位アドレス範囲における後半のN個の前記アドレスを生成する場合に、前記次の単位アドレス範囲における前記N個の第1アドレスの生成も並行して行われる。すなわち、当該1つのデータ列における1つの前記データが取得される度に、前記後半のN個のアドレスから1つの前記アドレスが生成されるとともに、前記次の単位アドレス範囲における前記N個の第1アドレスから1つの前記アドレスが生成される。他方、取得途中の1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個以上の場合は、当該1つのデータ列における1つの前記データを取得する度に、当該1つのデータに対応した1つの前記アドレスが生成される。これにより、同じ前記データが異なる前記アドレスに並行して書き込まれる場合が限定される。 According to this configuration, when the number of addresses after one of the unit address ranges corresponding to one of the data strings being acquired is less than (MN), and the one unit When the latter N addresses in the address range are generated, the N first addresses in the next unit address range are also generated in parallel. That is, each time one data in the one data string is acquired, one address is generated from the latter N addresses, and the N first addresses in the next unit address range are generated. One said address is generated from the addresses. On the other hand, if the number of addresses after one of the unit address ranges corresponding to one of the data strings being acquired is (MN) or more, one of the data in the one data string is acquired. Each time, one address corresponding to the one data is generated. This limits the cases where the same data is written to different addresses in parallel.
好ましくは、前記記憶領域は、{k×(M-N)+N}個以上、{(k+1)×(M-N)+N}個未満の前記アドレス(kは2以上の自然数を示す。)により構成され、前記アドレスを生成する処理及び前記データを書き込む処理は、初期状態において、第1変数が示す前記アドレスを、前記記憶領域の先頭の前記アドレスに設定し、1つの前記データを取得する度に、取得した前記1つのデータを前記第1変数が示す前記アドレスに書き込み、当該書き込みの後、前記第1変数が示す前記アドレスをインクリメントし、1つの前記データを取得する度に、前記第1変数が示す前記アドレスが前記記憶領域の{k×(M-N)+1}番目の前記アドレスであるか確認し、前記第1変数が示す前記アドレスが前記{k×(M-N)+1}番目のアドレスである場合、第2変数が示す前記アドレスを前記先頭のアドレスに設定し、1つの前記データを取得する度に、前記第1変数が示す前記アドレスが、前記記憶領域の{k×(M-N)+1}番目から{k×(M-N)+N}番目までのアドレス範囲に含まれるか確認し、前記第1変数が示す前記アドレスが当該アドレス範囲に含まれる場合、取得した前記1つのデータを前記第2変数が示す前記アドレスに書き込み、当該書き込みの後、前記第2変数が示す前記アドレスをインクリメントし、前記第1変数が示す前記アドレスが前記記憶領域の{k×(M-N)+N}番目のアドレスを超えた場合、前記第1変数が示す前記アドレスを、前記第2変数が示す前記アドレスに設定する。 Preferably, the storage area is {k×(MN)+N} or more and less than {(k+1)×(MN)+N} addresses (k is a natural number of 2 or more). In the initial state, the address generating process and the data writing process set the address indicated by the first variable to the top address of the storage area, and each time one piece of data is acquired. Then, the obtained one data is written to the address indicated by the first variable, and after the writing, the address indicated by the first variable is incremented, and each time one data is obtained, the first confirming whether the address indicated by the variable is the {k×(MN)+1}-th address of the storage area, and confirming whether the address indicated by the first variable is the {k×(MN)+1}-th address of the storage area; th address, the address indicated by the second variable is set as the leading address, and each time one of the data is obtained, the address indicated by the first variable is changed to {k× (M−N)+1}-th to {k×(M−N)+N}-th address range, and if the address indicated by the first variable is included in the address range, acquired The one data is written to the address indicated by the second variable, and after the writing, the address indicated by the second variable is incremented, and the address indicated by the first variable is {k×( MN)+N}th address, the address indicated by the first variable is set to the address indicated by the second variable.
この構成によれば、前記第1変数が示す前記アドレスが前記{k×(M-N)+1}番目のアドレスである場合、当該アドレスからN番目の前記アドレスは1つの前記単位アドレス範囲の末尾と一致する一方、当該アドレスからM番目の前記アドレスは前記記憶領域から逸脱する。この場合、当該アドレスより後の前記記憶領域には、当該1つの前記単位アドレス範囲に対して次の前記単位アドレス範囲における前記(M-N)個の第2アドレスを確保することができない。そのため、前記第1変数が示す前記アドレスが前記記憶領域の{k×(M-N)+1}番目から{k×(M-N)+N}番目のアドレス範囲に含まれる場合(当該1つの前記単位アドレス範囲に含まれる場合)は、当該1つの前記単位アドレス範囲へのデータ書き込みと並行して、前記先頭のアドレスから始まる当該次の単位アドレス範囲へのデータ書き込みが行われる。
前記第1変数が示す前記アドレスが前記記憶領域の{k×(M-N)+N}番目のアドレスを超えた場合、当該1つの前記単位アドレス範囲に対する前記データ列の書き込みが完了する。この場合、前記第1変数が示す前記アドレスとして、前記第2変数が示す前記アドレスが設定されることにより、当該次の単位アドレス範囲へのデータ書き込みが続行される。
According to this configuration, when the address indicated by the first variable is the {k×(M−N)+1}-th address, the N-th address from the address is the end of one of the unit address ranges. while the address that is Mth from the address deviates from the storage area. In this case, the (MN) second addresses in the next unit address range cannot be secured for the one unit address range in the storage area after the address. Therefore, when the address indicated by the first variable is included in the {k×(M−N)+1}-th to {k×(M−N)+N}-th address range of the storage area (the one is included in the unit address range), data is written to the next unit address range starting from the top address in parallel with data writing to the one unit address range.
When the address indicated by the first variable exceeds the {k×(MN)+N}-th address of the storage area, writing of the data string to the one unit address range is completed. In this case, by setting the address indicated by the second variable as the address indicated by the first variable, data writing to the next unit address range is continued.
好ましくは、前記記憶領域は、L個(Lは2×M以上の整数を示す。)の前記アドレスにより構成され、前記アドレスを生成する処理及び前記データを書き込む処理は、初期状態において、第1変数が示す前記アドレスと第2変数が示す前記アドレスとのアドレス間隔を、M以上(L-M)以下に設定し、1つの前記データを取得する度に、取得した前記1つのデータを、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとに書き込み、当該書き込みの後、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとをそれぞれインクリメントし、前記第1変数が示す前記アドレスが、前記記憶領域の最大の前記アドレスを超えた場合、前記第1変数が示す前記アドレスを前記記憶領域の先頭の前記アドレスに設定し、前記第2変数が示す前記アドレスが前記最大のアドレスを超えた場合、前記第2変数が示す前記アドレスを前記先頭のアドレスに設定し、前記書き込み完了を検出する処理は、前記アドレスを生成する処理により1つの前記データ列に対応して生成された1つの前記単位アドレス範囲を、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとに基づいて特定し、前記所定の演算を行う処理は、前記書き込み完了を検出する処理により特定された前記単位アドレス範囲から、前記所定の演算に用いる前記データ列を読み出す。 Preferably, the storage area is composed of L addresses (L is an integer of 2×M or more), and the process of generating the addresses and the process of writing the data are performed in an initial state in a first The address interval between the address indicated by the variable and the address indicated by the second variable is set to M or more (LM) or less, and each time one of the data is obtained, the obtained one data is transferred to the write to the address indicated by the first variable and the address indicated by the second variable; after the writing, increment the address indicated by the first variable and the address indicated by the second variable; When the address indicated by one variable exceeds the maximum address of the storage area, the address indicated by the first variable is set to the top address of the storage area, and the address indicated by the second variable is set. exceeds the maximum address, the process of setting the address indicated by the second variable as the first address and detecting the completion of writing corresponds to one of the data strings by the process of generating the address. The process of specifying the one unit address range generated by the above based on the address indicated by the first variable and the address indicated by the second variable, and performing the predetermined operation includes: The data string used for the predetermined calculation is read out from the unit address range specified by the detection process.
この構成によれば、前記第1変数が示す前記アドレスへのデータ書き込みと前記第2変数が示す前記アドレスへのデータ書き込みとが並行して行われ、このデータ書き込みの後、前記第1変数が示す前記アドレス及び前記第2変数が示す前記アドレスがそれぞれインクリメントされる。そして、前記第1変数が示す前記アドレス及び前記第2変数が示す前記アドレスは、それぞれ前記記憶領域の前記最大のアドレスに達した後、前記記憶領域の前記先頭のアドレスに戻される。
前記記憶領域がL個(≧M)の前記アドレスにより構成されており、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとのアドレス間隔が前記初期状態においてM以上(L-M)以下に設定されるため、当該アドレス間隔は、前記初期状態の後もM以上(L-M)以下に保たれる。これにより、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスの少なくとも一方が、M回のインクリメントによってM個の連続した前記アドレス(前記単位アドレス範囲)を生成する。
前記第1変数の前記アドレスをインクリメントすることにより得られる一連の前記アドレスと、前記第2変数の前記アドレスをインクリメントすることにより得られる一連の前記アドレスとは、前記記憶領域において異なるアドレス範囲にあるため、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとに基づいて(例えば両者の大小関係から)、前記単位アドレス範囲を構成する一連の前記アドレスが特定される。
According to this configuration, data writing to the address indicated by the first variable and data writing to the address indicated by the second variable are performed in parallel, and after the data writing, the first variable is The address indicated and the address indicated by the second variable are each incremented. Then, the address indicated by the first variable and the address indicated by the second variable are returned to the top address of the storage area after reaching the maximum address of the storage area.
The storage area is composed of L (≧M) addresses, and an address interval between the address indicated by the first variable and the address indicated by the second variable is M or more (L− M) or less, the address interval is maintained at M or more (LM) or less even after the initial state. As a result, at least one of the address indicated by the first variable and the address indicated by the second variable is incremented M times to generate M consecutive addresses (the unit address range).
The series of addresses obtained by incrementing the address of the first variable and the series of addresses obtained by incrementing the address of the second variable are in different address ranges in the storage area. Therefore, based on the address indicated by the first variable and the address indicated by the second variable (for example, from the magnitude relationship between the two), the series of addresses forming the unit address range is specified.
好ましくは、前記所定の演算が離散フーリエ変換を含む。
この構成によれば、前記データ列が連続したM個の前記アドレスからなる前記単位アドレス範囲に書き込まれているため、前記単位アドレス範囲から前記データを読み出す際の処理が前記単位アドレス範囲の先頭アドレスを基準としたオフセットとして常に同一表現できることで簡易になり、離散フーリエ変換における算術演算の負荷が軽減される。
Preferably, said predetermined operation includes a discrete Fourier transform.
According to this configuration, since the data string is written in the unit address range consisting of the consecutive M addresses, the process for reading the data from the unit address range is performed at the top address of the unit address range. can always be expressed in the same way as an offset based on , which simplifies the process and reduces the load of arithmetic operations in the discrete Fourier transform.
本発明の第2の態様は、1以上のコンピュータが時系列データをリアルタイムに処理するデータ処理方法であって、前記1以上のコンピュータは、前記時系列データの各データを一時的に記憶するための記憶領域を持つ記憶部を備え、前記時系列データにおいて連続したM個の前記データが、1つのデータ列を構成し、前記時系列データにおいて連続した2つの前記データ列が、互いに共通するN個(NはMより小さい自然数を示す。)の前記データを含み、前記コンピュータが、前記時系列データの各前記データを順次に取得する処理と、取得した前記データの前記記憶領域における書き込み先のアドレスを生成する処理と、生成した前記アドレスに、取得した前記データを書き込む処理と、各前記データ列の書き込みが完了したことを検出する処理と、1つの前記データ列の書き込み完了を検出する度に、当該1つのデータ列に基づいて所定の演算を行う処理とを実行し、前記アドレスを生成する処理は、1つの前記データ列を構成する前記M個のデータに対応したM個の連続する前記アドレスを、1つの単位アドレス範囲として生成し、1つの前記単位アドレス範囲は、当該1つのデータ列における前半のN個の前記データに対応したN個の第1アドレスと、当該1つのデータ列における後半の(M-N)個の前記データに対応した(M-N)個の第2アドレスとを含み、前記アドレスを生成する処理は、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合、当該1つの単位アドレス範囲より前のN個の連続した前記アドレスを、当該1つのデータ列に続く次の前記データ列に対応した次の前記単位アドレス範囲における前記N個の第1アドレスとする。 A second aspect of the present invention is a data processing method in which one or more computers process time-series data in real time, wherein the one or more computers temporarily store each data of the time-series data. M pieces of continuous data in the time-series data form one data string, and two consecutive data strings in the time-series data share N common to each other. (N represents a natural number smaller than M) of the data, and the computer performs a process of sequentially acquiring each of the data of the time-series data, and a write destination of the acquired data in the storage area. A process of generating an address, a process of writing the acquired data to the generated address, a process of detecting completion of writing of each data string, and each time detection of completion of writing of one data string is performed. and the processing of performing a predetermined operation based on the one data string, and the processing of generating the address includes M consecutive data corresponding to the M data constituting one data string. The addresses are generated as one unit address range, and one unit address range includes N first addresses corresponding to the first N data in the one data string and the one data string. (M−N) second addresses corresponding to the latter (M−N) pieces of data, and the process of generating the addresses includes one of the unit addresses corresponding to one of the data strings If the number of addresses after the range is less than (MN), the N consecutive addresses before the one unit address range are transferred to the next data string following the one data string. The N first addresses in the corresponding next unit address range.
本発明の第3の態様は、1以上のコンピュータを、上記第1の態様のデータ処理装置における前記処理部として機能させるプログラムである。 A third aspect of the present invention is a program that causes one or more computers to function as the processing unit in the data processing apparatus of the first aspect.
本発明の第4の態様は、回転体を一定の周期で撮像する撮像装置と、上記第1の態様のデータ処理装置とを有し、前記時系列データの前記データを順次に取得する処理は、前記撮像装置において撮像された前記回転体の画像における特定の領域に含まれた画素の値に応じた数値データを、前記時系列データの前記データとして周期的に取得し、前記処理部は、前記所定の演算として行った離散フーリエ変換の結果が示す前記時系列データの周波数成分に基づいて、前記回転体の回転速度を算出する、回転速度計測装置である。 A fourth aspect of the present invention includes an imaging device for imaging a rotating body at a constant cycle, and the data processing device according to the first aspect, wherein the process of sequentially acquiring the data of the time-series data includes periodically acquiring numerical data corresponding to the values of pixels included in a specific region in the image of the body of revolution captured by the imaging device as the data of the time-series data; The rotation speed measuring device calculates the rotation speed of the rotating body based on the frequency component of the time-series data indicated by the result of the discrete Fourier transform performed as the predetermined calculation.
本発明によれば、時系列データから周期的にデータ列を取得してDFTなど所定の演算を行う場合に、連続するデータ列において一部のデータが重複していても、記憶領域における連続したアドレス範囲に各データ列を書き込むことができる。 According to the present invention, when a data string is periodically acquired from time-series data and a predetermined calculation such as DFT is performed, even if some data overlap in the continuous data string, the continuous data in the storage area Each data column can be written to an address range.
<第1の実施形態>
図1は、本実施形態に係る回転計測装置の構成の一例を示す図である。図1に示す回転計測装置は、回転駆動されたプロペラ5を一定の周期(フレームレート)で撮像する撮像装置2と、撮像装置2で撮像されたプロペラ5の画像に基づいてプロペラ5の回転速度を算出するデータ処理装置1とを有する。なお、本実施形態における回転速度の計測対象は、図1に示すようなプロペラ5に限定されず、撮像装置2によって撮像可能な任意の回転体でよい。
<First Embodiment>
FIG. 1 is a diagram showing an example of the configuration of a rotation measuring device according to this embodiment. The rotation measurement device shown in FIG. and a
撮像装置2は、回転体(プロペラ5など)の少なくとも一部の画像を直接的若しくは間接的に撮像し、その撮像データをデータ処理装置1に出力する。撮像装置2は、例えばCMOSセンサやCCDセンサなどの撮像素子を含む。
The
データ処理装置1は、撮像装置2から入力した撮像データをもとに、回転体の回転に伴って変化する一連のデータを時系列データとして取得し、時系列データに高速フーリエ変換(以下、「FFT」と記す場合がある。)などのDFT演算を行うことによって回転体の回転速度を算出する。
Based on the imaging data input from the
図1に示すデータ処理装置1は、入力部11と、表示部12と、記憶部13と、処理部14を含む。
The
入力部11は、ユーザの指示を処理部14へ入力するための機器である。例えば入力部11は、マウス、キーボード、タッチパッド、タッチパネル、押しボタン、回転スイッチなど、ユーザの操作に応じた信号を生成する1以上の入力機器を含む。
The
表示部12は、処理部14において生成される映像データに基づいて映像を表示する装置であり、例えば液晶ディスプレイや有機ELディスプレイなどを含む。
The
記憶部13は、処理部14の後述するコンピュータにおいて処理を実行させるためのプログラム15を記憶する。また記憶部13は、処理の実行に繰り返し使用される定数データ、処理の実行過程で一時的に保存される変数データなどを記憶する。具体的には、記憶部13は、撮像装置2から入力した撮像データに基づく時系列データの各データを一時的に記憶するための記憶領域を持つ。
The
記憶部13に格納されるプログラム15は、例えば、処理部14が備える任意の入力インターフェースに接続された外部記憶装置(USBメモリ)から読み出されたものでもよいし、処理部14に接続される任意の記録媒体読み取り装置において非一時的な記録媒体(光ディスクなど)から読み出されたものでもよいし、処理部14が備える任意の通信インターフェースを介して外部のサーバ装置などからダウンロードしたものでもよい。
The
記憶部13は、例えばDRAM、SRAM、ROM、フラッシュメモリ、ハードディスクなど、1以上の任意の記憶装置を含む。
The
処理部14は、データ処理装置1の全体的な動作を制御する装置であり、回転体の回転速度の計測に関わる処理を実行する。処理部14は、記憶部13に格納された1以上のプログラム15の命令コードに従って処理を実行する1以上の処理回路(CPU、MPUなど)を含む。1以上の処理回路がプログラム15に基づいて処理を実行する場合、処理部14は1以上のコンピュータとして動作する。処理部30は、回転体の回転速度の計測に関わる処理を、上述した1以上のコンピュータとして実行する。
The
なお、処理部14は、特定の機能を実現するように構成された1以上の専用のハードウェア(ASIC、FPGAなど)を含んでもよい。この場合、処理部14は、回転体の回転速度の計測に関わる処理の少なくとも一部を、専用のハードウェアにおいて実行してもよい。
Note that the
処理部14は、回転速度の測定に関する処理として、検出範囲設定処理、時系列データ取得処理、アドレス生成処理、データ書き込み処理、書き込み完了検出処理、演算処理、及び、回転速度算出処理を実行する。
The
(検出範囲設定処理)
処理部14は、回転速度の測定を開始する前に、撮像装置2で撮像された回転体の画像において回転速度の測定に使用される検出範囲を設定する。例えば処理部14は、撮像装置2で撮像された回転体の映像を動画として表示部12の画面に表示し、入力部11において入力されるユーザの指示に従って、画面上の回転体の映像から検出範囲を設定する。
(Detection range setting process)
The
(時系列データ取得処理)
処理部14は、回転速度の測定を開始すると、撮像装置2から入力した撮像データに基づいて、時系列データの各データを順次に取得する。処理部14は、撮像データにおける1フレーム分の画像の中から、上記の検出範囲に含まれる1以上の画素を特定し、特定した1以上の画素の値に基づいて、時系列データの1つのデータを取得(サンプリング)する。例えば処理部14は、検出範囲に含まれる1以上の画素の値に基づいて、この検出範囲における平均的な光の強度(輝度など)を示す数値を算出し、この数値を時系列データの1つのデータとして取得する。
(Time-series data acquisition processing)
When starting to measure the rotation speed, the
処理部14は、後述するアドレス生成処理、データ書き込み処理及び書き込み完了検出処理によって、時系列データからデータ列を反復的に取得する。時系列データにおいて連続したM個のデータは、1つのデータ列を構成する。「M」は、データ列のデータ長を示す。また、時系列データにおいて連続した2つのデータ列は、互いに共通するN個(NはMより小さい自然数を示す。)のデータを含む。「N」は、連続した2つのデータ列におけるデータ重複数を示す。
The
(アドレス生成処理、データ書き込み処理)
処理部14は、時系列データ取得処理においてデータを取得すると、記憶部13において確保した記憶領域における当該データの書き込み先のアドレスを生成する。処理部14は、1つのデータ列の書き込み先として、記憶領域における連続したアドレスを生成する。すなわち、処理部14は、1つのデータ列を構成するM個のデータに対応したM個の連続するアドレスを生成する。処理部14は、時系列データ取得処理においてデータを取得したデータを、上記のアドレス生成処理によって生成したアドレスに書き込む。
(address generation processing, data write processing)
When acquiring data in the time-series data acquisition process, the
以下の説明では、1つのデータ列の書き込み先となるM個の連続したアドレスを、「単位アドレス範囲」と呼ぶ。また、1つの単位アドレス範囲における前半のN個のアドレスを、それぞれ「第1アドレス」と呼び、1つの単位アドレス範囲における後半の(M-N)個のアドレスを、それぞれ「第2アドレス」と呼ぶ。N個の第1アドレスは、1つのデータ列における前半のN個のデータに対応したアドレスであり、(M-N)個の第2アドレスは、1つのデータ列における後半の(M-N)個のデータに対応したアドレスである。 In the following description, M consecutive addresses to which one data string is written will be referred to as a "unit address range". Also, the first half N addresses in one unit address range are respectively called "first addresses", and the latter half (MN) addresses in one unit address range are respectively called "second addresses". call. The N first addresses are addresses corresponding to the first half N data in one data string, and the (MN) second addresses are the second half (MN) addresses in one data string. This is an address corresponding to individual data.
また、以下の説明では、時系列データにおいて任意に選ばれた2つの連続するデータ列のうち、前のデータ列を「第1データ列」と呼び、後のデータ列を「第2データ列」と呼ぶ。また、ここで、第1データ列の書き込み先となる単位アドレス範囲を、「第1単位アドレス範囲」と呼び、第2データ列の書き込み先となる単位アドレス範囲を、「第2単位アドレス範囲」と呼ぶ。更に、第1データ列及び第2データ列において互いに共通するN個のデータを、それぞれ「共通データ」と呼び、第1データ列において共通データが書き込まれるアドレスを、「共通データ書き込みアドレス」と呼ぶ。 Further, in the following description, of two consecutive data strings arbitrarily selected in the time-series data, the first data string is called the "first data string", and the latter data string is called the "second data string". call. Also, here, the unit address range to which the first data string is written is referred to as the "first unit address range", and the unit address range to which the second data string is written is referred to as the "second unit address range". call. Furthermore, the N pieces of data that are common to each other in the first data string and the second data string are respectively called "common data", and the address to which the common data is written in the first data string is called "common data write address". .
上述したように、第1データ列及び第2データ列は、互いに共通するN個の共通データを含む。第1単位アドレス範囲における後半のN個のアドレス(第2アドレス)は、それぞれ共通データ書き込みアドレスであり、N個の共通データが書き込まれる。また、第2単位アドレス範囲におけるN個の第1アドレスにも、N個の共通データが書き込まれる。 As described above, the first data string and the second data string include N pieces of common data that are common to each other. The latter N addresses (second addresses) in the first unit address range are common data write addresses, and N common data are written therein. In addition, N pieces of common data are also written to N pieces of first addresses in the second unit address range.
処理部14は、記憶領域において第1単位アドレス範囲より後に残るアドレスの個数(以下、「残存アドレス数」と記す場合がある。)に応じて、記憶領域における第2単位アドレス範囲の位置を変化させる。
The
残存アドレス数が(M-N)個より大きい場合、記憶領域において第1単位アドレス範囲より後に、第2単位アドレス範囲の(M-N)個の第2アドレスを確保できる。この場合、処理部14は、記憶領域において第1単位アドレス範囲と重なる範囲を第2単位アドレス範囲とする。すなわち、処理部14は、残存アドレス数が(M-N)個以上の場合、第1単位アドレス範囲のN個の共通データ書き込みアドレス(第1単位アドレス範囲における後半のN個のアドレス)を、第2単位アドレス範囲のN個の第1アドレスとする。また、処理部14は、第1単位アドレス範囲に続く(M-N)個の連続したアドレスを、第2単位アドレス範囲における(M-N)個の第2アドレスとする。
When the number of remaining addresses is greater than (MN), (MN) second addresses in the second unit address range can be secured after the first unit address range in the storage area. In this case, the
残存アドレス数が(M-N)個より大きい場合、処理部14は、1つのデータを取得する度に1つのアドレスを生成する。すなわち、この場合、処理部14は、第1データ列を取得する途中において1つのデータを取得する度に、当該1つのデータに対応した1つのアドレス(第1単位アドレス範囲のアドレス)を生成する。
If the number of remaining addresses is greater than (MN), the
一方、残存アドレス数が(M-N)個未満の場合、記憶領域において第1単位アドレス範囲より後には、第2単位アドレス範囲の(M-N)個の第2アドレスを確保できない。この場合、処理部14は、記憶領域において第1単位アドレス範囲より前のN個の連続したアドレスを、第2単位アドレス範囲におけるN個の第1アドレスとする。例えば、処理部14は、記憶領域における先頭からN番目までのN個のアドレスを、第2単位アドレス範囲におけるN個の第1アドレスとする。
On the other hand, if the number of remaining addresses is less than (MN), (MN) second addresses in the second unit address range cannot be secured after the first unit address range in the storage area. In this case, the
第2単位アドレス範囲のN個の第1アドレスにN個のデータを書き込んだとき、第1単位アドレス範囲において第1データ列の書き込みが完了する。このとき、第2単位アドレス範囲のN個の第1アドレスが第1単位アドレス範囲より前のアドレスであることにより、第2単位アドレス範囲に書き込んだデータは、第1単位アドレス範囲の各データ(第1データ列)を上書きすることがない。そのため、書き込みが完了した第1データ列を、後述のFFT演算処理において正常に読み出すことができる。 When N pieces of data are written to N first addresses in the second unit address range, writing of the first data string is completed in the first unit address range. At this time, since the N first addresses in the second unit address range are addresses before the first unit address range, the data written in the second unit address range is different from each data in the first unit address range ( first data column) is not overwritten. Therefore, the first data string for which writing has been completed can be normally read in the FFT operation processing described later.
残存アドレス数が(M-N)個未満の場合であって、かつ、第1単位アドレス範囲における後半のN個のアドレス(共通データ書き込みアドレス)を生成する場合、処理部14は、2つのアドレスを並行して生成する。すなわち、この場合、処理部14は、第1データ列を取得する途中において1つのデータを取得する度に、第1単位アドレス範囲における後半のN個のアドレスから1つのアドレスを生成するとともに、第2単位アドレス範囲におけるN個の第1アドレスから1つのアドレスを生成する。
When the number of remaining addresses is less than (MN) and when generating the latter N addresses (common data write addresses) in the first unit address range, the
ここで、時系列データの一時的な保存のために確保される記憶領域が、{k×(M-N)+N}個以上、{(k+1)×(M-N)+N}個未満のアドレス(kは2以上の自然数を示す。)により構成されるものとする。また、記憶領域の先頭から{k×(M-N)+1}番目のアドレスを、「第1境界アドレスAt1」と呼び、記憶領域の先頭から{k×(M-N)+N}番目のアドレスを、「第2境界アドレスAt2」と呼ぶものとする。 Here, the storage area reserved for temporary storage of time-series data is {k×(M−N)+N} or more and less than {(k+1)×(M−N)+N} addresses (k represents a natural number of 2 or more). Also, the {k×(MN)+1}th address from the top of the storage area is called a “first boundary address At1”, and the {k×(MN)+N}th address from the top of the storage area is called “first boundary address At1”. shall be referred to as a "second boundary address At2".
第1境界アドレスAt1(先頭から{k×(M-N)+1}番目のアドレス)は、記憶領域の最も末尾に近い単位アドレス範囲(以下、「末尾側単位アドレス範囲」と記す場合がある。)に含まれる。第1境界アドレスAt1から数えてN番目のアドレスが、末尾側単位アドレス範囲における末尾のアドレスである。末尾側単位アドレス範囲を第1単位アドレス範囲と見なした場合、第1境界アドレスAt1は、N個の共通データ書き込みアドレスにおける1番目のアドレスである。 The first boundary address At1 ({k×(MN)+1}-th address from the beginning) is the unit address range closest to the end of the storage area (hereinafter sometimes referred to as the “end side unit address range”). )include. The N-th address counted from the first boundary address At1 is the last address in the last side unit address range. When the end-side unit address range is regarded as the first unit address range, the first boundary address At1 is the first address among the N common data write addresses.
第2境界アドレスAt2(先頭から{k×(M-N)+N}番目のアドレス)は、第1境界アドレスAt1から数えてN番目のアドレスであり、末尾側単位アドレス範囲における末尾のアドレスである。 The second boundary address At2 ({k×(M−N)+N}th address from the beginning) is the Nth address counted from the first boundary address At1, and is the last address in the end side unit address range. .
例えば処理部14は、それぞれ書き込み先のアドレスを示す2つの変数(第1変数W1、第2変数W2)を使用して、アドレス生成処理とデータ書き込み処理を行う。
まず初期状態において、処理部14は、第1変数W1が示すアドレスを、記憶領域の先頭のアドレス(以下、「先頭アドレスAh」と記す場合がある。)に設定する。
処理部14は、時系列データ取得処理において1つのデータを取得する度に、取得した1つのデータを第1変数W1が示すアドレスに書き込み、当該書き込みの後、第1変数W1が示すアドレスをインクリメントする。
また、処理部14は、時系列データ取得処理において1つのデータを取得する度に、第1変数W1が示すアドレスが第1境界アドレスAt1であるか確認し、第1変数W1が示すアドレスが第1境界アドレスAt1である場合、第2変数W2が示すアドレスを先頭アドレスAhに設定する。
更に、処理部14は、時系列データ取得処理において1つのデータを取得する度に、第1変数W1が示すアドレスが第1境界アドレスAt1から第2境界アドレスAt2までのアドレス範囲に含まれるか確認する。第1変数W1が示すアドレスがこのアドレス範囲(At1~At2)に含まれる場合、処理部14は、取得した1つのデータを、第1変数W1が示すアドレスと第2変数W2が示すアドレスとにそれぞれ書き込み、この書き込み後、第1変数W1が示すアドレスと第2変数W2が示すアドレスとをそれぞれインクリメントする。
第1変数W1が示すアドレスをインクリメントした結果、第1変数W1が示すアドレスが第2境界アドレスAt2を超えた場合、処理部14は、第1変数W1が示すアドレスを、第2変数W2が示すアドレスに設定する。
For example, the
First, in the initial state, the
Each time one piece of data is acquired in the time-series data acquisition process, the
Further, the
Furthermore, the
As a result of incrementing the address indicated by the first variable W1, if the address indicated by the first variable W1 exceeds the second boundary address At2, the
(書き込み完了検出処理)
処理部14は、上述したアドレス生成処理及びデータ書き込み処理の過程において、各データ列の単位アドレス範囲への書き込みが完了したことを検出する。例えば処理部14は、記憶領域の先頭アドレスAhからデータの書き込みを開始するとき、記憶領域に対するデータの書き込み回数の計数を開始し、その計数値に基づいて、各データ列の書き込みが完了したことを検出する。
(Write completion detection processing)
The
また処理部14は、1つのデータ列の書き込みが完了したことを検出した場合、当該1つのデータ列が書き込まれた単位アドレス範囲を特定する。例えば処理部14は、単位アドレス範囲の先頭アドレスを所定の変数に保存し、1つのデータ列の書き込みが完了したことを検出する度に、次の単位アドレス範囲の先頭アドレスを示すように当該所定の変数を更新する。
Further, when detecting that the writing of one data string is completed, the
なお、上述した第1変数W1は、最新の書き込み先のアドレスを示しており、この書き込み先のアドレスに基づいて、単位アドレス範囲中のどのアドレスまでデータが書き込まれたかを把握することが可能である。そこで、処理部14は、この第1変数W1が示すアドレスに基づいて、単位アドレス範囲の末尾のアドレスにおけるデータの書き込みを検出することにより、データ列の書き込みが完了したことを検出してもよい。この場合、処理部14は、1つのデータ列の書き込みが完了した際の第1変数W1が示すアドレスに基づいて、当該1つのデータ列が書き込まれた単位アドレス範囲(例えば単位アドレス範囲における先頭アドレス)を特定してもよい。
The first variable W1 described above indicates the latest write destination address, and based on this write destination address, it is possible to grasp to which address in the unit address range the data has been written. be. Therefore, the
(FFT演算処理、回転速度算出処理)
処理部14は、書き込み完了検出処理において1つのデータ列の書き込み完了を検出する度に、当該1つのデータ列に基づいてFFT演算を行う。処理部14は、書き込み完了検出処理において特定した単位アドレス範囲から、FFT演算に使用するデータ列を読み出す。処理部14は、FFT演算の結果が得られると、この演算結果が示す時系列データの周波数成分に基づいて、回転体の回転速度を算出する。例えば図1に示すようなプロペラ5において、対称な5枚の羽根51が通過する位置を検出範囲とした場合、処理部14は、FFT演算によって得られた周波数成分における最大ピークの周波数に対して5分の1の周波数を、プロペラ5の回転速度(単位時間当たりの回転数)として算出する。
(FFT calculation processing, rotation speed calculation processing)
The
次に、上述した本実施形態に係る回転速度検出装置の動作について説明する。 Next, the operation of the rotation speed detection device according to the present embodiment described above will be described.
図2は、時系列データからデータ列を取得してFFTを実行する動作の一例を図解した図である。図2における「D(1)」,「D(2)」,…は、時系列データにおける個々のデータを示す。以下の説明では、個々のデータ(D(1),D(2),…)を区別せずに「データD」と記す場合がある。また、図2における「DS1」,「DS2」,…は、それぞれ時系列データにおける個々のデータ列を示す。以下の説明では、個々のデータ列(DS1,DS2,…)を区別せずに「データ列DS」と記す場合がある。図2の例にいて、データ列DSのデータ長Mは「8」であり、2つの連続するデータ列DSにおけるデータ重複数Nは「2」である。データ処理装置1の処理部14は、図2に示すように、時系列データから1つのデータ列DSを取得する度にFFT演算を行う。
FIG. 2 is a diagram illustrating an example of an operation of acquiring a data string from time-series data and executing FFT. "D(1)", "D(2)", . . . in FIG. 2 indicate individual data in the time-series data. In the following description, individual data (D(1), D(2), . . . ) may be referred to as "data D" without distinction. Also, “DS1”, “DS2”, . . . in FIG. 2 indicate individual data strings in the time-series data. In the following description, each data string (DS1, DS2, . . . ) may be referred to as "data string DS" without distinction. In the example of FIG. 2, the data length M of the data string DS is "8", and the number of data overlaps N in two consecutive data strings DS is "2". As shown in FIG. 2, the
図3は、第1の実施形態に係る回転速度計測装置において、図2に示す時系列データ(M=8,N=2)を記憶領域に書き込む動作の第1の例を図解した図である。図3の例において、記憶領域のサイズ(割り当てられたアドレスの個数)は「16」である。図3における「R1」,「R2」,…は、それぞれデータD(1),D(2),…の書き込み先の単位アドレス範囲を示す。以下の説明では、個々の単位アドレス範囲(R1,R2,…)を区別せずに「単位アドレス範囲R」と記す場合がある。 FIG. 3 is a diagram illustrating a first example of the operation of writing the time-series data (M=8, N=2) shown in FIG. 2 to the storage area in the rotation speed measuring device according to the first embodiment. . In the example of FIG. 3, the size of the storage area (the number of assigned addresses) is "16". "R1", "R2", . . . in FIG. In the following description, each unit address range (R1, R2, . . . ) may be referred to as "unit address range R" without distinction.
初期状態において、第1変数W1には、記憶領域の先頭アドレスAhが設定される。時系列データの新たなデータDが取得される度に、第1変数W1が示すアドレスには取得されたデータDが書き込まれ、データDの書き込み後に第1変数W1のアドレスがインクリメントされる。アドレス(Ah+7)にデータD(8)が書き込まれたとき、単位アドレス範囲R1(Ah~Ah+7)へのデータ列DS1(D(1)~D(8))の書き込みが完了する。このとき、変数Abは単位アドレス範囲R1の先頭のアドレスAhを示しており、単位アドレス範囲R1は変数Abにより特定される。データ列DS1の書き込みが完了すると、変数Ab(アドレスAh)により特定される単位アドレス範囲R1からデータ列DS1が読み出されて、FFT演算が行われる。 In the initial state, the head address Ah of the storage area is set in the first variable W1. Each time new data D of the time-series data is acquired, the acquired data D is written to the address indicated by the first variable W1, and after the data D is written, the address of the first variable W1 is incremented. When the data D(8) is written to the address (Ah+7), the writing of the data string DS1 (D(1) to D(8)) to the unit address range R1 (Ah to Ah+7) is completed. At this time, the variable Ab indicates the head address Ah of the unit address range R1, and the unit address range R1 is specified by the variable Ab. When the writing of the data string DS1 is completed, the data string DS1 is read from the unit address range R1 specified by the variable Ab (address Ah), and the FFT operation is performed.
データ列DSに続く次のデータ列DS2の単位アドレス範囲R2(Ah+6~Ah+13)は、図3に示すように単位アドレス範囲R1と重なっている。また単位アドレス範囲R2は、記憶領域の末尾のアドレス(Ah+15)に最も近い末尾側単位アドレス範囲である。単位アドレス範囲R2のアドレス(Ah+12)にデータD(12)が書き込まれたとき、第1変数W1はアドレス(Ah+12)を示す。このアドレス(Ah+12)は、第1境界アドレスAt1である。すなわち、データ長Mが「8」、データ重複数Nが「2」、記憶領域のサイズが「16=2×(M-N)+4」である場合、第1境界アドレスAt1は先頭アドレスAhから{2×(M-N)+1}番目のアドレスであり、アドレス(Ah+12)と一致する。第1変数W1が示すアドレスが第1境界アドレスAt1である場合、第2変数W2には先頭アドレスAhが設定される。 The unit address range R2 (Ah+6 to Ah+13) of the next data string DS2 following the data string DS overlaps the unit address range R1 as shown in FIG. The unit address range R2 is the end side unit address range closest to the end address (Ah+15) of the storage area. When the data D(12) is written to the address (Ah+12) in the unit address range R2, the first variable W1 indicates the address (Ah+12). This address (Ah+12) is the first boundary address At1. That is, when the data length M is "8", the data duplication number N is "2", and the storage area size is "16=2×(MN)+4", the first boundary address At1 is It is the {2×(MN)+1}th address and matches the address (Ah+12). When the address indicated by the first variable W1 is the first boundary address At1, the top address Ah is set to the second variable W2.
データD(12)に続いて取得されたデータD(13)は、第1変数W1が示すアドレス(Ah+12)と、第2変数W2が示す先頭アドレスAhとにそれぞれ書き込まれる。この書き込み後、第1変数W1及び第2変数W2のインクリメントが行われると、第2変数W2はアドレス(Ah+1)を示し、第1変数W1はアドレス(Ah+13)を示す。ここで、第1変数W1が示すアドレス(Ah+13)は、第2境界アドレスAt2である。すなわち、データ長Mが「8」、データ重複数Nが「2」、記憶領域のサイズが「16=2×(M-N)+4」である場合、第2境界アドレスAt2は先頭アドレスAhから{2×(M-N)+N}番目のアドレスであり、アドレス(Ah+13)と一致する。 The data D(13) obtained following the data D(12) are written to the address (Ah+12) indicated by the first variable W1 and the leading address Ah indicated by the second variable W2. After this writing, when the first variable W1 and the second variable W2 are incremented, the second variable W2 indicates the address (Ah+1) and the first variable W1 indicates the address (Ah+13). Here, the address (Ah+13) indicated by the first variable W1 is the second boundary address At2. That is, when the data length M is "8", the data duplication number N is "2", and the storage area size is "16=2×(MN)+4", the second boundary address At2 is It is the {2×(MN)+N}-th address and matches the address (Ah+13).
第1変数W1が示すアドレス(Ah+13)は、第1境界アドレスAt1から第2境界アドレスAt2までのアドレス範囲に含まれるため、データD(13)に続いて取得されたデータD(14)は、第1変数W1が示すアドレス(Ah+13)と、第2変数W2が示すアドレス(Ah+1)とにそれぞれ書き込まれる。これにより、単位アドレス範囲R2へのデータ列DS2の書き込みが完了する。このとき、変数Abは単位アドレス範囲R2の先頭のアドレス(Ah+6)を示しているため、変数Abにより特定される単位アドレス範囲R2からデータ列DS2が読み出されて、FFT演算が行われる。 Since the address (Ah+13) indicated by the first variable W1 is included in the address range from the first boundary address At1 to the second boundary address At2, the data D(14) acquired following the data D(13) is It is written to the address (Ah+13) indicated by the first variable W1 and the address (Ah+1) indicated by the second variable W2. This completes the writing of the data string DS2 to the unit address range R2. At this time, since the variable Ab indicates the top address (Ah+6) of the unit address range R2, the data string DS2 is read out from the unit address range R2 specified by the variable Ab, and the FFT operation is performed.
データD(14)の書き込み後、第1変数W1及び第2変数W2のインクリメントが行われると、第2変数W2はアドレス(Ah+2)を示し、第1変数W1はアドレス(Ah+14)を示す。ここで、第1変数W1が示すアドレス(Ah+14)は第2境界アドレスAt2を超えるため、第1変数W1には第2変数W2のアドレス(Ah+2)が設定される。これにより、図3に示すように、データD(14)に続くデータD(15),D(16),…はアドレス(Ah+2),(Ah+3),…に書き込まれる。単位アドレス範囲R3は、単位アドレス範囲R2に対して先頭アドレスAh側にシフトし、単位アドレス範囲R2より後のアドレス(Ah+14,Ah+15)にはデータDの書き込みが行われない。 When the first variable W1 and the second variable W2 are incremented after writing the data D(14), the second variable W2 indicates the address (Ah+2) and the first variable W1 indicates the address (Ah+14). Here, since the address (Ah+14) indicated by the first variable W1 exceeds the second boundary address At2, the address (Ah+2) of the second variable W2 is set to the first variable W1. As a result, data D(15), D(16), . . . following data D(14) are written to addresses (Ah+2), (Ah+3), . The unit address range R3 is shifted to the top address Ah side with respect to the unit address range R2, and the data D is not written to the addresses (Ah+14, Ah+15) after the unit address range R2.
図4は、本実施形態に係る回転速度計測装置において、図2に示す時系列データ(M=8,N=2)を記憶領域に書き込む動作の第2の例を図解した図である。図4の例において、記憶領域のサイズは「27」であり、図3の例にくらべて大きくなっている。データ長Mが「8」、データ重複数Nが「2」、記憶領域のサイズが「27=4×(M-N)+3」の場合、図4に示すように、第1境界アドレスAt1はアドレス(Ah+24)であり、第2境界アドレスAt2はアドレス(Ah+25)である。 FIG. 4 is a diagram illustrating a second example of the operation of writing the time series data (M=8, N=2) shown in FIG. 2 in the storage area in the rotation speed measuring device according to the present embodiment. In the example of FIG. 4, the size of the storage area is "27", which is larger than the example of FIG. When the data length M is "8", the data duplication number N is "2", and the storage area size is "27=4×(MN)+3", as shown in FIG. 4, the first boundary address At1 is The address is (Ah+24) and the second boundary address At2 is the address (Ah+25).
図4の例では、4つの単位アドレス範囲(R1~R4)が記憶領域の先頭側から末尾側に向かって連続的に割り当てられる。先頭側から4番目の単位アドレス範囲R4は、末尾側単位アドレス範囲となる。第1境界アドレスAt1及び第2境界アドレスAt2は、末尾側単位アドレス範囲である単位アドレス範囲R4に含まれる。第1変数W1がアドレス(Ah+24)を示す場合、アドレス(Ah+24)は第1境界アドレスであるため、第2変数W2には先頭アドレスAhが設定される。そして、第1変数W1が示すアドレスが、第1境界アドレスAt1から第2境界アドレスAt2までのアドレス範囲(Ah+24~Ah+25)に含まれる場合、第1変数W1及び第2変数W2が示すアドレスにそれぞれデータDが書き込まれる。第1変数W1が示すアドレスが第2境界アドレスAt2(アドレス(Ah+25))より大きくなると、第1変数W1には第2変数W2のアドレス(Ah+2)が設定される。これにより、図4に示すように、単位アドレス範囲R5は先頭アドレスAh側にシフトし、単位アドレス範囲R4より後のアドレス(Ah+26)にはデータDの書き込みが行われない。 In the example of FIG. 4, four unit address ranges (R1 to R4) are assigned consecutively from the head side to the tail side of the storage area. The fourth unit address range R4 from the head side is the tail side unit address range. The first boundary address At1 and the second boundary address At2 are included in the unit address range R4, which is the end side unit address range. When the first variable W1 indicates the address (Ah+24), the address (Ah+24) is the first boundary address, so the top address Ah is set to the second variable W2. Then, when the address indicated by the first variable W1 is included in the address range (Ah+24 to Ah+25) from the first boundary address At1 to the second boundary address At2, the addresses indicated by the first variable W1 and the second variable W2 are Data D is written. When the address indicated by the first variable W1 is greater than the second boundary address At2 (address (Ah+25)), the first variable W1 is set to the address (Ah+2) of the second variable W2. As a result, as shown in FIG. 4, the unit address range R5 is shifted toward the top address Ah, and the data D is not written to the address (Ah+26) after the unit address range R4.
図5は、本実施形態に係る回転計測装置の処理の一例を説明するためのフローチャートであり、回転体の回転速度をリアルタイムに測定する場合の処理を示す。 FIG. 5 is a flowchart for explaining an example of processing of the rotation measuring device according to the present embodiment, and shows processing when measuring the rotation speed of a rotating body in real time.
処理部14は、回転速度の計測を開始する前の初期状態において、初期設定を行う(ST100)。処理部14は、初期設定において、記憶領域のサイズを{k×(M-N)+N}以上{(k+1)×(M-N)+N}未満のサイズを設定し(kは2以上の自然数)、第1変数W1を記憶領域の先頭アドレスAhに設定する。また処理部14は、記憶領域へのデータDの書き込み回数を示す変数Btをゼロに設定し、単位アドレス範囲Rの先頭のアドレスを示す変数Abを「Ah-(M-N)」に設定する。
The
更に処理部14は、第1境界アドレスAt1をアドレス{Ah+k×(M-N)}に設定し、第2境界アドレスAt2をアドレス{Ah+k×(M-N)+(N-1)}に設定する。第1境界アドレスAt1は、先頭アドレスAhから数えて{k×(M-N)+1}番目のアドレスであり、第2境界アドレスAt2は、先頭アドレスAhから数えて{k×(M-N)+N}番目のアドレスである。
Furthermore, the
処理部14は、撮像装置2の撮像データに基づいて1つのデータDを取得すると(ST105)、第1変数W1が示すアドレスにデータDを書き込む(ST110)。また処理部14は、第1変数W1が第1境界アドレスAt1を示すか確認し(ST115)、第1変数W1が第1境界アドレスAt1を示す場合は(ST115のYes)、第2変数W2に先頭アドレスAhを設定する(ST120)。更に処理部14は、第1変数W1と第2変数W2とを比較し(ST125)、両者のアドレスが不一致の場合(ST125のNo)、第2変数W2が示すアドレスにデータDを書き込む(ST130)。
The
記憶領域にデータDを書き込んだ後、処理部14は、第1変数W1及び第2変数W2をそれぞれインクリメントするとともに、データDの書き込み回数を示す変数Btをインクリメントする(ST135)。
After writing the data D to the storage area, the
処理部14は、インクリメント後の第1変数W1が第2境界アドレスAt2を示すか確認し(ST140)、第1変数W1が示すアドレスが第2境界アドレスAt2と一致した場合(ST140のYes)、第1変数W1が示すアドレスを第2変数W2が示すアドレスに設定する(ST145)。この場合、処理部14は、単位アドレス範囲Rの先頭のアドレスを示す変数Abを、初期設定(ST100)と同じ「Ah-(M-N)」に設定する。
The
次いで処理部14は、変数Btがデータ長M以上か確認する(ST150)。変数Btがデータ長Mに達していない場合(ST150のNo)、処理部14はステップST105に戻り、ステップST105以降の処理を繰り返す。変数Btがデータ長M以上の場合(ST150のYes)、処理部14は、次のステップST155に移行する。
Next, the
処理部14は、ステップST155において、変数Btとデータ重複数Nとの差(Bt-N)がデータ長Mとデータ重複数Nとの差(M-N)で割り切れるか確認する。差(Bt-N)が差(M-N)で割り切れない場合(ST155のNo)、処理部14はステップST105に戻り、ステップST105以降の処理を繰り返す。差(Bt-N)が差(M-N)で割り切れる場合(ST155のYes)、処理部14は、直近のデータDの書き込み(ST110)によってデータ列DSの書き込みが完了したことを検出し、次のステップST160に移行する。
In step ST155, the
処理部14は、ステップST160において、単位アドレス範囲Rの先頭のアドレスを示す変数Abに「M-N」を加算する。単位アドレス範囲Rは「M-N」ずつ記憶領域の末尾側へシフトするため、「M-N」を加算した変数Abは、ステップST155において書き込み完了が検出されたデータ列DSの単位アドレス範囲Rの先頭を示す。
The
次いで処理部14は、変数Abにより特定された単位アドレス範囲Rのデータ列DSに基づいて、FFT演算を行う。また処理部14は、FFT演算により得られた時系列データの周波数成分に基づいて、回転体の回転速度を算出する(ST165)。処理部14は、算出した回転速度の情報を、表示部12の画面などに出力する(ST170)。その後、処理部14はステップST105に戻り、ステップST105以降の処理を繰り返す。
Next, the
以上説明したように、本実施形態に係る回転速度計測装置によれば、第1データ列(例えば図4のデータ列DS4)の書き込み先となる第1単位アドレス範囲より後のアドレスの個数(残存アドレス数)が(M-N)個未満の場合、第1単位アドレス範囲より後の記憶領域には、第2データ列(例えば図4のデータ列DS5)の書き込み先となる第2単位アドレス範囲の(M-N)個の第2アドレスを確保することができない。この場合、記憶領域において第1単位アドレス範囲より前のN個の連続したアドレスが、第2単位アドレス範囲におけるN個の第1アドレスとされる(例えば図4の単位アドレス範囲R5におけるアドレスAh及び(Ah+1))。これにより、第2単位アドレス範囲として、記憶領域の連続したM個のアドレスが確保される。また、第2単位アドレス範囲におけるN個の第1アドレスが第1単位アドレス範囲から外れているため、第2単位アドレス範囲のN個の第1アドレスにN個の新たなデータDが書き込まれても、第1単位アドレス範囲に既に書き込まれたデータDが当該新たなデータDによって上書きされることがない。従って、連続する第1データ列及び第2データ列においてN個のデータDを重複させつつ、第1データ列及び第2データ列をそれぞれ記憶領域の連続したアドレス範囲(単位アドレス範囲)に書き込むことができる。 As described above, according to the rotation speed measuring device according to the present embodiment, the number of addresses (remaining address) is less than (M−N), the second unit address range to which the second data string (for example, the data string DS5 in FIG. 4) is written is stored in the storage area after the first unit address range. (M−N) of second addresses cannot be reserved. In this case, N consecutive addresses before the first unit address range in the storage area are set as N first addresses in the second unit address range (for example, addresses Ah and (Ah+1)). As a result, M consecutive addresses of the storage area are secured as the second unit address range. Also, since the N first addresses in the second unit address range are out of the first unit address range, N new data D are written to the N first addresses in the second unit address range. Also, the new data D does not overwrite the data D already written in the first unit address range. Therefore, the first data string and the second data string are written in consecutive address ranges (unit address ranges) of the storage area while overlapping the N pieces of data D in the consecutive first data string and the second data string. can be done.
また、本実施形態に係る回転速度計測装置によれば、第1データ列(例えば図4のデータ列DS1)の書き込み先となる第1単位アドレス範囲より後のアドレスの個数(残存アドレス数)が(M-N)個以上の場合、第1単位アドレス範囲より後の記憶領域には、第1データ列に続く次の第2データ列(例えば図4のデータ列DS2)の書き込み先となる第2単位アドレス範囲の(M-N)個の第2アドレスを確保することができる。この場合、第2単位アドレス範囲における後半のN個のアドレスが、第2単位アドレス範囲におけるN個の第1アドレスとされ(例えば図4の単位アドレス範囲R2におけるアドレス(Ah+6)及び(Ah+7))、第1単位アドレス範囲の後に続く(M-N)個の連続したアドレスが、第2単位アドレス範囲における(M-N)個の第2アドレスとされる(例えば図4の単位アドレス範囲R2におけるアドレス(Ah+8)~(Ah+13))。これにより、第1単位アドレス範囲と第2単位アドレス範囲とが記憶領域において重なり合って確保されるため、記憶領域を効率的に使用できる。 Further, according to the rotation speed measuring device according to the present embodiment, the number of addresses (number of remaining addresses) after the first unit address range to which the first data string (for example, the data string DS1 in FIG. 4) is written is In the case of (M−N) or more, in the storage area after the first unit address range, the second data string following the first data string (for example, the data string DS2 in FIG. 4) is written. (MN) second addresses in a two-unit address range can be reserved. In this case, the last N addresses in the second unit address range are used as the N first addresses in the second unit address range (for example, the addresses (Ah+6) and (Ah+7) in the unit address range R2 in FIG. 4). , (M−N) consecutive addresses following the first unit address range are set as (MN) second addresses in the second unit address range (for example, in the unit address range R2 in FIG. 4). addresses (Ah+8) to (Ah+13)). As a result, the first unit address range and the second unit address range are secured while overlapping each other in the storage area, so that the storage area can be used efficiently.
また、本実施形態に係る回転速度計測装置によれば、第1単位アドレス範囲(例えば図4の単位アドレス範囲R4)より後のアドレスの個数(残存アドレス数)が(M-N)個未満の場合、記憶領域における先頭アドレスAhからN番目までのN個のアドレスが、第2単位アドレス範囲におけるN個の第1アドレスとされる(例えば図4の単位アドレス範囲R5におけるアドレスAh及び(Ah+1))。これにより、第2単位アドレス範囲におけるN個の第1アドレスの範囲が、第1単位アドレス範囲に対して最大限に離れるため、第1単位アドレス範囲への書き込みが完了した第1データ列が別のデータDによって上書きされるまでの時間を長くすることができる。例えば図4の場合、単位アドレス範囲R5のアドレス(Ah+1)にデータD(26)が書き込まれたとき、単位アドレス範囲R4におけるデータ列DS4の書き込みが完了する。データ列DS4の書き込みが完了した後、アドレス(Ah+2)~(Ah+17)に16個のデータD(27)~D(42)が書き込まれるまでの間、単位アドレス範囲R4のデータ列DS4は新たなデータDで上書きされない。これにより、書き込みが完了したデータ列が記憶領域において上書きされずに保存される期間が長くなるため、FFTなどの演算の処理時間を確保し易くなる。 Further, according to the rotation speed measuring device according to the present embodiment, the number of addresses (number of remaining addresses) after the first unit address range (for example, unit address range R4 in FIG. 4) is less than (MN). In this case, the N addresses from the top address Ah to the Nth address in the storage area are set as the N first addresses in the second unit address range (for example, the addresses Ah and (Ah+1) in the unit address range R5 in FIG. ). As a result, since the range of N first addresses in the second unit address range is separated from the first unit address range as much as possible, the first data string that has been written to the first unit address range is separated. It is possible to lengthen the time until the data D is overwritten. For example, in the case of FIG. 4, when the data D(26) is written to the address (Ah+1) in the unit address range R5, the writing of the data string DS4 in the unit address range R4 is completed. After the writing of the data string DS4 is completed, the data string DS4 in the unit address range R4 is newly written until the 16 data D(27) to D(42) are written to the addresses (Ah+2) to (Ah+17). Data D is not overwritten. As a result, the period during which the written data string is stored in the storage area without being overwritten becomes longer, and it becomes easier to secure the processing time for computation such as FFT.
また、本実施形態に係る回転速度計測装置によれば、取得途中の第1データ列(例えば図4のデータ列DS4)の書き込み先である第1単位アドレス範囲より後のアドレスの個数(残存アドレス数)が(M-N)個未満の場合であって、かつ、第1単位アドレス範囲における後半のN個のアドレスを生成する場合に(例えば図4の単位アドレス範囲R4におけるアドレス(Ah+24)及び(Ah+25))、第2単位アドレス範囲におけるN個の第1アドレスの生成も並行して行われる(例えば図4の単位アドレス範囲R5におけるアドレスAh及び(Ah+1))。この場合、第1データ列における1つのデータDが取得される度に、第1単位アドレス範囲における後半のN個のアドレスから1つのアドレスが生成されるとともに、第2単位アドレス範囲におけるN個の第1アドレスから1つのアドレスが生成される。他方、第1単位アドレス範囲より後の残存アドレス数が(M-N)個以上の場合は、第1データ列における1つのデータDを取得する度に、当該1つのデータDに対応した1つのアドレスが生成される。これにより、同じデータDが異なるアドレスに並行して書き込まれる場合が限定されるため、記憶部13に対する書き込み動作の負荷を軽減できる。
Further, according to the rotation speed measuring device according to the present embodiment, the number of addresses after the first unit address range (remaining address number) is less than (M−N), and when generating the latter N addresses in the first unit address range (for example, addresses (Ah+24) and (Ah+25)), and N first addresses in the second unit address range are also generated in parallel (for example, addresses Ah and (Ah+1) in the unit address range R5 in FIG. 4). In this case, each time one piece of data D in the first data string is obtained, one address is generated from the latter N addresses in the first unit address range, and N pieces of data in the second unit address range are generated. An address is generated from the first address. On the other hand, when the number of remaining addresses after the first unit address range is (M−N) or more, each time one data D in the first data string is obtained, one data D corresponding to the one data D is obtained. An address is generated. This limits the cases where the same data D is written to different addresses in parallel, so that the load of the write operation on the
次に、本実施形態に係る回転速度計測装置の処理の変形例について、図6及び図7のフローチャートを参照して説明する。 Next, a modified example of the processing of the rotational speed measuring device according to the present embodiment will be described with reference to the flowcharts of FIGS. 6 and 7. FIG.
図6は、本実施形態に係る回転速度計測装置の処理の第1変形例を示す図である。図6に示すフローチャートにおけるステップST100~ST160は、図5に示すフローチャートと同じである。図6に示す第1変形例では、図5に示すフローチャートにおけるステップST165及びST170の処理(演算処理、出力処理)を、ステップST100~ST160の処理を実行する主スレッドとは別のスレッド(副スレッド)で並列に実行する。すなわち、処理部14は、ステップST160において変数Abを更新した後、副スレッドの処理を非同期に呼び出して実行する(ST175)。処理部14は、副スレッドにおいて、変数Abにより特定された単位アドレス範囲Rのデータ列DSに基づくFFT演算を行い、FFT演算により得られた時系列データの周波数成分に基づいて回転速度を算出する(ST180)。処理部14は、算出した回転速度の情報を、表示部12の画面などに出力する(ST185)。
FIG. 6 is a diagram showing a first modified example of processing of the rotation speed measuring device according to the present embodiment. Steps ST100 to ST160 in the flowchart shown in FIG. 6 are the same as those in the flowchart shown in FIG. In the first modification shown in FIG. 6, the processing (computation processing, output processing) of steps ST165 and ST170 in the flowchart shown in FIG. ) in parallel. That is, after updating the variable Ab in step ST160, the
上述した第1変形例によれば、撮像データに基づく時系列データを取得して記憶領域の単位アドレス範囲Rにデータ列DSを書き込むスレッドと、単位アドレス範囲Rからデータ列DSを読み出してFFTなどの演算を行うスレッドとが並列に実行される。そのため、演算処理(FFTなど)の処理時間を確保し易くなる。また、演算処理(FFTなど)に比較的長い時間を要する場合でも、時系列データからデータ列DSを取得する周期を妨げることなくリアルタイムに演算処理の結果を得ることが可能となる。 According to the first modified example described above, a thread that acquires time-series data based on imaging data and writes a data string DS in the unit address range R of the storage area, reads the data string DS from the unit address range R, performs FFT, etc. are executed in parallel. Therefore, it becomes easier to secure processing time for arithmetic processing (such as FFT). Moreover, even if the arithmetic processing (such as FFT) requires a relatively long time, it is possible to obtain the result of the arithmetic processing in real time without interfering with the cycle of acquiring the data string DS from the time-series data.
なお、図6の例においてステップST180及びST185の処理を実行する副スレッドは、2以上であってもよい。これにより、複数の演算処理(FFTなど)を並列に実行できるため、演算処理(FFTなど)の処理時間を更に確保し易くなる。 In the example of FIG. 6, there may be two or more secondary threads that execute the processes of steps ST180 and ST185. As a result, a plurality of arithmetic processes (such as FFT) can be executed in parallel, making it easier to secure processing time for the arithmetic processes (such as FFT).
図7は、本実施形態に係る回転速度計測装置の処理の第2変形例を示す図である。図6に示すフローチャートは、図6に示すフローチャートにおけるステップST125をステップST125Aに置き換えたものであり、他のステップは図6に示すフローチャートと同じである。 FIG. 7 is a diagram showing a second modified example of processing of the rotation speed measuring device according to the present embodiment. The flowchart shown in FIG. 6 is obtained by replacing step ST125 in the flowchart shown in FIG. 6 with step ST125A, and other steps are the same as the flowchart shown in FIG.
図5及び図6に示すフローチャートのステップST125では、第1変数W1が示すアドレスと第2変数W2が示すアドレスとが一致していない場合(ST125のNo)、第2変数W2が示すアドレスにデータDが書き込まれる(ST130)。第1変数W1が示すアドレスと第2変数W2が示すアドレスとが一致しない状態は、ステップST120において第2変数W2が先頭アドレスAhに設定されたときに始まり、ステップST145において第1変数W1のアドレスが第2変数W2のアドレスに設定されるまで継続する。そのため、この状態は、第1変数W1のアドレスが第1境界アドレスAt1以上第2境界アドレスAt2以下の状態と同じである。そこで、図7のフローチャートに示す第2変形例では、ステップST125を置換したステップST125Aにおいて、第1変数W1のアドレスが第1境界アドレスAt1以上第2境界アドレスAt2以下であるか判定される。第1変数W1のアドレスが第1境界アドレスAt1以上第2境界アドレスAt2以下の場合(ST125AのYes)、第2変数W2が示すアドレスにデータDが書き込まれる。 In step ST125 of the flow charts shown in FIGS. 5 and 6, if the address indicated by the first variable W1 and the address indicated by the second variable W2 do not match (No in ST125), data is stored in the address indicated by the second variable W2. D is written (ST130). The state where the address indicated by the first variable W1 and the address indicated by the second variable W2 do not match starts when the second variable W2 is set to the head address Ah in step ST120, and the address of the first variable W1 is set in step ST145. is set to the address of the second variable W2. Therefore, this state is the same as the state where the address of the first variable W1 is greater than or equal to the first boundary address At1 and less than or equal to the second boundary address At2. Therefore, in the second modification shown in the flowchart of FIG. 7, in step ST125A that replaces step ST125, it is determined whether the address of the first variable W1 is greater than or equal to the first boundary address At1 and less than or equal to the second boundary address At2. If the address of the first variable W1 is greater than or equal to the first boundary address At1 and less than or equal to the second boundary address At2 (Yes in ST125A), data D is written to the address indicated by the second variable W2.
<第2の実施形態>
次に、本発明の第2の実施形態に係る回転速度計測装置について説明する。第2の実施形態に係る回転速度計測装置は、第1の実施形態に係る回転速度計測装置における処理部14の処理を変更したもので、全体の構成は第1の実施形態に係る回転速度計測装置と概ね同じである。以下では、処理部14におけるデータ処理を中心に説明する。
<Second embodiment>
Next, a rotational speed measuring device according to a second embodiment of the present invention will be described. The rotation speed measurement device according to the second embodiment is obtained by changing the processing of the
処理部14は、回転速度の測定に関する処理として、第1の実施形態と同様に、検出範囲設定処理、時系列データ取得処理、アドレス生成処理、データ書き込み処理、書き込み完了検出処理、FFT演算処理、及び、回転速度算出処理を実行する。このうち、検出範囲設定処理、時系列データ取得処理、FFT演算処理、及び、回転速度算出処理については、第1の実施形態において既に説明したものと概ね同様であるため、説明を割愛する。
The
(アドレス生成処理、データ書き込み処理)
処理部14は、それぞれ書き込み先のアドレスを示す2つの変数(第1変数W1、第2変数W2)を使用して、アドレス生成処理とデータ書き込み処理を行う。記憶領域のサイズ(アドレスの個数)を「L」とすると、処理部14は、この記憶領域のサイズLをデータ列DSのデータ長Mの2倍以上に設定する(L≧2×M)。また、第1変数W1が示すアドレスと第2変数W2が示すアドレスとの間隔を「G」とすると、処理部14は、この間隔Gをデータ長M以上かつ(L-M)以下に設定する(M≦G≦L-M)。
(address generation processing, data write processing)
The
まず初期状態において、処理部14は、上述したアドレスの間隔Gを「M≦G≦L-M」に設定する。処理部14は、時系列データ取得処理において1つのデータを取得する度に、取得した1つのデータを、第1変数W1が示すアドレスと第2変数W2が示すアドレスとに書き込み、この書き込みの後、第1変数W1が示すアドレスと第2変数W2が示すアドレスとをそれぞれインクリメントする。そして、第1変数W1が示すアドレスが記憶領域の最大のアドレスを超えた場合、第1変数W1が示すアドレスを記憶領域の先頭のアドレスに設定する。また、第2変数W2が示すアドレスが記憶領域の最大のアドレスを超えた場合も、第2変数W2が示すアドレスを記憶領域の先頭のアドレスに設定する。
First, in the initial state, the
(書き込み完了検出処理)
処理部14は、上述したアドレス生成処理及びデータ書き込み処理の過程において、各データ列の単位アドレス範囲への書き込みが完了したことを検出する。例えば処理部14は、第1の実施形態と同様に、記憶領域へのデータの書き込み回数を計数した計数値に基づいて、各データ列の書き込みが完了したことを検出する。
(Write completion detection processing)
The
また処理部14は、1つのデータ列の書き込みが完了したことを検出した場合、第1変数W1が示すアドレスと第2変数W2が示すアドレスとに基づいて、当該1つのデータ列が書き込まれた単位アドレス範囲を特定する。
Further, when the
上述したアドレス生成処理及びデータ書き込み処理によって、記憶領域には、第1変数W1が示すアドレスと第2変数W2が示すアドレスの2か所に同一のデータが格納される。そのため、データ列の書き込み完了が検出されたときの第1変数W1及び第2変数W2に基づいて、同一のデータ列が書き込まれた記憶領域の2つのアドレス範囲をそれぞれ特定することが可能である。また、この2つのアドレス範囲における先頭のアドレス同士若しくは末尾のアドレス同士を比較することにより、全てのアドレスが連続している(記憶領域の末尾と先頭を含んでいない)単位アドレス範囲を特定することが可能である。すなわち、2つのアドレス範囲のうち、先頭のアドレスが記憶領域の先頭に近いアドレス範囲は、全てのアドレスが連続している。また、2つのアドレス範囲のうち、末尾のアドレスが記憶領域の末尾に近いアドレス範囲は、全てのアドレスが連続している。従って、1つのデータ列の書き込みが完了したときの第1変数W1及び第2変数W2に基づいて(例えば第1変数W1及び第2変数W2の大小関係を比較することにより)、全てのアドレスが連続している単位アドレス範囲を特定することが可能である。 By the address generating process and the data writing process described above, the same data is stored in the storage area at two locations, the address indicated by the first variable W1 and the address indicated by the second variable W2. Therefore, based on the first variable W1 and the second variable W2 when the completion of writing of the data string is detected, it is possible to specify two address ranges of the storage area in which the same data string is written. . Also, by comparing the leading addresses or trailing addresses in these two address ranges, a unit address range in which all addresses are continuous (not including the trailing end and leading end of the storage area) can be specified. is possible. That is, of the two address ranges, all the addresses are continuous in the address range whose top address is close to the top of the storage area. Further, of the two address ranges, all addresses are continuous in the address range whose end address is close to the end of the storage area. Therefore, based on the first variable W1 and the second variable W2 when the writing of one data string is completed (for example, by comparing the magnitude relationship of the first variable W1 and the second variable W2), all addresses are It is possible to specify a continuous unit address range.
図8は、第2の実施形態に係る回転計測装置において、図2に示す時系列データ(M=8,N=2)を記憶領域に書き込む動作の一例を図解した図である。図8の例において、記憶領域のサイズ(割り当てられたアドレスの個数)は「16」である。 FIG. 8 is a diagram illustrating an example of the operation of writing the time-series data (M=8, N=2) shown in FIG. 2 to the storage area in the rotation measuring device according to the second embodiment. In the example of FIG. 8, the size of the storage area (the number of assigned addresses) is "16".
初期状態において、第1変数W1には記憶領域の先頭アドレスAhが設定され、第2変数W2にはアドレス(Ah+8)が設定される。第1変数W1が示すアドレスと第2変数W2が示すアドレスとの間隔Gは「8」である。時系列データの新たなデータDが取得される度に、第1変数W1が示すアドレス及び第2変数W2が示すアドレスにはそれぞれデータDが書き込まれ、データDの書き込み後に、第1変数W1及び第2変数W2のアドレスがインクリメントされる。 In the initial state, the first variable W1 is set to the head address Ah of the storage area, and the second variable W2 is set to the address (Ah+8). The interval G between the address indicated by the first variable W1 and the address indicated by the second variable W2 is "8". Each time new data D of the time-series data is acquired, the data D is written to the address indicated by the first variable W1 and the address indicated by the second variable W2. After the data D is written, the first variable W1 and The address of the second variable W2 is incremented.
データD(8)が書き込まれたとき、アドレスAh~(Ah+7)の範囲とアドレス(Ah+8)~(Ah+15)の範囲には、それぞれデータ列DS1が書き込まれる。第1変数W1は、一方のアドレス範囲(Ah+8~Ah+15)における先頭のアドレス(Ah+8)を示し、第2変数W2は、他方のアドレス範囲(Ah~Ah+7)における先頭のアドレスAhを示す。
また、データD(14)が書き込まれたとき、アドレス(Ah+6)~(Ah+13)の範囲とアドレス(Ah+14),(Ah+15),Ah~(Ah+5)の範囲には、それぞれデータ列DS2が書き込まれる。第1変数W1は、一方のアドレス範囲(Ah+14,Ah+15,Ah~Ah+5)における先頭のアドレス(Ah+14)を示し、第2変数W2は、他方のアドレス範囲(Ah+6~Ah+13)における先頭のアドレス(Ah+6)を示す。
このように、第1変数W1及び第2変数W2は、同一のデータDが書き込まれた2つのアドレス範囲の先頭のアドレスを示す。従って、1つのデータ列DSの書き込みが完了した場合、第1変数W1が示すアドレスと第2変数W2が示すアドレスとのうち、いずれか小さいほうのアドレスを、当該1つのデータ列DSが書き込まれた単位アドレス範囲の先頭のアドレスとして特定することができる。
When data D(8) is written, data sequence DS1 is written in the range of addresses Ah to (Ah+7) and the range of addresses (Ah+8) to (Ah+15). The first variable W1 indicates the leading address (Ah+8) in one address range (Ah+8 to Ah+15), and the second variable W2 indicates the leading address Ah in the other address range (Ah to Ah+7).
When the data D(14) is written, the data string DS2 is written in the range of addresses (Ah+6) to (Ah+13) and the range of addresses (Ah+14), (Ah+15), and Ah to (Ah+5). . The first variable W1 indicates the first address (Ah+14) in one address range (Ah+14, Ah+15, Ah to Ah+5), and the second variable W2 indicates the first address (Ah+6) in the other address range (Ah+6 to Ah+13). ).
Thus, the first variable W1 and the second variable W2 indicate the top address of the two address ranges in which the same data D is written. Therefore, when the writing of one data string DS is completed, the one data string DS is written to the address indicated by the first variable W1 or the address indicated by the second variable W2, whichever is smaller. can be specified as the top address of the unit address range.
図9は、第2の実施形態に係る回転計測装置の処理の一例を説明するためのフローチャートであり、回転体の回転速度をリアルタイムに測定する場合の処理を示す。 FIG. 9 is a flowchart for explaining an example of processing of the rotation measuring device according to the second embodiment, and shows processing when measuring the rotational speed of a rotating body in real time.
処理部14は、回転速度の計測を開始する前の初期状態において、初期設定を行う(ST200)。処理部14は、初期設定において、記憶領域のサイズLをデータ長Mの2倍以上に設定し(L≧2×M)、第1変数W1を記憶領域の先頭アドレスAhに設定し、第2変数W2をアドレス(Ah+M)に設定する。第1変数W1が示すアドレスと第2変数W2が示すアドレスとの間隔Gは「M」である。また処理部14は、記憶領域へのデータDの書き込み回数を示す変数Btをゼロに設定する。
The
処理部14は、撮像装置2の撮像データに基づいて1つのデータDを取得すると(ST205)、第1変数W1が示すアドレス及び第2変数W2が示すアドレスにそれぞれデータDを書き込む(ST210)。記憶領域にデータDを書き込んだ後、処理部14は、第1変数W1及び第2変数W2をそれぞれインクリメントするとともに、データDの書き込み回数を示す変数Btをインクリメントする(ST215)。
When the
処理部14は、インクリメント後の第1変数W1が記憶領域から逸脱したアドレス(Ah+L)を示す場合(ST220のYes)、第1変数W1を記憶領域の先頭アドレスAhに設定する(ST225)。また処理部14は、インクリメント後の第2変数W2が記憶領域から逸脱したアドレス(Ah+L)を示す場合(ST230のYes)、第2変数W2を記憶領域の先頭アドレスAhに設定する(ST235)。
If the incremented first variable W1 indicates an address (Ah+L) that deviates from the storage area (Yes in ST220), the
次いで処理部14は、変数Btがデータ長M以上か確認する(ST240)。変数Btがデータ長Mに達していない場合(ST240のNo)、処理部14はステップST205に戻り、ステップST205以降の処理を繰り返す。変数Btがデータ長M以上の場合(ST240のYes)、処理部14は、次のステップST245に移行する。
Next, the
処理部14は、ステップST245において、変数Btとデータ重複数Nとの差(Bt-N)がデータ長Mとデータ重複数Nとの差(M-N)で割り切れるか確認する。差(Bt-N)が差(M-N)で割り切れない場合(ST245のNo)、処理部14はステップST205に戻り、ステップST205以降の処理を繰り返す。差(Bt-N)が差(M-N)で割り切れる場合(ST245のYes)、処理部14は、直近のデータDの書き込み(ST210)によってデータ列DSの書き込みが完了したことを検出し、次のステップST250に移行する。
In step ST245, the
処理部14は、ステップST250において、第1変数W1が示すアドレスと第2変数W2が示すアドレスのいずれか小さい方を、変数Abに設定する。変数Abは、書き込みが完了したデータ列DSの単位アドレス範囲Rにおける先頭のアドレスを示す。
In step ST250, the
処理部14は、変数Abにより特定された単位アドレス範囲Rのデータ列DSに基づいて、FFT演算を行う。また処理部14は、FFT演算により得られた時系列データの周波数成分に基づいて、回転体の回転速度を算出する(ST255)。処理部14は、算出した回転速度の情報を、表示部12の画面などに出力する(ST260)。その後、処理部14はステップST205に戻り、ステップST205以降の処理を繰り返す。
The
以上説明したように、第2の実施形態に係る回転速度計測装置によれば、第1データ列(例えば図8のデータ列DS2)の書き込み先となる第1単位アドレス範囲より後のアドレスの個数(残存アドレス数)が(M-N)個未満の場合、第1単位アドレス範囲より後の記憶領域には、第2データ列(例えば図8のデータ列DS3)の書き込み先となる第2単位アドレス範囲の(M-N)個の第2アドレスを確保することができない。この場合、記憶領域において第1単位アドレス範囲より前のN個の連続したアドレスが、第2単位アドレス範囲におけるN個の第1アドレスとされる(例えば図8の単位アドレス範囲R3におけるアドレス(Ah+4)及び(Ah+5))。これにより、第2単位アドレス範囲として、記憶領域の連続したM個のアドレスが確保される。また、第2単位アドレス範囲におけるN個の第1アドレスが第1単位アドレス範囲から外れているため、第2単位アドレス範囲のN個の第1アドレスにN個の新たなデータDが書き込まれても、第1単位アドレス範囲に既に書き込まれたデータDが当該新たなデータDによって上書きされることがない。従って、連続する第1データ列及び第2データ列においてN個のデータDを重複させつつ、第1データ列及び第2データ列をそれぞれ記憶領域の連続したアドレス範囲(単位アドレス範囲)に書き込むことができる。 As described above, according to the rotation speed measuring device according to the second embodiment, the number of addresses after the first unit address range to which the first data string (for example, the data string DS2 in FIG. 8) is written When the (number of remaining addresses) is less than (MN), the storage area after the first unit address range contains the second unit to which the second data string (for example, the data string DS3 in FIG. 8) is written. (MN) second addresses in the address range cannot be reserved. In this case, the N consecutive addresses before the first unit address range in the storage area are set as the N first addresses in the second unit address range (for example, the address (Ah+4) in the unit address range R3 in FIG. ) and (Ah+5)). As a result, M consecutive addresses of the storage area are secured as the second unit address range. Also, since the N first addresses in the second unit address range are out of the first unit address range, N new data D are written to the N first addresses in the second unit address range. Also, the new data D does not overwrite the data D already written in the first unit address range. Therefore, the first data string and the second data string are written in consecutive address ranges (unit address ranges) of the storage area while overlapping N pieces of data D in the consecutive first data string and second data string. can be done.
以上、本発明の幾つかの実施形態について説明したが、本発明は上述した実施形態に限定されるものではなく、種々のバリエーションを含んでいる。 Although several embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments and includes various variations.
例えば、上述した実施形態の説明では回転速度計測装置の例を挙げたが、本発明はこの例に限定されない。すなわち本発明は、時系列データをリアルタイムに処理する様々なデータ処理装置や、データ処理装置を備えた計測装置などの各種の装置に広く適用可能である。 For example, in the above description of the embodiment, an example of a rotational speed measuring device was given, but the present invention is not limited to this example. That is, the present invention is widely applicable to various data processing devices that process time-series data in real time, and various devices such as measurement devices equipped with data processing devices.
また、上述した実施形態の説明では、時系列データから取得したデータ列に基づいてFFT演算を行う例を挙げたが、FFTに限定されない様々な演算処理(行列演算、統計処理など)を行ってもよい。 In addition, in the description of the above-described embodiment, an example of performing FFT calculation based on a data string obtained from time-series data was given, but various calculation processing (matrix calculation, statistical processing, etc.) not limited to FFT is performed. good too.
1…データ処理装置、11…入力部、12…表示部、13…記憶部、14…処理部、15…プログラム、2…撮像装置、5…プロペラ、51…羽根、DS1~DS5…データ列、D(1)~D(32)…データ、R1~R5…単位アドレス範囲、W1…第1変数、W2…第2変数、Ab,Bt…変数、Ah…先頭アドレス、At1…第1境界アドレス、At2…第2境界アドレス、M…データ長、N…データ重複数
DESCRIPTION OF
Claims (10)
前記時系列データの各データを一時的に記憶するための記憶領域を持つ記憶部と、
処理部とを有し、
前記時系列データにおいて連続したM個の前記データが、1つのデータ列を構成し、
前記時系列データにおいて連続した2つの前記データ列が、互いに共通するN個(NはMより小さい自然数を示す。)の前記データを含み、
前記処理部は、
前記時系列データの各前記データを順次に取得する処理と、
取得した前記データの前記記憶領域における書き込み先のアドレスを生成する処理と、
生成した前記アドレスに、取得した前記データを書き込む処理と、
各前記データ列の書き込みが完了したことを検出する処理と、
1つの前記データ列の書き込み完了を検出する度に、当該1つのデータ列に基づいて所定の演算を行う処理と
を実行し、
前記アドレスを生成する処理は、1つの前記データ列を構成する前記M個のデータに対応したM個の連続する前記アドレスを、1つの単位アドレス範囲として生成し、
1つの前記単位アドレス範囲は、
当該1つのデータ列における前半のN個の前記データに対応したN個の第1アドレスと、
当該1つのデータ列における後半の(M-N)個の前記データに対応した(M-N)個の第2アドレスとを含み、
前記アドレスを生成する処理は、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合、当該1つの単位アドレス範囲より前のN個の連続した前記アドレスを、当該1つのデータ列に続く次の前記データ列に対応した次の前記単位アドレス範囲における前記N個の第1アドレスとする、
データ処理装置。 A data processing device that processes time-series data in real time,
a storage unit having a storage area for temporarily storing each data of the time-series data;
a processing unit;
M consecutive data in the time-series data constitute one data string,
Two of the data strings that are continuous in the time-series data include N pieces of the data that are common to each other (N is a natural number smaller than M),
The processing unit is
A process of sequentially acquiring each of the data of the time-series data;
a process of generating an address to which the acquired data is written in the storage area;
a process of writing the obtained data to the generated address;
a process of detecting completion of writing of each data string;
each time the completion of writing of one data string is detected, a process of performing a predetermined calculation based on the one data string;
The process of generating the addresses includes generating M consecutive addresses corresponding to the M data constituting one data string as one unit address range,
One unit address range is
N first addresses corresponding to the first half N data in the one data string;
and (MN) second addresses corresponding to the latter (MN) data in the one data string,
When the number of addresses after one unit address range corresponding to one data string is less than (M−N), the process of generating the addresses includes N the consecutive addresses are the N first addresses in the next unit address range corresponding to the next data string following the one data string;
Data processing equipment.
請求項1に記載のデータ処理装置。 When the number of addresses subsequent to one unit address range corresponding to one data string is (M−N) or more, the processing for generating the addresses includes the following N of said addresses are said to be said N first addresses in said next unit address range, and (MN) said consecutive addresses following said one unit address range are said to be said next unit address range. Let the (M−N) second addresses in
2. A data processing apparatus according to claim 1.
請求項1又は2に記載のデータ処理装置。 When the number of addresses after one of the unit address ranges corresponding to one of the data strings is less than (M−N), the process of generating the addresses is performed on the Nth address from the beginning in the storage area. Let the N addresses be the N first addresses in the next unit address range;
3. A data processing apparatus according to claim 1 or 2.
取得途中の1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合であって、かつ、当該1つの単位アドレス範囲における後半のN個の前記アドレスを生成する場合、当該1つのデータ列における1つの前記データを取得する度に、前記後半のN個のアドレスから1つの前記アドレスを生成するとともに、前記次の単位アドレス範囲における前記N個の第1アドレスから1つの前記アドレスを生成し、
取得途中の1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個以上の場合、当該1つのデータ列における1つの前記データを取得する度に、当該1つのデータに対応した1つの前記アドレスを生成する、
請求項3に記載のデータ処理装置。 The process of generating the address includes:
A case where the number of addresses after one of the unit address ranges corresponding to one of the data strings being acquired is less than (M−N), and the latter half of the one unit address range in the case of generating the addresses, each time one of the data in the one data string is obtained, one of the addresses is generated from the latter N addresses, and the address in the next unit address range is generated generating one said address from N first addresses;
When the number of addresses after one of the unit address ranges corresponding to one of the data strings being acquired is (M−N) or more, each time one of the data in the one data string is acquired , generating one said address corresponding to said one data;
4. A data processing apparatus according to claim 3.
前記アドレスを生成する処理及び前記データを書き込む処理は、
初期状態において、第1変数が示す前記アドレスを、前記記憶領域の先頭の前記アドレスに設定し、
1つの前記データを取得する度に、取得した前記1つのデータを前記第1変数が示す前記アドレスに書き込み、当該書き込みの後、前記第1変数が示す前記アドレスをインクリメントし、
1つの前記データを取得する度に、前記第1変数が示す前記アドレスが前記記憶領域の{k×(M-N)+1}番目の前記アドレスであるか確認し、前記第1変数が示す前記アドレスが前記{k×(M-N)+1}番目のアドレスである場合、第2変数が示す前記アドレスを前記先頭のアドレスに設定し、
1つの前記データを取得する度に、前記第1変数が示す前記アドレスが、前記記憶領域の{k×(M-N)+1}番目から{k×(M-N)+N}番目までのアドレス範囲に含まれるか確認し、前記第1変数が示す前記アドレスが当該アドレス範囲に含まれる場合、取得した前記1つのデータを前記第2変数が示す前記アドレスに書き込み、当該書き込みの後、前記第2変数が示す前記アドレスをインクリメントし、
前記第1変数が示す前記アドレスが前記記憶領域の{k×(M-N)+N}番目のアドレスを超えた場合、前記第1変数が示す前記アドレスを、前記第2変数が示す前記アドレスに設定する、
請求項3又は4に記載のデータ処理装置。 The storage area is composed of {k×(MN)+N} or more and less than {(k+1)×(MN)+N} addresses (where k is a natural number of 2 or more),
The process of generating the address and the process of writing the data include:
In an initial state, the address indicated by the first variable is set to the top address of the storage area;
each time one of the data is acquired, writing the acquired one data to the address indicated by the first variable, and after the writing, incrementing the address indicated by the first variable;
Each time one of the data is obtained, it is checked whether the address indicated by the first variable is the {k×(MN)+1}-th address of the storage area, and the address indicated by the first variable is checked. if the address is the {k×(M−N)+1}-th address, setting the address indicated by the second variable as the first address;
Each time one piece of data is obtained, the address indicated by the first variable is the {k×(MN)+1}th to {k×(MN)+N}th addresses of the storage area. is included in the range, and if the address indicated by the first variable is included in the address range, the obtained one data is written to the address indicated by the second variable; 2 increment the address indicated by the variable,
when the address indicated by the first variable exceeds the {k×(MN)+N}-th address of the storage area, the address indicated by the first variable is changed to the address indicated by the second variable; set,
5. A data processing apparatus according to claim 3 or 4.
前記アドレスを生成する処理及び前記データを書き込む処理は、
初期状態において、第1変数が示す前記アドレスと第2変数が示す前記アドレスとのアドレス間隔を、M以上(L-M)以下に設定し、
1つの前記データを取得する度に、取得した前記1つのデータを、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとに書き込み、当該書き込みの後、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとをそれぞれインクリメントし、
前記第1変数が示す前記アドレスが、前記記憶領域の最大の前記アドレスを超えた場合、前記第1変数が示す前記アドレスを前記記憶領域の先頭の前記アドレスに設定し、
前記第2変数が示す前記アドレスが前記最大のアドレスを超えた場合、前記第2変数が示す前記アドレスを前記先頭のアドレスに設定し、
前記書き込み完了を検出する処理は、前記アドレスを生成する処理により1つの前記データ列に対応して生成された1つの前記単位アドレス範囲を、前記第1変数が示す前記アドレスと前記第2変数が示す前記アドレスとに基づいて特定し、
前記所定の演算を行う処理は、前記書き込み完了を検出する処理により特定された前記単位アドレス範囲から、前記所定の演算に用いる前記データ列を読み出す、
請求項1又は2に記載のデータ処理装置。 The storage area is composed of L addresses (L is an integer of 2×M or more) of the addresses,
The process of generating the address and the process of writing the data include:
In an initial state, setting an address interval between the address indicated by the first variable and the address indicated by the second variable to M or more (LM) or less;
Each time one of the data is acquired, the acquired one data is written to the address indicated by the first variable and the address indicated by the second variable, and after the writing, the first variable is indicated. each incrementing the address and the address indicated by the second variable;
when the address indicated by the first variable exceeds the maximum address of the storage area, setting the address indicated by the first variable to the top address of the storage area;
when the address indicated by the second variable exceeds the maximum address, setting the address indicated by the second variable as the top address;
The process of detecting the completion of writing is performed by dividing one unit address range generated corresponding to one of the data strings by the process of generating the address, where the address indicated by the first variable and the second variable are identified based on said address indicated and
The process of performing the predetermined calculation reads the data string used for the predetermined calculation from the unit address range specified by the process of detecting the completion of writing.
3. A data processing apparatus according to claim 1 or 2.
請求項1~6のいずれか一項に記載のデータ処理装置。 the predetermined operation comprises a discrete Fourier transform;
A data processing device according to any one of claims 1 to 6.
前記1以上のコンピュータは、前記時系列データの各データを一時的に記憶するための記憶領域を持つ記憶部を備え、
前記時系列データにおいて連続したM個の前記データが、1つのデータ列を構成し、
前記時系列データにおいて連続した2つの前記データ列が、互いに共通するN個(NはMより小さい自然数を示す。)の前記データを含み、
前記コンピュータが、
前記時系列データの各前記データを順次に取得する処理と、
取得した前記データの前記記憶領域における書き込み先のアドレスを生成する処理と、
生成した前記アドレスに、取得した前記データを書き込む処理と、
各前記データ列の書き込みが完了したことを検出する処理と、
1つの前記データ列の書き込み完了を検出する度に、当該1つのデータ列に基づいて所定の演算を行う処理と
を実行し、
前記アドレスを生成する処理は、1つの前記データ列を構成する前記M個のデータに対応したM個の連続する前記アドレスを、1つの単位アドレス範囲として生成し、
1つの前記単位アドレス範囲は、
当該1つのデータ列における前半のN個の前記データに対応したN個の第1アドレスと、
当該1つのデータ列における後半の(M-N)個の前記データに対応した(M-N)個の第2アドレスとを含み、
前記アドレスを生成する処理は、1つの前記データ列に対応する1つの前記単位アドレス範囲より後の前記アドレスの個数が(M-N)個未満の場合、当該1つの単位アドレス範囲より前のN個の連続した前記アドレスを、当該1つのデータ列に続く次の前記データ列に対応した次の前記単位アドレス範囲における前記N個の第1アドレスとする、
データ処理方法。 A data processing method in which one or more computers process time-series data in real time,
The one or more computers include a storage unit having a storage area for temporarily storing each data of the time-series data,
M consecutive data in the time-series data constitute one data string,
Two of the data strings that are continuous in the time-series data include N pieces of the data that are common to each other (N is a natural number smaller than M),
The computer
A process of sequentially acquiring each of the data of the time-series data;
a process of generating an address to which the acquired data is written in the storage area;
a process of writing the obtained data to the generated address;
a process of detecting completion of writing of each data string;
each time the completion of writing of one of the data strings is detected, a process of performing a predetermined operation based on the one data string;
The process of generating the addresses includes generating the M consecutive addresses corresponding to the M data constituting one data string as one unit address range,
One unit address range is
N first addresses corresponding to the first half N data in the one data string;
and (MN) second addresses corresponding to the latter (MN) data in the one data string,
In the process of generating the addresses, when the number of addresses after one unit address range corresponding to one data string is less than (MN), N before the one unit address range the consecutive addresses are the N first addresses in the next unit address range corresponding to the next data string following the one data string;
Data processing method.
請求項7に記載のデータ処理装置とを有し、
前記時系列データの前記データを順次に取得する処理は、前記撮像装置において撮像された前記回転体の画像における特定の領域に含まれた画素の値に応じた数値データを、前記時系列データの前記データとして周期的に取得し、
前記処理部は、前記所定の演算として行った前記離散フーリエ変換の結果が示す前記時系列データの周波数成分に基づいて、前記回転体の回転速度を算出する、
回転速度計測装置。
an imaging device that captures an image of a rotating body at regular intervals;
A data processing device according to claim 7,
The process of sequentially acquiring the data of the time-series data includes numerical data corresponding to the values of pixels included in a specific region in the image of the body of rotation captured by the imaging device. obtained periodically as said data;
The processing unit calculates the rotation speed of the rotating body based on the frequency component of the time-series data indicated by the result of the discrete Fourier transform performed as the predetermined calculation.
Rotational speed measuring device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019147745A JP7223661B2 (en) | 2019-08-09 | 2019-08-09 | DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM AND ROTATION MEASURING DEVICE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019147745A JP7223661B2 (en) | 2019-08-09 | 2019-08-09 | DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM AND ROTATION MEASURING DEVICE |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021028779A JP2021028779A (en) | 2021-02-25 |
JP7223661B2 true JP7223661B2 (en) | 2023-02-16 |
Family
ID=74667541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019147745A Active JP7223661B2 (en) | 2019-08-09 | 2019-08-09 | DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM AND ROTATION MEASURING DEVICE |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7223661B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001203675A (en) | 2000-01-20 | 2001-07-27 | Toyo Commun Equip Co Ltd | Slip control circuit |
JP2009129288A (en) | 2007-11-27 | 2009-06-11 | Yokogawa Electric Corp | Data buffering device |
JP2013120499A (en) | 2011-12-07 | 2013-06-17 | Canon Inc | Memory control device and memory control method |
JP2016217843A (en) | 2015-05-19 | 2016-12-22 | 株式会社小野測器 | Rotation velocity measurement device |
-
2019
- 2019-08-09 JP JP2019147745A patent/JP7223661B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001203675A (en) | 2000-01-20 | 2001-07-27 | Toyo Commun Equip Co Ltd | Slip control circuit |
JP2009129288A (en) | 2007-11-27 | 2009-06-11 | Yokogawa Electric Corp | Data buffering device |
JP2013120499A (en) | 2011-12-07 | 2013-06-17 | Canon Inc | Memory control device and memory control method |
JP2016217843A (en) | 2015-05-19 | 2016-12-22 | 株式会社小野測器 | Rotation velocity measurement device |
Also Published As
Publication number | Publication date |
---|---|
JP2021028779A (en) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3629181B2 (en) | Program development support device | |
JP6573838B2 (en) | Anomaly detection system for rotating machines | |
RU2008101466A (en) | SMOOTH TRANSITIONS BETWEEN ANIMATIONS | |
JP6379410B1 (en) | Inspection device, inspection system, inspection method, and program | |
JP6251658B2 (en) | Rotating machine abnormality detection device, method and system, and rotating machine | |
US20130139167A1 (en) | Identification of Thread Progress Information | |
EP2919164B1 (en) | Image processing apparatus and segmentation method | |
JP7223661B2 (en) | DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM AND ROTATION MEASURING DEVICE | |
US20170248634A1 (en) | Measurement system that stores pre- and post-qualification signal data | |
JP6786015B1 (en) | Motion analysis system and motion analysis program | |
JP7458713B2 (en) | Image processing device, image processing system, control method, and program | |
JP7116562B2 (en) | Trace data representation | |
JP5709915B2 (en) | Machine learning device, machine learning method, and program | |
JP5982845B2 (en) | Trace control apparatus and trace control method | |
JP2000515652A (en) | Display device | |
JP6370667B2 (en) | Waveform display device | |
CN111435336A (en) | Waveform data thinning | |
JP7000940B2 (en) | Shape measuring device, shape measuring method and program | |
JP2020160829A (en) | Image processing apparatus and image processing method | |
JP5662787B2 (en) | Mobile terminal and image processing method | |
JPH0934754A (en) | Instrument and method for measuring performance of program | |
JP6579925B2 (en) | Image reproducing apparatus, control method therefor, program, and recording medium | |
JP2019505039A (en) | Hardware access counter and event generation to coordinate multi-threaded processing | |
US20230135751A1 (en) | Evaluation method, evaluating apparatus, and storage medium | |
CN111061444B (en) | Graphic display of discontinuous waveform data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220303 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230111 |
|
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: 20230124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230206 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7223661 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |