import numpy as np
from scipy.signal import firwin, lfilter, resample
from http://scipy.io.wavfile import write
import pandas as pd
rf = http://pd.read_csv("input.csv", skiprows=1,usecols=[0],header=None).to_numpy().flatten() #input.csvからデータ読み込み
f_lo1 = 1.3e6
fs = 20e6
fs2 = 480e3
N = 100
lpf100k = firwin(N+1, 100e3/(fs2/2)) 
len_rf = len(rf)
t = np.arange(0, len_rf) / fs
lo1I = np.cos(2 * np.pi * f_lo1 * t)
lo1Q = -np.sin(2 * np.pi * f_lo1 * t)
lo1I_480k = resample(rf * lo1I, int(len_rf*fs2/fs))
lo1Q_480k = resample(rf * lo1Q, int(len_rf*fs2/fs))
zero_I = lfilter(lpf100k, 1, lo1I_480k)  # LPF処理
zero_Q = lfilter(lpf100k, 1, lo1Q_480k)  # LPF処理
len_bb=len(zero_I)
phase = np.arctan2(zero_Q, zero_I)
phase = np.unwrap(phase)
freq = (phase[1:] - phase[:-1])
audio = resample(freq, int(len_bb*48e3/fs2))
audio = audio / np.max(np.abs(audio))
write("out_fm.wav", int(48e3), audio)