matlab對函式進行FFT變換
阿新 • • 發佈:2018-12-12
參考例程:
clear all close all % 構建原始訊號 N = 100; %原始訊號長度 Fs = 80; %取樣頻率HZ 取樣頻率要至少大於原始訊號頻率 dt = 1/Fs; %取樣間隔S t = [0:N-1]*dt; %時間序列 f1 = 40; %原始訊號頻率Hz f2 = 2; y = cos(2*pi*f1*t)+cos(2*pi*f2*t); subplot(2,3,1),plot(t,y); xlabel('時間/s'),ylabel('幅值/mv'),title('原始訊號(長度100)');
% FFT分析 FN = N; % 執行100點FFT FY = fft(y, FN)/FN; % 共軛複數,具有對稱性 f0 = 1/(dt*FN); %基頻 f = [0:ceil((FN-1)/2)]*f0; %頻率序列 A = abs(FY); %幅值序列 subplot(2,3,2),stem(f, 2*A(1:ceil((FN-1)/2)+1)),xlabel('頻率/Hz'); %繪製頻譜 % axis([0 0.5 0 1.2]); %調整座標範圍
fy = fft(y,FN); mag = abs(fy); %幅值序列 n=0:N-1; Ff = n*f0; %頻率序列 subplot(2,3,3),plot(Ff,mag);