MATLAB によるフーリエ変換を実行する手順は?
MATLAB でフーリエ変換を行う一般的な手順は次のとおりです。
- 信号の周波数とデータポイントを決定します。
- 信号の時系列を表す時空間ベクトルを作成する。
- 信号のタイムアキシスと実際の信号値に基づいて、信号ベクターを作成します。
- FFT 関数で信号ベクトルをフーリエ変換します。
- fftshift関数を使用して、フーリエ変換結果が周波数領域の中心に対称になるようにシフトします。
- linspace 関数を使用して、周波数ドメインの周波数軸を表す周波数ベクトルを作成します。
- フーリエ変換の結果から振幅スペクトルと位相スペクトルを計算する。
- 信号の時領域波形、周波数領域波形をプロット関数で任意に描画
次に、以下のシンプルなコード例で、手順を説明します。
% 信号参数
Fs = 1000; % 采样频率
T = 1/Fs; % 采样周期
L = 1000; % 采样点数
% 创建时间向量和信号向量
t = (0:L-1)*T; % 时间向量
x = sin(2*pi*50*t) + sin(2*pi*120*t); % 信号向量
% 进行傅里叶变换
X = fft(x); % 傅里叶变换结果
P2 = abs(X/L); % 双边频谱
P1 = P2(1:L/2+1); % 单边频谱
P1(2:end-1) = 2*P1(2:end-1); % 幅度修正
% 创建频率向量
f = Fs*(0:(L/2))/L;
% 绘制时域波形和频域波形
subplot(2,1,1);
plot(t, x);
title('时域波形');
xlabel('时间 (s)');
ylabel('幅度');
subplot(2,1,2);
plot(f, P1);
title('频域波形');
xlabel('频率 (Hz)');
ylabel('幅度');
上記のコードを実行すると、信号の時間領域波形と周波数領域波形が描画されます。