ディジタル信号処理 Digital Signal Processing

Slides:



Advertisements
Similar presentations
1 高速フーリエ変換 (fast Fourier transform). 2 高速フーリエ変換とは? – 簡単に言うとフーリエ変換を効率よく計算 する方法 – アルゴリズムの設計技法は分割統治法に基 づいている 今回の目的は? – 多項式の積を求める問題を取り上げ、高速 フーリエ変換のアルゴリズムを用いた解法.
Advertisements

情報通信システム( 2 ) 年 4 月 26 日 火曜日 午後 4 時 10 分~ 5 時 40 分 NTT-IT Corp. 加藤 洋一.
コンピュータ演習 Excel 入門 岡田孝・山下雅啓 Excel の機能は膨大 その中のごく一部を紹介 表計算機能 – データの入力、表の作成、計算など グラフ機能 – 棒グラフ、円グラフなどグラフ作成 データベース機能 – 並べ替え(ソート)、検索、抽出など マクロ機能 – VBA で自動化したマクロを作成可能.
香川大学工学部 富永浩之 情報数学1 第1-1章 除法定理と整除演算 香川大学工学部 富永浩之
香川大学工学部 富永浩之 情報数学1 第1-1章 除法定理と整除演算 香川大学工学部 富永浩之
情報通信システム(3) plala. or 情報通信システム(3) 年5月10日 火曜日  午後4時10分~5時40分 NTT-IT Corp. 加藤 洋一.
det(tA)=Σ sgn(σ)aσ(1)1aσ(2)2・・・aσ(n)n
復習.
数値計算及び実習 第3回 プログラミングの基礎(1).
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
2009/10/9 良いアルゴリズムとは 第2講: 平成21年10月9日 (金) 4限 E252教室 コンピュータアルゴリズム.
デジタル信号処理③
担当 : 山口 匡 伊藤 祐吾 (TA) 宮内 裕輔 (TA)
システム開発実験No.7        解 説       “論理式の簡略化方法”.
首都大学東京 都市教養学部数理科学コース 関谷博之
ディジタル信号処理 Digital Signal Processing
補数 n:桁数、b:基数 bの補数 bn-x 253(10進数)の10の補数は、 =747
6.4 離散的コサイン変換 (DCT : discrete cosine transform ) (1)DCTとは
デジタル信号処理④
羽佐田葉子 2007年3月24日 アクロス研究会@静岡大学
電気回路学Ⅱ エネルギーインテリジェンスコース 5セメ 山田 博仁.
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
地理情報システム論演習 地理情報システム論演習
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
応用数理工学特論 第9回 高速フーリエ変換の高性能化手法
応用数理工学特論 第9回 高速フーリエ変換とその並列化
スペクトル法の一部の基礎の初歩への はじめの一歩
繰り返し計算 while文, for文.
関数の定義.
デザイン情報学科 メディア情報設計 河原英紀
ディジタル信号処理 Digital Signal Processing
線 形 代 数 (linear algebra) linear ・・・ line(直線)の形容詞形 直線的な、線形の、一次の
デザイン情報学科 メディア情報設計 河原英紀
デザイン情報学科 メディア情報設計 河原英紀
データ構造とアルゴリズム論 第7章 再帰処理 平成17年12月6日 森田 彦.
第5回放送授業.
4点FFT設計 ファイヤー和田 知久 琉球大学・工学部・情報工学科 教授
ディジタル信号処理 Digital Signal Processing
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
ディジタル信号処理 Digital Signal Processing
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
音声分析 フーリエ解析の定性的理解のために.
情報処理Ⅱ 第2回:2003年10月14日(火).
プログラミング 4 探索と計算量.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
ディジタル信号処理 Digital Signal Processing
コンパイラ 2011年10月20日
ディジタル信号処理 Digital Signal Processing
補講:アルゴリズムと漸近的評価.
データの表現 2進数 0と1を使う。 基数(基準になる数)が2. 101(2) かっこで2進数と示すことがある。
行列式 方程式の解 Cramerの公式 余因数展開.
ディジタル信号処理 Digital Signal Processing
第14回 前半:ラムダ計算(演習付) 後半:小テスト
福井大学大学院工学研究科機械工学専攻 川谷 亮治
アルゴリズムとプログラミング (Algorithms and Programming)
データ構造とアルゴリズム論 第7章 再帰処理 平成16年11月30日 森田 彦.
精密工学科プログラミング基礎 第7回資料 (11/27実施)
~sumii/class/proenb2009/ml6/
電気回路学Ⅱ 通信工学コース 5セメ 山田 博仁.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
プログラミング演習I 2003年6月11日(第9回) 木村巌.
第10回 関数と再帰.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
6.2 高速フーリエ変換 (1)FFT(fast Fourier transform)とは
情報処理Ⅱ 第8回:2003年12月9日(火).
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
アルゴリズム ~すべてのプログラムの基礎~.
8.2 数値積分 (1)どんなときに数値積分を行うのか?
Presentation transcript:

ディジタル信号処理 Digital Signal Processing 第17講 FFT Fast Fourier transform 高速フーリエ変換

高速フーリエ変換 高速フーリエ変換( Fast Fourier Transform, FFT)とは、離散フーリエ変換 (Discrete Fourier Transform, DFT) を計算機上で高速に計算するアルゴリズム。   逆変換をIFFT (Inverse FFT) という。 高速フーリエ変換といえば一般的には1965年、ジェイムズ・クーリー (J. W. Cooley) とジョン・テューキー (J. W. Tukey) が発見したとされ,Cooley-Tukey型FFTアルゴリズムを呼ぶ。しかし、1805年ごろにガウスが同様のアルゴリズムを独自に発見していたといわれている。

信州大学工学部・井澤裕司先生 URL: http://laputa. cs. shinshu-u. ac 信州大学工学部・井澤裕司先生 URL: http://laputa.cs.shinshu-u.ac.jp   /~yizawa/InfSys1/basic/chap7   /index.htm わかりやすい記事が載っています 先頭ページは    http://laputa.cs.shinshu-u.ac.jp      /~yizawa/InfSys1/basic      /index.htm

原理の簡単な説明(Wikipedia) 離散フーリエ係数は、exp( -2 π j / N ) を使うと、次のように表せる。 3.2式に当る 記号はテキストと違う 例えば、N = 4 のとき、離散フーリエ係数は行列を用いて表現すると

2行目と3行目行の入れ替え(係数列はこうなる) 入力列を添字の偶奇で分けて、以下のように変形する。 2行目と3行目行の入れ替え(係数列はこうなる) すると、サイズ2のFFTの演算結果を用いて表現でき、サイズの分割ができる。

また、この分割手順を図にすると蝶のような図になることから、バタフライ演算とも呼ばれる。 バタフライ演算は、計算機上ではビット反転で実現される。DSPの中には、このバタフライ演算のプログラムを容易にするため、ビット反転アドレッシングを備えているものがある。

5.4 高速フーリエ変換 (FFT : Fast Fourier Transform)

5.4.1 基数2のFFT DFTの式

■ビット反転の関係

5.4.2 混合基数FFT

5.4.3 高速フーリエ逆変換

計算の高速化 計算量を減せば早く答が得られる 式をそのまま行うと膨大な計算量になる 計算量を大幅に減少させるアルゴリズムを高速フーリエ変換(fast Fourier transform : FFT )という 基本的な考え方:  ① データ数 N を 2p にする  ② 計算順序を変える ③ 偶数番のデータと奇数番のデータ (n=1,2,3,・・・・,N/2-1) x0(n)=x(2n)   ・・・偶数番   x1(n)=x(2n+1) ・・・奇数番

高速フーリエ変換の計算手数 データの並べ替えは無視する 積和演算の回数は,r個の積和演算をq回行い,さらにこれをp回繰り返すことになる N=q・r=2pであるから,Nだけで表すと演算回数=N・log2N 演算回数比η=FFT/DFT= N・log2N/N2 Nが大きいときFFTの高価は顕著に表れる

高速フーリエ変換のメリット 次の例で考えてみる N=8 鋸歯状波 離散時間信号 x(0)=0,x(1)=1,x(2)=2,x(3)=3,  x(4)=4,x(5)=5,x(6)=6,x(7)=7  離散フーリエ変換の式(3.2)式・・標準式 X(k)・・・k=0~7を求める操作を考える 離散フーリエ変換では

X(k)の計算 X(k)=Σx(n)・exp(-j・2・π・k・n / N)を展開して X(k)={x(0)・exp(-j・2・π・k・0 / 8)  +x(1)・exp(-j・2・π・k・1 / 8)  +x(2)・exp(-j・2・π・k・2 / 8)  +x(3)・exp(-j・2・π・k・3 / 8)  +x(4)・exp(-j・2・π・k・4 / 8)  +x(5)・exp(-j・2・π・k・5 / 8)  +x(6)・exp(-j・2・π・k・6 / 8)  +x(7)・exp(-j・2・π・k・7 / 8)} C言語では,複素計算ができないので,   exp(-j2πkn/N)=cos(2πkn/N)-jsin(2πkn/N)  と実数部,虚数部別々に計算しなければならない

X(k)にオイラーの公式を当てはめ X(k)={x(0)・exp(-j2πk0/8)+x(1)・exp(-j2πk1/8)+x(2)・exp(-j2πk2/8)  +x(3)・exp(-j2πk3/8)+x(4)・exp(-j2πk4/8)+x(5)・exp(-j2πk5/8)  +x(6)・exp(-j2πk6/8)+x(7)・exp(-j2πk7/8)}   = [x(0)・{cos(2πk0/8)-j・sin(2πk0/8)}   +x(1)・{cos(2πk1/8)-j・sin(2πk1/8)}   +x(2)・{cos(2πk2/8)-j・sin(2πk2/8)}   +x(3)・{cos(2πk3/8)-j・sin(2πk3/8)}   +x(4)・{cos(2πk4/8)-j・sin(2πk4/8)}   +x(5)・{cos(2πk5/8)-j・sin(2πk5/8)}   +x(6)・{cos(2πk6/8)-j・sin(2πk6/8)}   +x(7)・{cos(2πk7/8)-j・sin(2πk7/8) }]

X(0)の計算 k=0だから・・・cos(0)=1,sin(0)=0となり, 簡単に計算できて  簡単に計算できて   X(0)= { 28+j 0 } = + 28.0 + j 0.00   |X(0)|= 28.0  となる 同様にX(1)~X(7)を求めると

X(1)~X(7)を計算すると X(0)= + 28.0 + j 0.00 |X(0)|= 28.0

これまでに要した計算回数 x(n)=0の場合もカウントして X(0)の実部・・・cosをN回,N項の和,1/N倍 X(0)の虚部・・・sinをN回,N項の和,1/N倍 これをk=0~N-1までN回繰り返し計算する 合計 cos を N×N回 sin を N×N回 和 を 2×N×N回 1/N倍 を 2×N回

FFTでは N=2p =qr Nが 2p となるようにすると 2分割 → 4分割 → ・・・ すべてのkについて集計すると 2分割 → 4分割 → ・・・ すべてのkについて集計すると cos を (N×N)/2+N回 sin を (N×N)/2+N回 和 を (N×N)回 1/2倍 を (2×N)回

計算量(積和演算回数)の比較 N=2pの場合 DFT : N2回 FFT : N(log2N)/2回 計算回数比=DFT/FFT

FFTアルゴリズム そのまえにアルゴリズムってなーに algorithm:算法 ある特定の問題を解いたり、課題を解決したりするための計算手順や処理手順のこと。これを図式化したものがフローチャートであり、コンピューターで処理するための具体的な手順を記述したものがプログラムである。イランの数学者・天文学者、アル=フワーリズミーにちなむ。

再帰性アルゴリズム そのまえに再帰性ってなーに 再帰: recursion ①あるものについて記述する際に、記述しているものそれ自身への参照が、   その記述中にあらわれることをいう。定義において、再帰があらわれている   ものを再帰的定義という。数学的帰納法との原理的な共通性から、数学で   は「帰納」を使うことがある。 ②他にrecurrenceの訳や、reflectionの訳(再帰代名詞、再帰動詞。 ③また、社会学で、対象に対する言及がその対象自体に影響を与えることとして「再帰」が使われることがある。 recursive [形] 1 繰り返し用いられる, 回帰できる. 2 《数》帰納[再帰]的な. 再帰呼出し recursive call リカーシブルコール プログラミング技法の一。コンピュータのプログラムを実行中に、あるルーチンや関数が自分自身を呼び出して実行すること。無限に自分自身を呼び出さないよう、正常に機能させる手続きを必要とする。階乗やフィボナッチ数列の計算などに利用される。

X(q区分,r点データ列)を与えて,q区分のr点DFT列X’を作成する N=qrとする

非再帰性アルゴリズム

質問はありませんか? 今日はここまで ごきげんよう