私は現在、手動で計算されたフーリエベクトルが正しいかどうかを確認するのに役立つ小さなツールを書いています。今度は、omega = exp(2*pi*i/n)
で指定されたn番目のUnityのルートが必要です。誰かがこのomega
をC++でcomplex
として表現する方法を私に説明できますか?離散フーリエ変換のためのC++での複素数の表現
1
A
答えて
4
exp(2πi/n) = cos(2π/n) + i sin(2π/n)
そして、それは簡単です:
complex<double> rootOfUnity(cos(TWOPI/n), sin(TWOPI/n));
(TWOPIを置き換えますあなたのシステム上で利用可能なマクロか、2πの値だけでフィットします)。
2
まあ、回転因子オメガの実部と虚部だけである:
double angle = 2*pi/n;
double real = cos(angle);
double imaj = sin(angle);
complex<double> omega(real, imaj);
2
極座標を用いて複素数返す関数であり:rho
の大きさであり、そしてtheta
はラジアン単位の角度である
#include<complex>
complex polar(const T& rho)
complex polar(const T& rho, const T& theta)
。
この場合、rho
は常に1.0です。
const double pi = 3.141592653589793238462643383279;
double omega = polar(1.0, 2*pi*i/n);
関連する問題
- 1. Matlabの離散フーリエ変換
- 2. 離散フーリエ変換
- 3. データのmatlabの離散フーリエ変換?
- 4. 離散フーリエ変換周波数結合?
- 5. 離散フーリエ変換のシフト定理
- 6. 2次元離散フーリエ変換の複雑さ
- 7. "正しい"答えの複素共役を与える離散フーリエ変換
- 8. Cでの実数入力のための簡単な離散フーリエ変換の作成
- 9. 離散ウェーブレット変換
- 10. Mathematicaを使って離散データを連続的にフーリエ変換する?
- 11. 離散コサイン変換係数除去
- 12. vDSPと離散コサイン変換
- 13. 離散コサイン変換式の不一致
- 14. 連続変数のログの離散
- 15. プロセス/タスクスケジューリングのためのシンプルな離散事象シミュレーションライブラリ(C++)?
- 16. bashの変数に複数の正規表現置換?
- 17. ウェーブレット係数は、2D離散ウェーブレット変換の分解画像のピクセル値です。
- 18. 高速フーリエ変換 - 丸め誤差
- 19. フーリエ変換とフーリエ記述子は、Java
- 20. GSL高速フーリエ変換 - 変換されたガウスの非ゼロ虚数?
- 21. C++正規表現:C#の正規表現は、C++のLinuxへの変換
- 22. Scheme implのIDCT(逆離散コサイン変換)です。 jpegデコーダ
- 23. 離散構造と離散数学の違い
- 24. Simulink:離散信号への連続信号の変換
- 25. クロスフィルタで複数の離散値をフィルタリングする
- 26. FFTによる振動機能のフーリエ積分/フーリエ変換
- 27. オプション価格設定のための高速フーリエ変換の実装
- 28. C#の複数行正規表現
- 29. 複素数演算のためのC++演算子のオーバーロード
- 30. Pythonの短時間フーリエ変換
どのようにpiを計算するのですか? '' 4 * atan(1.0) ''で十分でしょうか? –
ハードコーディングすることも、 'M_PI'を使うこともできます。 – Mysticial
Windows 8でVisual Studio 2010を使用し、Microsoft C++コンパイラを使用する。 '' cmath.h''は '' M_PI''を提供しません! –