一種積分變換,它來源于函數(shù)的傅里葉積分表示。積分 (1) 稱為? 的傅里葉積分。周期函數(shù)在一定條件下可以展成傅里葉級(jí)數(shù),而在(-∞,∞)上定義的非周期函數(shù)?,顯然不能用三角級(jí)數(shù)來表示。但是J.-B.-J.傅里葉建議把?表示成所謂傅里葉積分的方法。
傅里葉變換在物理學(xué)、電子類學(xué)科、數(shù)論、組合數(shù)學(xué)、信號(hào)處理、概率論、統(tǒng)計(jì)學(xué)、密碼學(xué)、聲學(xué)、光學(xué)、海洋學(xué)、結(jié)構(gòu)動(dòng)力學(xué)等領(lǐng)域都有著廣泛的應(yīng)用(例如在信號(hào)處理中,傅里葉變換的典型用途是將信號(hào)分解成幅值譜——顯示與頻率對(duì)應(yīng)的幅值大小)。
傅里葉變換(fft)matlab程序一
Fs = 128; % 采樣頻率
T = 1/Fs; % 采樣時(shí)間
L = 256; % 信號(hào)長度
t = (0:L-1)*T; % 時(shí)間
x = 5 + 7*cos(2*pi*15*t - 30*pi/180) + 3*cos(2*pi*40*t - 90*pi/180); %cos為底原始信號(hào)
y = x + randn(size(t)); %添加噪聲 figure; plot(t,y)
title(‘加噪聲的信號(hào)’)
xlabel(‘時(shí)間(s)’)
N = 2^nextpow2(L); %采樣點(diǎn)數(shù),采樣點(diǎn)數(shù)越大,分辨的頻率越精確,N》=L,超出的部分信號(hào)補(bǔ)為0
Y = fft(y,N)/N*2; %除以N乘以2才是真實(shí)幅值,N越大,幅值精度越高
f = Fs/N*(0:1:N-1); %頻率
A = abs(Y); %幅值
P = angle(Y); %相值
figure;
subplot(211);plot(f(1:N/2),A(1:N/2)); %函數(shù)fft返回值的數(shù)據(jù)結(jié)構(gòu)具有對(duì)稱性,因此我們只取前一半
title(‘幅值頻譜’);
xlabel(‘頻率(Hz)’);
ylabel(‘幅值’);
subplot(212);
plot(f(1:N/2),P(1:N/2));
title(‘相位譜頻’);
xlabel(‘頻率(Hz)’);
ylabel(‘相位’);
傅里葉變換(fft)matlab程序二
tp=0:2048; % 時(shí)域數(shù)據(jù)點(diǎn)數(shù)
N yt=sin(0.08*pi*tp).*exp(-tp/80); % 生成正弦衰減函數(shù)
plot(tp,yt), axis([0,400,-1,1]), % 繪正弦衰減曲線
t=0:800/2048:800; % 頻域點(diǎn)數(shù)Nf
f=0:1.25:1000;
yf=fft(yt); % 快速傅立葉變換
ya=abs(yf(1:801)); % 幅值
yp=angle(yf(1:801))*180/pi; % 相位 y
r=real(yf(1:801)); % 實(shí)部
yi=imag(yf(1:801)); % 虛部
figure subplot(2,2,1)
plot(f,ya),axis([0,200,0,60]) % 繪制幅值曲線
title(‘幅值曲線’)
subplot(2,2,2)
plot(f,yp),axis([0,200,-200,10]) % 繪制相位曲線
title(‘相位曲線’)
subplot(2,2,3)
plot(f,yr),axis([0,200,-40,40]) % 繪制實(shí)部曲線
title(‘實(shí)部曲線’)
subplot(2,2,4)
plot(f,yi),axis([0,200,-60,10]) % 繪制虛部曲線
title(‘虛部曲線’)
結(jié)果
傅里葉變換(fft)matlab程序三
clear all %清除內(nèi)存所有變量
close all %關(guān)閉所有打開的圖形窗口
%% 執(zhí)行FFT點(diǎn)數(shù)與原信號(hào)長度相等(100點(diǎn))
% 構(gòu)建原信號(hào)
N=100; % 信號(hào)長度(變量@@@@@@@)
Fs=1; % 采樣頻率
dt=1/Fs; % 采樣間隔
t=[0:N-1]*dt; % 時(shí)間序列
xn=cos(2*pi*0.24*[0:99])+cos(2*pi*0.26*[0:99]);
xn=[xn,zeros(1,N-100)]; % 原始信號(hào)的值序列
subplot(3,2,1) % 變量@@@@@@@
plot(t,xn) % 繪出原始信號(hào)
xlabel(‘時(shí)間/s’),title(‘原始信號(hào)(向量長度為100)’) % 變量@@@@@@@
% FFT分析
NN=N; % 執(zhí)行100點(diǎn)FFT
XN=fft(xn,NN)/NN; % 共軛復(fù)數(shù),具有對(duì)稱性
f0=1/(dt*NN); % 基頻
f=[0:ceil((NN-1)/2)]*f0; % 頻率序列
A=abs(XN); % 幅值序列
subplot(3,2,2),stem(f,2*A(1:ceil((NN-1)/2)+1)),xlabel(‘頻率/Hz’) % 繪制頻譜(變量@@@@@@@)
axis([0 0.5 0 1.2]) % 調(diào)整坐標(biāo)范圍
title(‘執(zhí)行點(diǎn)數(shù)等于信號(hào)長度(單邊譜100執(zhí)行點(diǎn))’); % 變量@@@@@@@
%% 執(zhí)行FFT點(diǎn)數(shù)大于原信號(hào)長度
% 構(gòu)建原信號(hào)
N=100; % 信號(hào)長度(變量@@@@@@@)
Fs=1; % 采樣頻率
dt=1/Fs; % 采樣間隔
t=[0:N-1]*dt; % 時(shí)間序列
xn=cos(2*pi*0.24*[0:99])+cos(2*pi*0.26*[0:99]);
xn=[xn,zeros(1,N-100)]; % 原始信號(hào)的值序列
subplot(3,2,3) % 變量@@@@@@@
plot(t,xn) % 繪出原始信號(hào)
xlabel(‘時(shí)間/s’),title(‘原始信號(hào)(向量長度為100)’) % 變量@@@@@@@
% FFT分析
NN=120; % 執(zhí)行120點(diǎn)FFT(變量@@@@@@@)
XN=fft(xn,NN)/NN; % 共軛復(fù)數(shù),具有對(duì)稱性
f0=1/(dt*NN); % 基頻
f=[0:ceil((NN-1)/2)]*f0; % 頻率序列
A=abs(XN); % 幅值序列
subplot(3,2,4),stem(f,2*A(1:ceil((NN-1)/2)+1)),xlabel(‘頻率/Hz’) % 繪制頻譜(變量@@@@@@@)
axis([0 0.5 0 1.2]) % 調(diào)整坐標(biāo)范圍
title(‘執(zhí)行點(diǎn)數(shù)大于信號(hào)長度(單邊譜120執(zhí)行點(diǎn))’); % 變量@@@@@@@
%% 執(zhí)行FFT點(diǎn)數(shù)與原信號(hào)長度相等(120點(diǎn))
% 構(gòu)建原信號(hào)
N=120; % 信號(hào)長度(變量@@@@@@@)
Fs=1; % 采樣頻率
dt=1/Fs; % 采樣間隔
t=[0:N-1]*dt; % 時(shí)間序列
xn=cos(2*pi*0.24*[0:99])+cos(2*pi*0.26*[0:99]);
xn=[xn,zeros(1,N-100)]; % 原始信號(hào)的值序列
subplot(3,2,5) % 變量@@@@@@@
plot(t,xn) % 繪出原始信號(hào)
xlabel(‘時(shí)間/s’),title(‘原始信號(hào)(向量長度為120)’) % 變量@@@@@@@
% FFT分析
NN=120; % 執(zhí)行120點(diǎn)FFT(變量@@@@@@@)
XN=fft(xn,NN)/NN; % 共軛復(fù)數(shù),具有對(duì)稱性
f0=1/(dt*NN); % 基頻
f=[0:ceil((NN-1)/2)]*f0; % 頻率序列
A=abs(XN); % 幅值序列
subplot(3,2,6),stem(f,2*A(1:ceil((NN-1)/2)+1)),xlabel(‘頻率/Hz’) % 繪制頻譜(變量@@@@@@@)
axis([0 0.5 0 1.2]) % 調(diào)整坐標(biāo)范圍
title(‘執(zhí)行點(diǎn)數(shù)等于信號(hào)長度(單邊譜120執(zhí)行點(diǎn))’); % 變量@@@@@@@
結(jié)果
評(píng)論