13

私は特に、信号処理アルゴリズムをどちらか一方、または両方の組み合わせで作成することを検討しています。

パフォーマンスは大きな問題ではありません。意図を明確に表現することがより重要です。

次の「ブロック」を実装して構成することを検討しています。

  • フィルタ(FIRとIIRの両方)
  • 位相検出器
  • インテグレーター
  • ミキサー
  • 関数発生器
  • PLL(上記をビルディングブロックとして使用)

Rxは「Linq-to-streams」と見なすことができ、TPLは並行性を抽象化したものであることがわかりました。また、Rxは内部でTPLを使用して非同期ビットを管理し、TPLデータフローはTPLに構成可能性を追加します。

したがって、両方とも非同期であり、両方とも構成可能であり、両方とも非常に高レベルです(Rx moreso)。一般的に、そして上記の信号処理項目の両方で、それぞれをどこで使用する必要がありますか?

4

1 に答える 1

7

処理するプリミティブの種類によって異なります。増幅された型を使用してデータをプッシュする場合、RxとTPLははるかに豊富ですが、個々のサンプル(など)を処理する場合はIObservable<byte>ISourceBlock<float>作業するのは面倒です。

最近、関数発生器、FFT、パワースペクトル量子化器などを実装したので、Rxから始めました(これは、TPLが優れている同時実行/並列処理の場合ではありませんでした)が、 Rxモデル-私は最終的にに落ち着きましたSystem.Stream

それは私にとってうまくいき、驚くほど構成可能でした。ただし、パフォーマンスとGCの回避が私のリストのトップだったので、どちらかを気にしないのであれば、Rxをお勧めします。リアクティブコンビネータを使用すると、非常に優れた機能を実行できます。

于 2012-03-01T23:22:30.033 に答える