このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
フーリエ変換は,時間領域信号の周波数およびパワースペクトルの解析を行うためのツールです。
スペクトル解析では,離散型の,等間隔でサンプリングされたデータに含まれる周波数スペクトルを調べます。フーリエ変換は、時間または空間ベースの信号を周波数空間で表すことによって、その周波数成分を明らかにするツールです。以下の表は、信号のプロパティの特徴付けや解釈に使用する一般的な量を示しています。フーリエ変換の詳細については、フーリエ変換を参照してください。
量 | 説明 |
---|---|
x |
サンプルデータ |
n =长度(x) |
サンプル数 |
fs |
サンプル周波数(単位時間または単位空間ごとのサンプル) |
dt = 1 / fs |
サンプルごとの時間または空間のインクリメント |
t = (0: n - 1) / fs |
データの時間範囲または空間範囲 |
y = fft (x) |
データの離散フーリエ変換(DFT) |
abs (y) |
DFTの振幅 |
(abs (y) ^ 2) / n |
DFTのパワー |
fs / n |
周波数分解能 |
f = (0: n - 1) * (fs / n) |
周波数範囲 |
fs / 2 |
ナイキスト周波数(周波数範囲の中間点) |
フーリエ変換では,ランダムノイズによって破損した信号の周波数成分を計算できます。
周波数成分が15赫兹と40 Hzの信号を作成し,ランダムなガウスノイズを投入します。
rng (“默认”) fs = 100;%采样频率(Hz)t = 0:1 / fs: 10 - 1 / f;% 10秒跨度时间向量x = (1.3) * sin(2 *π* 15 * t)...% 15hz分量+ (1.7) * sin(2 *π* 40 * (2))...% 40hz分量+ 2.5 * randn(大小(t));%高斯噪声;
信号のフーリエ変換により,周波数成分が特定されます。MATLAB® では、高速フーリエ変換アルゴリズムを使用して関数fft
によりフーリエ変換が計算されます。fft
を使用して,信号の離散フーリエ変換を計算します。
y = fft (x);
パワースペクトルを,周波数の関数としてプロットします。時間ベースの空間では信号の周波数成分がノイズによって隠されますが,フーリエ変換により,パワーのスパイクとして明示されます。
n =长度(x);%样本数f = (0: n - 1) * (fs / n);%频率范围功率= abs (y)。^ 2 / n;DFT的%功率情节(f、电力)包含(“频率”) ylabel (“权力”)
多くのアプリケーションでは,周波数0を中央にしてパワースペクトルを表示したほうが,信号の周期性をよく表現できて便利です。関数fftshift
を使用してy
で循環シフトを実行し,0を中央にしたパワーをプロットします。
y0 = fftshift (y);y值f0 = (- n / 2: n / 2 - 1) * (fs / n);0中心频率范围power0 = abs (y0)。^ 2 / n;% 0-centered权力情节(f0 power0)包含(“频率”) ylabel (“权力”)
フーリエ変換を使用して,オーディオデータの周波数スペクトルを解析できます。
ファイルbluewhale.au
には,カリフォルニア沿岸沖で水中マイクによって記録された太平洋のシロナガスクジラの鳴き声のオーディオデータが収録されています。このファイルは,康奈尔大学生物声学研究项目で保管されている動物の鳴き声の収集から入手したものです。
シロナガスクジラの鳴き声は非常に低いため,人間はほとんど聞き取れません。データの時間スケールは,音程を上げて鳴き声がよりはっきりと聞こえるように10倍に圧縮されています。オーディオデータを読み取ってプロットします。コマンド声音(x, fs)
を使用してオーディオを聴くことができます。
whaleFile =“bluewhale.au”;[x, fs] = audioread (whaleFile);情节(x)包含(的样本数量) ylabel (“振幅”)
最初の音声は“震え音”で,その後に”うめき声“が3回続きます。この例では1回のうめき声を解析します。最初のうめき声が概ね含まれるように新しいデータを指定し,10倍にスピードアップすることを考慮して時間データを修正します。切り取った信号を時間の関数としてプロットします。
呻吟= x (2.45 e4:3.10e4);t = 10 * (0:1 / fs:((呻吟)1)长度/ fs);情节(t,呻吟)包含(的时间(秒)) ylabel (“振幅”) xlim ([0 t(结束)))
データのフーリエ変換により,オーディオ信号の周波数成分が特定されます。fft
を使って大量のデータを処理するアプリケーションでは,サンプルの数が2のべき乗になるように入力のサイズを変更するのが一般的です。これにより,特にサンプルサイズに大きな素因数が含まれている場合に,変換の計算が大幅に速くなります。2のべき乗である新しい信号長n
を指定し,関数fft
を使用して信号の離散フーリエ変換を計算します。fft
では,サンプルサイズを拡大するために,元のデータにゼロが自動的に付加されます。
m =长度(呻吟);原始样品长度%n = pow2 (nextpow2 (m));%变换长度y = fft(呻吟,n);信号DFT %
スピードアップの係数に応じて周波数範囲を調整し,信号のパワースペクトルを計算してプロットします。プロットは,うめき声が17赫兹前後の基本周波数と,2番目の調波が強い高調波群から構成されていることを示しています。
f = (0: n - 1) * (fs / n) / 10;功率= abs (y)。^ 2 / n;情节(f(1:地板(n / 2))、电力(1:地板(n / 2)))包含(“频率”) ylabel (“权力”)
fft
|fft2
|fftn
|fftshift
|传输线
|nextpow2