- ベストアンサー
Matlabで群遅延特性
Matlabで、 [gd,f] = grpdelay(b,a,n,fs) と入力すれば群遅延特性が出ますが、 gdの単位をサンプルから、時間に変換するには、 単純にgd/fsでいいのでしょうか。 また、 [h,f] = freqz(b,a,n,fs) の出力から群遅延特性の定義どおり、 dθ(ω)/dω で群遅延を出すには、どのようなプログラムを組めばいいのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>単純にgd/fsでいいのでしょうか。 いいと思います。 >どのようなプログラムを組めばいいのでしょうか。 単純に1次近似すれば、 dθ(ω)/dω は diff(unwrap(angle(h))) ./ diff(2*pi*f) で計算できます。 群遅延はこれのマイナスです。
お礼
早速の回答ありがとうございます。 diff(unwrap(angle(h))) ./ diff(2*pi*f) で計算してみたところ、 grpdelay(b,a,n,fs) を使った場合の値と確かに一致しました。 解決しました。ありがとうございました。