csvのデータを取り込んで、stftを行うプログラムを作りたいのですが、csvを取り込むところまではできたのですが、stftがうまくいきません。具体的にはstftした結果がすべて0.+0.jと返されてしまいます。そこで助言を頂きたく質問させていただきました。

ソースコードは以下のようになっています。

from scipy import ceil, complex64, float64, hamming, zeros
from scipy.fftpack import fft# , ifft
from scipy import ifft 

from matplotlib import pylab as pl
import numpy as np
import csv

def stft(x, win, step):
    l = len(x) 
    N = len(win) 
    M = int(ceil(float(l - N + step) / step))    
    new_x = zeros(N + ((M - 1) * step), dtype = float64)
    x = new_x[: l] 

    X = zeros([M, N], dtype = complex64)
    for m in range(M):
        start = step * m
        X[m, :] = fft(new_x[start : start + N] * win)
    return X


if __name__ == "__main__":

    data = []
    with open("data.csv","r") as f:
         reader = csv.reader(f)
         for row in reader:
          data.append(row[0])
    fftLen = 60 
    win = hamming(fftLen) 
    step = fftLen//4
    fdata = [float(s) for s in data]



    ### STFT
    spectrogram = stft(fdata, win, step)

    ### Plot
    fig = pl.figure()
    fig.add_subplot(311)
    pl.plot(fdata)
    pl.xlim([0, len(fdata)])
    pl.title("Input signal", fontsize = 20)
    fig.add_subplot(313)
    pl.imshow(abs(spectrogram[:, : fftLen // 2 + 1].T), aspect = "auto", origin = "lower")
    pl.title("Spectrogram", fontsize = 20)
    pl.show()
    print(spectrogram) #デバッグ用

またデータは600点のサンプリング周波数1Hzで10分間記録したものです。
最初の部分だけ写真を載せておきます。
画像の説明をここに入力
またspectrogramのprint結果は
画像の説明をここに入力
このようになっています。助言頂けたら幸いです。よろしくお願いいたします。