こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

純粋な正弦波信号

y=sin2πft

ただし周波数f=500MHz

をサンプリング周波数2.5GHz,サンプリング数128,256,512,1024の四パターンMATLABでFFTし、パワースペクトルと位相スペクトルを求めました。
結果、パワースペクトルは予想通り500MHzでピーク値をとったのですが、位相スペクトルは各サンプリング数ごとに全く違う値を取りました。

というわけで、
(1)理論上、正弦波の位相スペクトルはどのような値になるのか
(2)なぜサンプリング数ごとに位相スペクトルの結果が大きく変わったのか

この二点をご教授ください。よろしくおねがいします。

投稿日時 - 2012-05-18 01:56:07

QNo.7481759

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

サンプリング周波数と信号周波数の比が小さく、整数倍の関係になっている為に問題が発生しているのだと思われます。

サンプリング周波数が信号周波数よりもずっと高いと問題は少ないでしょう。

或いはその比が数倍程度でしたら、整数倍の関係に無い方がサンプル数の増大につれて位相も次第に正しい値に収斂していくのではないでしょうか。

理論上どうなるかは、理論通りプログラム上でftの周波数でy=sin2πftの関数を発生させ、その5倍の周波数でサンプルしてFFTを求める事しか思いつきません。

このサンプルの関係では、5点毎に1サイクルの信号のサンプリングが繰り返されるので、128,256,512,1024サンプルでは、最後に3,1,2,4サンプルの分が不完全周期分として残り、これが残留位相分として変換されて現れるのではないでしょうか。

(なお質問は数学カテゴリの方が適しています)

投稿日時 - 2012-05-20 16:28:27

あなたにオススメの質問