問題タブ [continuous-fourier]
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にはフーリエ変換関数しかないため、その級数または変換かどうかはわかりませんが、信号は周期的であるため、参照は次のように述べています対応するフーリエはフーリエ級数と呼ばれる必要があります)。
これは、時間領域信号、振幅スペクトル、および位相スペクトルに対して生成されたプロットです。
リンク: fs = 330hz
私の問題は、サンプリング周波数 (現在 330 Hz に等しい fs) を別の値に変更すると、振幅スペクトルと位相スペクトルのプロットが変化することです。
サンプリング周波数が 400 Hz に等しい場合の振幅スペクトルと位相スペクトルのプロットを次に示します。
リンク: fs = 400 Hz
なぜこれが起こるのか説明できますか?また、サンプリング周波数が与えられたときの振幅スペクトルと位相スペクトルの一定のプロットを取得するにはどうすればよいでしょうか?
transform - 信号のフーリエ変換が周期的なのはいつですか?
また、周期信号の逆フーリエ変換も周期的ですか?
python - python で DFT を使った正弦波による近似。どうしたの?
pythonで時系列をsin波で近似できるプログラムを書いています。プログラムは、DFT を使用して正弦波を見つけ、その後、振幅が最大の正弦波を選択します。
これが私のコードです:
プログラムでは、2 つの正弦波から時系列を作成しました。
そして、私のプログラムは正弦波の間違ったパラメータを見つけました:
プログラムは次の 2 つの正弦波を見つけました: [(amp=0.9998029885151699,frq=0.10053096491487339,phase=1.1411803525843616), (amp=0.24800925225626422,frq=0.402123859659493524,phase=50)183]4
私の問題は、波のパラメーターのスケーリングが間違っていることだと思いますが、よくわかりません。プログラムがスケーリングを行う場所は 2 つあります。最初の場所は波の作成です:
2 番目は x 軸のスケーリングです。
しかし、私の推測は間違っているかもしれません。スケーリングを何度も変更しようとしましたが、問題は解決しませんでした。
コードのどこが間違っている可能性がありますか?
r - フーリエ補間のコンテキストで関数の「伝統的な」表記を返す
数値解析では、学生は、与えられた関数 f(x) がそのフーリエ補間 tN(x) を見つけ、補間誤差を計算するコードを R に実装する義務があります。
またはさまざまな異なる $N$ 私は最初に、次の式に従って d 係数を計算しようとしました。
M は DFT 行列を表し、y は一連の等距離関数値を表し、
私の目標は、次のように説明できる合計を考え出すことでした。
これは、後で加算表記のようなものに後で統合する方が簡単です。
変換関数の主な目的は、当初、関数を返すことでした。つまり、数式を返すことでした。これを使用して、フーリエ補間関数を宣言することができます。問題は、私のかなり限られた知識に基づくと、まだ合計がネストされている関数を統合できないことです (そのため、コード内の対応する行にコメントを付けました)。絶対的な絶望から、その後、各被加数をテキストの形式で貼り付けようとしましたが、それらを式として再度解析するだけでした。したがって、残っている主な問題は次のとおりです。関数として使用し、後でそれらを統合できるように数式を返すにはどうすればよいでしょうか? 誤解や混乱、および一見素人っぽいコーディングで申し訳ありません。前もって感謝します!
matlab - FFT ガウス VS フーリエ変換 (手動) ガウス
Fortran プログラムでは、ユーザーが選択できる特定の関数のフーリエ変換を使用しています。しかし、ユーザーはすでに関数のフーリエ変換を作成する必要があります。
そのため、ユーザーが元の機能を提供するだけでよい方法でプログラムを拡張したいと考えました。この場合はガウス関数です。これを行うには、FFT を実行する必要があります。
私たちが持っている場合:
フーリエ変換は次の式で与えられます。
h(x) の fft を実行すると、fth(k) が得られるはずです。これが私のコードです:
しかし、なぜ私はまったく違うものを手に入れるのでしょうか?