問題タブ [ifft]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - Matlab: 位相行列を変更した後のフーリエ変換
私はいくつかの信号プロジェクトに取り組んでおり、信号にフーリエ変換を適用し、振幅と位相を取得してから、位相行列を別の位相に変更し、振幅と位相から信号を取得するだけです。
私のコードは、位相と大きさからフーリエ変換を取得することに基づいています - Matlab
出力信号x_iは大きく異なります。
ここでも同様の問題が見つかりました:フーリエ変換:マグ+位相を取得し、それらを使用して元の信号をプロットしますが、このリンクで、@Davidにphasenewのケースをどのように解決する必要があるかを尋ねる答えにコメントしました。彼は私にこれを新しい質問としてするように提案したので、ここにあります。
元の大きさと新しい位相から逆フーリエ変換を使用して信号を生成するのを手伝ってください。前もって感謝します。
PS phasenewでは、位相を π/2 または -π/2だけシフトします。
matlab - 複雑さの低い FFT/IFFT で 2 つの OFDM ユーザーをシミュレートする方法は?
私は 2 人のユーザーを持っています。そのうちの 1 つは周波数 (0-B] で送信し、もう 1 つは (B-2B] で送信します。どちらも OFDM を使用しており、それぞれに Nc 個のサブキャリアがあります。Matlab を使用して受信信号をシミュレートしたかったのです。
実装する 1 つの方法は、ユーザー 1 が 2*Nc サブキャリアを持ち、最初の Nc サブキャリアのみを使用し、2 番目のユーザーも 2Nc サブキャリアを持ち、ise サブキャリアのみを使用すると言うことです [Nc+1-2Nc]。この場合、2Nc の FFT/IFFT サイズを使用する必要があります。
受信信号は Y = ifft([d_1 0*d2],2Nc)+ifft([0*d_1 d_2],2Nc) となります。ここで、d_1 と d_2 は 1 番目と 2 番目のユーザーのデータです。受信側で d=fft(Y, 2Nc) を計算でき、前半は user1 用、後半は user2 用です。
しかし、Nc の FFT サイズを使用したい、つまり ifft(d_1,Nc) と ifft(d_2,Nc) を計算したい。これら 2 つの ifft を直接追加すると、IFFT の結果が 2 つのデータが異なるサブキャリアを占有していることを示さないため、誤った結果が得られます。私の質問は、この場合、2 番目の UE の ifft の結果をどのように変更 (おそらくアップコンバート) する必要があるかということです。
さらに、受信信号を構築した後、送信データを取得するにはどのような操作が必要ですか? fft(y,2Nc) を再度使用する必要がありますか?
あなたの助けは非常に高く評価されています。
よろしく、
matlab - Matlab でのフィルターの逆 FT
Matlab で単純なフィルターの逆フーリエ変換を見つけようとしています。最初のケース (sinc フィルター/「ブリック ウォール」) では、関数を使用してifft
、t = 0 を中心とする sinc である時間領域関数を見つけます。
ここで、単純なチェビシェフ フィルターの時間領域関数を見つけたいと思います。しかし、何らかの理由で、以下のコードでは、時間軸が正しくないインパルス応答が得られるようです。t = 0 を中心とする同様の見た目の sinc 関数を期待すべきではありませんか?
matlab - FFT を実行し、Amp、Freq、Phase 情報を取得した後にオーディオ ファイルを作成する
以下のコードを使用して最初に FFT を実行し、次に FFT の最初の 10 個の大きな振幅と、対応する周波数および位相情報を取得します。
コードの最後で、元の信号を可能な限り再構築しようとしていますが、実装のために ifft を使用していません。
最後に、.wav を書き込もうとしていますが、「出力引数が多すぎます」。常にエラー。あなたのフィードバックについて教えてください。
matlab - matlab / octave で fft と ifft を使用して信号の周波数を増減する
fft と ifft を使用して信号の周波数を増減しようとしています。最初のプロットは1hz で、2 番目のプロットは 2hz で、fft と ifft の値を変更して取得しようとしています。
周波数ドメインと時間ドメインの間を移動できますが、fft / ifft を使用して信号の周波数を増減するにはどうすればよいですか?
注:はい、方程式の周波数値を変更することで周波数を変更できることは知っていますが、それをテスト信号として使用しているだけです。使用する信号には、インポートされる方程式がありません。
2hz のプロットは、fft と ifft の値を調整して取得しようとしているものです
以下のコード例:
Ps: matlab で動作するオクターブ 3.8.1 を使用しています
c - FFT アルゴリズムの C コードの説明
http://www.tech.dmu.ac.uk/~eg/tensiometer/fft/fft.c
http://www.tech.dmu.ac.uk/~eg/tensiometer/fft/fft_test.c
上記のリンクで、時間ドメインを周波数ドメインに、またはその逆に変換するための FFT アルゴリズムの適切な C コードを見つけました。しかし、このコードがどのように機能するかのフローチャートまたは段階的なプロセスを知りたいと思っていました。FFT に間に合うように間引きのバタフライ法でコードを分析しようとしていますが、コードを理解するのが困難です。コードは非常にうまく機能し、正しい結果が得られますが、このコードがどのように機能するかについて誰かが簡単または詳細に説明してくれると非常に役に立ちます。
fft.c コードで使用されている配列とポインターと混同しています。また、コード内の変数オフセットとデルタ平均が何であるかを取得していません。実数項と虚数項の長方形行列は、コードでどのように考慮/使用されますか?? 私を案内してください。
ありがとう、Psbk
numpy - フーリエ変換と負の fft 値を持つ周波数のフィルタリング
周期信号で最も豊富な周波数を探しています。周期信号に対してフーリエ変換を実行し、負の fft 値を持つ周波数をフィルター処理するとどうなるかを理解しようとしています。
つまり、プロット 2 と 3 (下記参照) の軸は何を表しているのでしょうか。fft 変換された信号に対して周波数 (サイクル/秒) をプロットしています。y 軸の負の値は何を意味するのでしょうか。
matlab - Matlab が位相角を複素数で 0 ~ 2pi にラップしないようにする
Matlab で複素数を扱っていますが、その角度に問題があります。
角度のベクトル Ph があります。次に、複素数のベクトル C を次のように作成します。
問題は、対称性が奇数であるため、Ph に負の位相が含まれているため、IFFT を使用して信号を合成するためにさらに使用できることです。この負の位相は、ベクトル C で 0 ~ 2pi にラップされ、奇妙な対称性が失われます。
Matlab が角度をラップしないようにする方法はありますか?
数学的に -30° の位相は 330° の位相と同じであることがわかっているため、そのようなことは不可能かもしれません。しかし、フェーズをラップすると、望ましい奇妙な対称性が破壊されているのではないかと思います。
私の問題を説明する写真を添付します、ありがとう!