wkoikingのブログ

内容は主にhaskellやxyzzy関連です。

初めての記事

はじめてのの記事(テスト)

ここに本文1がきます。

ヘッダー2

ここが本文2です。

以下、コードの挿入です。

module FFT where

import Control.Arrow ( (***) )
import Data.Complex (Complex, cis)
import Data.List (partition)

type Signal = [Complex Double]

-- 信号処理の基礎的な演算
fft, ifft :: Signal -> Signal
fft = fft' 1
ifft = fft' (-1)

fft' m ls = fft'' m (fromIntegral $ length ls) ls

fft'' :: Double -> Double -> Signal -> Signal
fft'' m 1 ls = ls
fft'' m n ls
  = zipWith3 (\e c o -> (e + c * o) / sqrt 2) (es ++ es) cs (os ++ os)
 where
   (es,os) = dup (fft'' m n') $ ipartition (\k _ -> even k) ls
   cs = [cis (m * 2 * pi * k / n) | k <- [0..(n-1)]]
   n' = scaleFloat (-1) n

ipartition :: (Int -> a -> Bool) -> [a] -> ([a], [a])
ipartition f = dup (map snd) . partition (uncurry f) . zip [0..]

dup f = f *** f

(<**>) :: Signal -> Signal -> Signal
x <**> y = map (/ n) $ ifft $ zipWith (*) (fft x) (fft y)
 where
   n = fromIntegral $ length x

箇条書きのテストです。

画像の挿入。

sakura

sakura

markdown-mode.l

Unko
RightLeftCenterDefault
12 12 12 12
123 123 123 123
1 1 1 1

数式


 f(n)=\sum_{k=1}^n a_k

引用

これは、引用された文章です。