Example #1
0
 /// <summary>
 /// フィルタのインパルス応答を計算する。
 /// </summary>
 /// <param name="f">フィルタ</param>
 /// <param name="len">インパルス応答の長さ</param>
 /// <returns>インパルス応答</returns>
 public static double[] GetImpulseResponse(Filter.IFilter f, int len)
 {
     double[] x = new double[len];
     x[0] = f.GetValue(1);
     for (int i = 1; i < len; ++i)
     {
         x[i] = f.GetValue(0);
     }
     return(x);
 }
Example #2
0
 /// <summary>
 /// フィルタの周波数応答を計算する。
 /// </summary>
 /// <param name="f">フィルタ</param>
 /// <param name="len">インパルス応答の長さ</param>
 /// <returns>周波数応答</returns>
 public static SpectrumAnalysis.Spectrum GetFrequencyResponse(Filter.IFilter f, int len)
 {
     len = SoundLibrary.BitOperation.FloorPower2(len);
     double[] x = GetImpulseResponse(f, len);
     return(SpectrumAnalysis.Spectrum.FromTimeSequence(x));
 }