• ベストアンサー

振幅スペクトル グラフ

振幅スペクトルが X(Ω)={1, |Ω|<ΩB,0, |Ω|>=ΩB である連続信号x(t)を考える.連続時間信号に含まれる最大周波数が10kHzの時,(a)32kHz,(b)16kHzでサンプリングした際のグラフの描き方を教えてもらえませんか?範囲は-50kHz~50kHzです.ΩBは原信号の最大角周波数です.周波数領域での位相がゼロである信号を仮定する.

質問者が選んだベストアンサー

  • ベストアンサー
  • DCI4
  • ベストアンサー率29% (448/1540)
回答No.1

サンプリングした際のグラフの描き方 振幅スペクトルが X(Ω)={1, |Ω|<ΩB,0, |Ω|>=ΩB  ↑不明 Ω は時計 wwww Ω じゃなくて  ω 角周波数では? ω=2πf ★回答 グラフの描き方 振幅スペクトル グラフ 一般的やり方の 一例ヒント ある連続信号 x(t)の離散信号の計算 ●連続系の式は フーリエ変換で求める ★時間関数  変換  周波数関数 x(t)  ⇔  X(ω) ●離散系の式は 離散フーリエ変換で求める ※時間連続系の式にグラフ描画点を代入して計算しても同じ 周波数が連続グラフで出るだけ ★離散時間関数  変換  離散周波数関数 たとえば もとめた離散系の式を以下とすれば 時間域時系列     複素周波数列 x(n×Ts)  ⇔  X((n×ωs/225)) n;グラフ描画点 n= 1  2   3・・・・・256 上記は 1~256 個の点をωsまで描画する例 ω; グラフ描画点 ω= ωs/255  2ωs/256・・・・・nωs/256 Ts;サンプリング周期 サンプリング周波数の逆数 1/fs=Ts ωs; ωs=1/Ts×2π ω=2πf S=jω exp(jωT)=exp(S×T)=Z  ←実際にはZ=exp(jωT)の関数式で求まるので ωにグラフ描画点を代入にて計算するだけ ざっくり言えば Zはz変換のZと一致する式となる Z変換は 時間数列式⇔複素周波数連続の式 振幅スペクトルは絶対値 |X((n×ωs/225)) | を描画すればいいだけ n;グラフ描画点 n= 1  2   3・・・・・256 上記例 グラフはfs×1/2 までを繰り返す fs までとなる      グラフはωs×1/2 までを繰り返す ωs までとなる X(ω)の位相は  atan(虚数部分X(ω)/実数部分X(ω))) です ω; グラフ描画点 ω=  ωs/256  2ωs/256・・・・・nωs/256 ※後は計算範囲(時間差サンプル数と描画周波数)を決め お好みの範囲で描画すればいいだけ ・・おしまい・・・・・・・ 参考 振幅スペクトルと位相スペクトルのグラフ作成 http://okwave.jp/qa/q9069692.html

caneo_bote
質問者

お礼

詳しく答えていただきありがとうございます!

caneo_bote
質問者

補足

詳しく答えていただきありがとうございます!

関連するQ&A

  • フーリエスペクトルの振幅について

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの 振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(k=0~N-1) f(k)exp(-2πkni/N) を考えています。 また、離散フーリエ変換して得られるスペクトルは √(Re^2+Im^2) で計算します。 離散フーリエ変換を適用する関数を、 振幅1の直流、及び振幅1で周波数5[Hz]の正弦波とします。 (この2つの信号は別々の信号で合成されていません。) サンプリング周波数を20[Hz]とした場合、 サンプリングして得られるデータ列はそれぞれ、 直流: 「1, 1, 1, 1」 正弦波: 「0, 1, 0, -1」 となると想定されます。 (正弦波をサンプリングする場合は位相が関わってきますが、 今回は気にしないで下さい。) このデータ列に対して上記の離散フーリエ変換を適用した場合、 得られるフーリエスペクトルの振幅値はそれぞれ、 直流: 「4」(直流のフーリエスペクトルの振幅値値) 正弦波: 「2」(5[Hz]のフーリエスペクトルの振幅値) となります。 (データ点数は上の通り4点) ここで質問なのですが、 離散フーリエ変換して得られるスペクトルの振幅値から 元の関数の振幅値を求める場合、 フーリエスペクトルをサンプリングの総データ点数で割ることは 数学的に納得できます。 しかしこの例の場合、フーリエスペクトルを総データ点数で割ると、 直流: 「4 -> 1」 正弦波: 「2 -> 0.5」 となってしまい、直流は正しいのですが、 正弦波の元の振幅値を正確に求めることは出来ません。 フーリエスペクトルの振幅値から正弦波の振幅値を正しく求めるには、 「フーリエスペクトルの振幅値*2/データ点数」 としてやらなければいけません。 上記のことに関して、 なぜこのようになるのかを(2をかける理由を)教えて頂けないでしょうか。

  • スペクトルのグラフ

    FFTをしてスペクトルを求めてグラフにしたいと思います。 理論が良く分かっておらず、私が考えたことが正しいのかどうか自信がないので、教えてください。 (1) X軸を周波数とするグラフの座標の数は、スペクトルのライン数になる。 スペクトルのライン数 = FFTの件数 ÷ 2.56 これが正しいと、X軸の最大値が周波数レンジになるはずですが…。

  • MATLABによるFFTと位相スペクトルについて

    純粋な正弦波信号 y=sin2πft ただし周波数f=500MHz をサンプリング周波数2.5GHz,サンプリング数128,256,512,1024の四パターンMATLABでFFTし、パワースペクトルと位相スペクトルを求めました。 結果、パワースペクトルは予想通り500MHzでピーク値をとったのですが、位相スペクトルは各サンプリング数ごとに全く違う値を取りました。 というわけで、 (1)理論上、正弦波の位相スペクトルはどのような値になるのか (2)なぜサンプリング数ごとに位相スペクトルの結果が大きく変わったのか この二点をご教授ください。よろしくおねがいします。

  • スペクトル

    これらが変化するのか,変化しないのか教えてください. 1.信号を整数倍した時の振幅スペクトル,位相スペクトル. 2.異なる2信号を足した時の振幅スペクトル,位相スペクトル. 3.信号を時間軸方向に移動したときの振幅スペクトル,位相スペクトル.

  • ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値に

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(k=0~N-1) f(k)exp(-2πkni/N) を考えています。 また、離散フーリエ変換して得られるスペクトルは √(Re^2+Im^2) で計算します。 離散フーリエ変換を適用する関数を、 振幅1の直流、及び振幅1で周波数5[Hz]の正弦波とします。 (この2つの信号は別々の信号で合成されていません。) サンプリング周波数を20[Hz]とした場合、サンプリングして得られるデータ列はそれぞれ、 直流: 「1, 1, 1, 1」 正弦波: 「0, 1, 0, -1」 となると想定されます。 (正弦波をサンプリングする場合は位相が関わってきますが、今回は気にしないで下さい。) このデータ列に対して上記の離散フーリエ変換を適用した場合、 得られるフーリエスペクトルの振幅値はそれぞれ、 直流: 「4」(直流のフーリエスペクトルの振幅値値) 正弦波: 「2」(5[Hz]のフーリエスペクトルの振幅値) となります。 (データ点数は上の通り4点) ここで質問なのですが、 離散フーリエ変換して得られるスペクトルの振幅値から元の関数の振幅値を求める場合、 フーリエスペクトルをサンプリングの総データ点数で割ることは数学的に納得できます。 しかしこの例の場合、フーリエスペクトルを総データ点数で割ると、 直流: 「4 -> 1」 正弦波: 「2 -> 0.5」 となってしまい、直流は正しいのですが、正弦波の元の振幅値を正確に求めることは出来ません。 この例の場合、フーリエスペクトルの振幅値から正弦波の振幅値を正しく求めるには、 「フーリエスペクトルの振幅値*2/データ点数」 としてやらなければいけません。 上記のことに関して、なぜこのようになるのかを(2をかける理由を)教えて頂けないでしょうか。 当方、数学についてはあまり詳しくないため、簡単に説明して頂けると幸いです。

  • 振幅スペクトル、位相スペクトル→原信号の導出法

    matlabにてある信号をfftした結果から振幅スペクトル、位相スペクトルをそれぞれ求めたのですが、その2つから元の信号を得る方法を教えてください。

  • 振幅を求めるのに最適な窓関数

    サンプリング周期1usで収集した10万点(0.1秒間連続測定)のデータがあります。 これは正弦波信号+ノイズというもので、正弦波の周波数は約100kHzです。 この正弦波の時間的なゆらぎを求めたいので、例えば5万点づつにデータを分割し、その5万点にDFTを行ってピークとなる振幅を求める方法を考えました。 この場合5万点のデータ数だと周波数分解能は100Hzとなるため、もし本来の周波数が例えば100.03kHzだとするとその振幅情報は本来の振幅に比べてかなりずれてしまいます。 これは解析対象区間に含まれる正弦波の数が整数個でないことに起因するのですが、このような場合窓関数を使うように言われていますが、振幅の誤差が1%以下とするためにはどのような窓関数を使ったらよいでしょうか? または、別の方法で振幅を1%以下の精度で求められるという情報でも助かります。

  • スペクトルをグラフに表示したい

    スペクトルデータをグラフに表示するプログラムを作ることになりました。 言語はVBです。 データは機械から電圧信号を取り込みます。 と言っても、実際は機械に付属しているソフトのAPIで取り込むのですが。 APIは、例えば1Vの電圧が機械に向かって流れたら、1Vが返ってくるような仕様になっています。 グラフはリアルタイムに表示する必要があります。 X軸が周波数、Y軸がスペクトルです。 スペクトルを求めるにはFFTをする必要があるので、取り込んだ電圧をそのままグラフに表示し続けるような単純な仕組みにはならないと思いますが、実際どう作ったらよいかわかりません。 私がイメージしている仕組みは以下のとおりなのですが、正しいでしょうか? (1) 電圧信号をフレームサイズ(FFTする件数)分取り込む。 (2) (1)のデータをFFTする (3) (2)の結果からスペクトルデータを求める (4) (3)のデータをグラフに表示する。 グラフの点数(座標の数)は、フレームサイズの1/2。 X軸の座標は周波数分解能ごとにプロット。 (1)~(4)を繰り返す。 (1)~(4)の処理にも少なからず時間がかかるのですが、はたしてリアルタイム表示は可能なんでしょうか? ちなみに、プログラムにはフレームサイズ(FFTする件数)と周波数レンジを設定できる機能も実装します。

  • スペクトルの減算

    フリーソフト「ボーカルリデューサー」の原理を勉強しています。 サイト等で調べると、「周波数成分を分析し、両チャンネルの振幅スペクトル・位相スペクトルを比較して ベクトル減算したのちに逆変換してステレオ音源を得る」となっています。 スペクトルの求め方やフーリエ変換・逆変換は理解したのですが、 「ベクトル減算」の部分がよくわかりません。 周波数と各スペクトルの値をベクトル成分としてベクトル減算を行う、という解釈で良いのでしょうか。 また、位相スペクトルと振幅スペクトルは別々に比較・演算を行うのでしょうか。 ご教示願います。

  • 振幅変調で周波数を変えると

    振幅変調で周波数を変えると 振幅変調で周波数を変えると振幅が変化しますが何故振幅が変わるのでしょうか? 振幅はVc(搬送波)及びVs(信号波)で最大振幅が決まっているのではないのでしょうか? それならば周波数を変えても最大振幅は変化しないと思うのですが・・・。