はこれが核心ザラザラ質問のビット...改善周波数時間正規化/ヒルベルト転送ランタイム
は私が白くする必要が不均一な応答スペクトルを持つ時系列信号を持っています。私は一定の狭い周波数帯域(〜1/4最も低い周波数のエンドメンバー)を使用して、2つの周波数エンドポイント間で信号を段階的にフィルタリングする周波数時間正規化方法を使用してこのホワイトニングを行います。私はこれらの狭いバンドのそれぞれを特徴付けるエンベロープを見つけ、その周波数成分を正規化します。
、ここでそのスペクトルである:私は、ここで
は生データである...(申し訳ありませんが、Pythonのソリューションである必要があります)すべてはPythonで行われ...これらの正規化された信号を使用して、私の信号を再構築します:問題は、私はこのような多分〜50万信号のためにこれをしなければならないということであり、それはしばらく時間がかかります(〜分:
、ここでは白色化データのスペクトルがあります各)。ほとんどの時間が実際の(複数の)ヒルベルト変換を行うのに費やされています。
私はそれを小さなクラスター上で実行しています。私はヒルベルトがあるループを並列化したくありません。代替のエンベロープルーチン/関数(ヒルベルト以外)、またはループを行わずに狭帯域応答関数全体を計算する代わりの方法を探しています。
もう1つの選択肢は、周波数帯域をフィルタリングする中心周波数に適応させることです。そのため、ルーチンを進めていくにつれて周波数帯域が徐々に大きくなります。ループを通過しなければならない回数が減ります。
任意のすべての提案を歓迎!!!
例コード/データセット: https://github.com/ashtonflinders/FTN_Example
ヒルバートはfftを使用していますので、信号の長さを2 ** nにすると少しスピードアップします。 – HYRY
は最近のpow2から遠すぎますが、それを改善するために少なくとも偶数を保証します。 – AFF