様式9 +-------------------------------------+----------------+----------------------+ | システム名(コード): ALOGPAK87 | | システム報告書概要 | +-------------------------------------+ +----------------------+ | モジュール名(コード): FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者・学生番号: 増沢善子21SS1159 | 文書作成者・学生番号: 増沢善子21SS1159 | +-------------------------------------+---------------------------------------+ | 作成期間: 62/ 1/ ー / / | 文書作成期間: 62/ 2/ ー / / | +-------------------------------------+---------------------------------------+ | 親モジュール: ALGOS | 子モジュール: | +-------------------------------------+---------------------------------------+ | 講義名・課題名: 卒業研究 | 参考文献(著者名、書名、出版社、発行年)| +-------------------------------------+ | | 開発形態: 移植 | SARA BAASE,COMPUTER ALGOLITHMS, | +-------------------------------------+ | | 形式: サブルーチン | ADDISON WESLEY,1978. | +-------------------------------------+---------------------------------------+ | 利用対象者: 一般 | 格納メディア形式: フロッピーディスク | +-------------------------------------+---------------------------------------+ | 目的(問題解説、機能解説−制限事項)| 格納メディア番号、ファイル名: | | +---------------------------------------+ | | 記述言語・走行OS: TURBO PASCAL | | 高速フーリエ変換の +---------------------------------------+ | | 走行条件(ハードウェア、ソフトウェア)| | サブルーチンプログラム | | | | | | | PC−9801,MS−DOS | +-------------------------------------+---------------------------------------+ | キーワード(適用分野、手法など) : | 分類コード(CRコードを使用) : | | THE FAST FOURIER TRANSFORM | | +-------------------------------------+---------------------------------------+ | 呼び出し法: FFT(XREAL,XIMAG,N,NU) | | | +-----------------------------------------------------------------------------+ | 操作手順(コンプリートプログラム(メインプログラム)の場合:1.システム起動手順、2.データ入出力 | | 手順と形式、3.終了手順) | | (サブルーチンの場合:1.呼び出し形式-引き数の並べ方-、2.親ルーチン、3.子ルー | | チン、4.その他) | | 1. XREAL(入力):高速フーリエ変換を行うベクトルの成分の実部 | | | | XIMAG(入力):高速フーリエ変換を行うベクトルの成分の虚部 | | | | N(入力):ベクトルの成分の個数(N=2**k,k=0,1,2,・・・) | | | | NU(入力):上記の条件でのkの値 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 注. システム1つにつき1枚作成 必要な場合モジュール1つにつき1枚作成(インターフェース仕様書-様式1-に追加) 様式7 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | 問題解説 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | n次元ベクトルを、効率的に計算するアルゴリズムによりフーリエ | | | | 変換を行う。(高速フーリエ変換、THE FAST FOURIER TRANSFORM (FFT))。 | | | | 高速フーリエ変換を行なった結果は、複素成分のn次元ベクトルである。 | | | | n≧1に対して、W(オメガ)を1の原始n乗根と置く。そしてFnを | | | | 0≦i,j≦n−1に対しfij=W**(i*j)の要素を持つn×n行列とする。 | | | | n次元ベクトルP=(P1,P2,・・・,Pn)の離散的フーリエ変換 | | | | とは、積FnPのことである。 | | | | この問題での最大の狙いは、計算処理時間の短縮である。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | ++-------++ +-----+ ++-------++ +--------++ +---------+ | | !!MODULE !! + + !! !! ! ARRAY !! ! ! | | !! FFT1 !!--!->+ TYPE +---->!! ZISU !!---->![1..100]!!---->! real ! | | !! !! ! + + !! !! ! !! ! ! | | ++-------++ ! +-----+ ++-------++ +--------++ +---------+ | | ! | | ! ++-------++ +---------+ | | ! !!functio!! ! C:FFT2 ! | | !->!!n IBITR!!---->! ------- ! | | ! !! !! ! ! | | ! ++-------++ +---------+ | | ! | | ! ++-------++ +---------+ | | ! !!functio!! ! C:FFT3 ! | | !->!!n BEKI !!---->! ------- ! | | ! !! !! ! ! | | ! ++-------++ +---------+ | | ! | | ! ++-------++ +-----+ +-------+ ++-------++ | | ! !!PROCEDU!! +parame + +XREAL, + !! !! | | -->!!RE FFT !!--!->+ ter +--!->!XIMAG !---->!! ZISU !! | | !! !! ! + + ! + + !! !! | | ++-------++ ! +-----+ ! +-------+ ++-------++ | | ! ! | | ! ! +-------+ +---------+ | | ! ! + + ! ! | | ! -->! N,NU !---->!integer ! | | ! + + ! ! | | ! +-------+ +---------+ | | ! | | ! +-----+ +-------+ +---------+ | | ! + + +N2,NU1,K,+ ! ! | | !->+ var +--!->!L,P,K1,K1!---->! integer ! | | ! + + ! +N2 + ! ! | | ! +-----+ ! +-------+ +---------+ | | ! ! | | ! ! +-------+ +---------+ | | ! ! +ARG,C,S, + ! ! | | ! -->!TREAL, !---->! real ! | | ! +TIMAG + ! ! | | ! +-------+ +---------+ | | ! | | ! +---------+ | | ! ! C:FFT4 ! | | -->! ------- ! | | ! ! | | +---------+ | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | +---------+ +-----+ +-------+ +---------+ +---------+ | | ! C:FFT2 ! +parame + + + ! ! !integer ! | | ! ------- !--!->+ ter +---->! J,NU !---->! integer !---->! ! | | ! ! ! + + + + ! ! ! ! | | +---------+ ! +-----+ +-------+ +---------+ +---------+ | | ! | | ! +-----+ +-------+ +---------+ | | ! + + +J1,I,J2, + ! ! | | !->+ var +---->! B !---->! integer ! | | ! + + + + ! ! | | ! +-----+ +-------+ +---------+ | | ! | | ! +---------+ | | ! ! ! | | -->! J1:=J ! | | ^ ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! ! ! | | ! ! B:=0 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +--------++ +---------+ | | ! !for I:=1!! !J2:=J1 di! | | ! ! to NU !!---->!v 2 ! | | ! ! !! ^ ! ! | | ! +--------++ ! +---------+ | | ! ! ! ! | | ! +---------+ ! +---------+ | | ! ! ! ! !B:=B*2+(J! | | !-!IBITR:=B ! ! !1-2*J2) ! | | ! ! ! ! ! | | +---------+ ! +---------+ | | ! ! | | ! +---------+ | | ! ! ! | | !-! J1:=J2 ! | | ! ! | | +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | +---------+ +-----+ +-------+ +---------+ +---------+ | | ! B:FFT3 ! +parame + + + ! ! ! ! | | ! ------- !--!->+ ter +---->! NU1 !---->!integer !---->! integer ! | | ! ! ! + + + + ! ! ! ! | | +---------+ ! +-----+ +-------+ +---------+ +---------+ | | ! | | ! +-----+ +-------+ +---------+ | | ! + + + + ! ! | | !->+ var +---->! Z,C !---->! integer ! | | ! + + + + ! ! | | ! +-----+ +-------+ +---------+ | | ! | | ! +---------+ | | ! ! ! | | -->! C:=1 ! | | ^ ! ! | | ! +---------+ | | ! ! | | ! +--------++ +---------+ | | ! !for Z:=1!! ! ! | | ! ! to NU1 !!---->! C:=C*2 ! | | ! ! !! ! ! | | ! +--------++ +---------+ | | ! ! | | ! +---------+ | | ! ! ! | | !-! BEKI:=C ! | | ! ! | | +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | +-------------------------+ +---------+ | | ! C:FFT4 ! !N2:= ! | | ! ----------------------- !---->! N div 2 ! | | ! ! ^ ! ! | | +-------------------------+ ! +---------+ | | ! ! | | ! +---------+ | | ! !NU1:= ! | | ! ! NU-1 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! ! ! | | ! ! K:=0 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +--------++ +--------++ +---------+ | | ! !for L:=1!! !repeat !! ! C:FFT5 ! | | ! ! to NU !!---->! K>=N !!---->! ------- ! | | ! ! !! ^ ! !! ! ! | | ! +--------++ ! +--------++ +---------+ | | ! ! ! ! | | ! ! ! +---------+ | | ! ! ! ! ! | | ! ! ! ! K:=0 ! | | ! ! ! ! ! | | ! ! ! +---------+ | | ! ! ! ! | | ! ! ! +---------+ | | ! ! ! !NU1:= ! | | ! ! ! ! NU1-1 ! | | ! ! ! ! ! | | ! ! ! +---------+ | | ! ! ! ! | | ! ! ! +---------+ | | ! ! ! !N2:= ! | | ! ! !-! N2 div 2! | | ! ! ! ! | | ! ! +---------+ | | ! ! | | ! +--------++ +---------+ | | ! !for K:=1!! !I:=IBITR(! | | !-! to N !!---->!K-1,NU)+1! | | ! !! ^ ! ! | | +--------++ ! +---------+ | | ! ! | | ! +-------+ +---------+ | | ! ! + ! C:FFT7 ! | | !-! if I>K +---->! ------- ! | | ! + ! ! | | +-------+ +---------+ | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | +-------------------------+ +--------++ +-------------------------+ | | ! C:FFT5 ! !for I:=1!! !P:= ! | | ! ----------------------- !---->! to N2 !!---->!IBITR(K div BEKI(NU1),NU)! | | ! ! ^ ! !! ^ ! ! | | +-------------------------+ ! +--------++ ! +-------------------------+ | | ! ! ! ! | | ! +---------+ ! +---------+ | | ! ! ! ! !ARG:=2* ! | | !-! K:=K+N2 ! ! ! 3.14*P/N! | | ! ! ! ! ! | | +---------+ ! +---------+ | | ! ! | | ! +---------+ | | ! !C:= ! | | ! ! cos(ARG)! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !S:= ! | | ! !sin(ARG) ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! ! ! | | ! ! K1:=K+1 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !K1N2:= ! | | ! ! K1+N2 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! ! C:FFT6 ! | | !-! ------- ! | | ! ! | | +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | +-------------------------+ +--------++ +-------------------------+ | | ! C:FFT5 ! !for I:=1!! !P:= ! | | ! ----------------------- !---->! to N2 !!---->!IBITR(K div BEKI(NU1),NU)! | | ! ! ^ ! !! ^ ! ! | | +-------------------------+ ! +--------++ ! +-------------------------+ | | ! ! ! ! | | ! +---------+ ! +---------+ | | ! ! ! ! !ARG:=2* ! | | !-! K:=K+N2 ! ! ! 3.14*P/N! | | ! ! ! ! ! | | +---------+ ! +---------+ | | ! ! | | ! +---------+ | | ! !C:= ! | | ! ! cos(ARG)! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !S:= ! | | ! !sin(ARG) ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! ! ! | | ! ! K1:=K+1 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !K1N2:= ! | | ! ! K1+N2 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! ! C:FFT6 ! | | !-! ------- ! | | ! ! | | +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | +-------------------------+ +-------------------------+ | | ! C:FFT6 ! ! TREAL:=XREAL[K1N2]*C+ ! | | ! ----------------------- !---->! XIMAG[K1N2]*S ! | | ! ! ^ ! ! | | +-------------------------+ ! +-------------------------+ | | ! ! | | ! +-------------------------+ | | ! ! TIMAG:=XIMAG[K1N2]*C- ! | | ! ! XREAL[K1N2]*S ! | | ! ! ! | | ! +-------------------------+ | | ! ! | | ! +-------------------------+ | | ! ! XREAL[K1N2]:= ! | | ! ! XREAL[K1]-TREAL ! | | ! ! ! | | ! +-------------------------+ | | ! ! | | ! +-------------------------+ | | ! ! XIMAG[K1N2]:= ! | | ! ! XIMAG[K1]-TIMAG ! | | ! ! ! | | ! +-------------------------+ | | ! ! | | ! +-------------------------+ | | ! !XREAL[K1]:= ! | | ! ! XREAL[K1]+TREAL ! | | ! ! ! | | ! +-------------------------+ | | ! ! | | ! +-------------------------+ | | ! !XIMAG[K1]:= ! | | ! ! XIMAG[K1]+TIMAG ! | | ! ! ! | | ! +-------------------------+ | | ! ! | | ! +---------+ | | ! ! ! | | !-! K:=K+1 ! | | ! ! | | +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK87 | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: FFT (A505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 高野勇 20SS1326 | 文書作成者: 高野勇 20SS1326 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/ 7/ ー 60/12/ | 文書作成期間: 60/12/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | | | +---------+ +---------+ | | ! C:FFT7 ! !TREAL:= ! | | ! ------- !---->! XREAL[K]! | | ! ! ^ ! ! | | +---------+ ! +---------+ | | ! ! | | ! +---------+ | | ! !TIMAG:= ! | | ! ! XIMAG[K]! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !XREAL[K] ! | | ! !:=XREAL[I! | | ! !] ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !XIMAG[K] ! | | ! !:=XIMAG[I! | | ! !] ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !XREAL[I] ! | | ! !:=TREAL ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +---------+ | | ! !XIMAG[I] ! | | !-!:=TIMAG ! | | ! ! | | +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式9 +-------------------------------------+----------------+----------------------+ | システム名(コード): ALGOPAK87 | | システム報告書概要 | +-------------------------------------+ +----------------------+ | モジュール名(コード): CFFT (P505) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者・学生番号: 増沢善子21SS1159 | 文書作成者・学生番号: 増沢善子21SS1159 | +-------------------------------------+---------------------------------------+ | 作成期間: 62/ 1/ ー / / | 文書作成期間: 62/ 2/ ー / / | +-------------------------------------+---------------------------------------+ | 親モジュール: ALGOPAK   | 子モジュール: FFT (A505) | +-------------------------------------+---------------------------------------+ | 講義名・課題名: 卒業研究 | 参考文献(著者名、書名、出版社、発行年)| +-------------------------------------+ | | 開発形態: 移植 | SARA BAASE,COMPUTER ALGORITHMS, | +-------------------------------------+ | | 形式: コンプリート | ADDISON WESLEY,1978. | +-------------------------------------+---------------------------------------+ | 利用対象者: 一般 | 格納メディア形式: フロッピーディスク | +-------------------------------------+---------------------------------------+ | 目的(問題解説、機能解説−制限事項)| 格納メディア番号、ファイル名: | | +---------------------------------------+ | | 記述言語・走行OS: TURBO PASCAL | | 高速フーリエ変換の +---------------------------------------+ | | 走行条件(ハードウェア、ソフトウェア)| | サブルーチンプログラム | | | | | | | PC−9801,MS−DOS | +-------------------------------------+---------------------------------------+ | キーワード(適用分野、手法など) : | 分類コード(CRコードを使用) : | | THE FAST FOURIER TRANSFORM | | +-------------------------------------+---------------------------------------+ | 呼び出し法: CFFT | | データ | +-----------------------------------------------------------------------------+ | 操作手順(コンプリートプログラム(メインプログラム)の場合:1.システム起動手順、2.データ入出力 | | 手順と形式、3.終了手順) | | (サブルーチンの場合:1.呼び出し形式-引き数の並べ方-、2.親ルーチン、3.子ルー | | チン、4.その他) | | 1. >CFFT.SRC            | | | |                                | | | |                      | | | | データ | | | | 2.1)入力データ | | | | N:ベクトルの成分の個数(N≦100,N=2**k,k=0,1,2,・・・) | | | | NU:上記の条件でのkの値 | | | | XREAL(A):ベクトルの第A成分の実部(1≦A≦N) | | | | XIMAG(A):ベクトルの第A成分の虚部(1≦A≦N) | | | | 2)出力データ | | | | XREAL(A),XIMAG(A) | | | | 入力したベクトルを高速フーリエ変換して求められたベクトル | | | | ☆テスト例 A>B: | | B>CFFT