pro thm_fft_freq_bins, rate=rate, nbins=nbins, cent_freq=cent_freq
fft_16k_64bin_start_freq = [ $
-4., 4., 12., 20., 28., 36., 44., 52., $
60., 68., 76., 84., 92., 100., 108., 116., $
124., 140., 156., 172., 188., 204., 220., 236., $
252., 284., 316., 348., 380., 412., 444., 476., $
508., 572., 636., 700., 764., 828., 892., 956., $
1020., 1148., 1276., 1404., 1532., 1660., 1788., 1916., $
2044., 2300., 2556., 2812., 3068., 3324., 3580., 3836., $
4092., 4604., 5116., 5628., 6140., 6652., 7164., 7676. ]
fft_16k_64bin_df = fft_16k_64bin_start_freq[ 1:*] - fft_16k_64bin_start_freq[ 0:*]
fft_16k_64bin_df = [ fft_16k_64bin_df, fft_16k_64bin_df[ 62L]]
fft_16k_64bin_cent_freq = fft_16k_64bin_start_freq + 0.5*fft_16k_64bin_df
fft_8k_64bin_start_freq = [ $
-4., 4., 12., 20., 28., 36., 44., 52., $
60., 68., 76., 84., 92., 100., 108., 116., $
124., 132., 140., 148., 156., 164., 172., 180., $
188., 196., 204., 212., 220., 228., 236., 244., $
252., 284., 316., 348., 380., 412., 444., 476., $
508., 572., 636., 700., 764., 828., 892., 956., $
1020., 1148., 1276., 1404., 1532., 1660., 1788., 1916., $
2044., 2300., 2556., 2812., 3068., 3324., 3580., 3836. ]
fft_8k_64bin_df = fft_8k_64bin_start_freq[ 1:*] - fft_8k_64bin_start_freq[ 0:*]
fft_8k_64bin_df = [ fft_8k_64bin_df, fft_8k_64bin_df[ 62L]]
fft_8k_64bin_cent_freq = fft_8k_64bin_start_freq + 0.5*fft_8k_64bin_df
fft_16k_32bin_start_freq = [ -4., 12., 28., 44., $
60., 76., 92., 108., $
124., 156., 188., 220., $
252., 316., 380., 444., $
508., 636., 764., 892., $
1020., 1276., 1532., 1788., $
2044., 2556., 3068., 3580., $
4092., 5116., 6140., 7164. ]
fft_16k_32bin_df = fft_16k_32bin_start_freq[ 1:*] - fft_16k_32bin_start_freq[ 0:*]
fft_16k_32bin_df = [ fft_16k_32bin_df, fft_16k_32bin_df[ 30L]]
fft_16k_32bin_cent_freq = fft_16k_32bin_start_freq + 0.5*fft_16k_32bin_df
fft_8k_32bin_start_freq = [ -4., 12., 28., 44., $
60., 76., 92., 108., $
124., 140., 156., 172., $
188., 204., 220., 236., $
252., 316., 380., 444., $
508., 636., 764., 892., $
1020., 1276., 1532., 1788., $
2044., 2556., 3068., 3580. ]
fft_8k_32bin_df = fft_8k_32bin_start_freq[ 1:*] - fft_8k_32bin_start_freq[ 0:*]
fft_8k_32bin_df = [ fft_8k_32bin_df, fft_8k_32bin_df[ 30L]]
fft_8k_32bin_cent_freq = fft_8k_32bin_start_freq + 0.5*fft_8k_32bin_df
fft_16k_16bin_start_freq = [ -4., 28., $
60., 92., $
124., 188., $
252., 380., $
508., 764., $
1020., 1532., $
2044., 3068., $
4092., 6140. ]
fft_16k_16bin_df = fft_16k_16bin_start_freq[ 1:*] - fft_16k_16bin_start_freq[ 0:*]
fft_16k_16bin_df = [ fft_16k_16bin_df, fft_16k_16bin_df[ 14L]]
fft_16k_16bin_cent_freq = fft_16k_16bin_start_freq + 0.5*fft_16k_16bin_df
fft_8k_16bin_start_freq = [ -4., 28., $
60., 92., $
124., 156., $
188., 220., $
252., 380., $
508., 764., $
1020., 1532., $
2044., 3068. ]
fft_8k_16bin_df = fft_8k_16bin_start_freq[ 1:*] - fft_8k_16bin_start_freq[ 0:*]
fft_8k_16bin_df = [ fft_8k_16bin_df, fft_8k_16bin_df[ 14L]]
fft_8k_16bin_cent_freq = fft_8k_16bin_start_freq + 0.5*fft_8k_16bin_df
fft_cent_freq = { $
fft_16k:{ nf16:fft_16k_16bin_cent_freq, nf32:fft_16k_32bin_cent_freq, nf64:fft_16k_64bin_cent_freq}, $
fft_8k:{ nf16:fft_8k_16bin_cent_freq, nf32:fft_8k_32bin_cent_freq, nf64:fft_8k_64bin_cent_freq} }
case strupcase( rate) of
'16K': r = 0
'8K': r = 1
else: begin
dprint, string( rate, format='("invalid rate string,",A)')
cent_freq = !values.f_nan
return
end
endcase
case nbins of
16: b = 0
32: b = 1
64: b = 2
else: begin
dprint, string( nbins, format='("invalid nbins value,",I)')
cent_freq = !values.f_nan
return
end
endcase
cent_freq = fft_cent_freq.(r).(b)
return
end