ft的傅里叶变换初体验
本学期的课程需要用到大量繁琐的傅里叶变换,在除了手动计算式的练习之外,能够通过matlab进行辅助分析也许能对变换过程能有更直观的了解。特此记下这篇quicknote
for i=1:length(b)
for k=1:length(t)
z(k) = abs(b(i)*sin((i-1)*t(k) + angle(i)));
y(k)=i;
end
grid on
plot3(x,y,z);
hold on
x_z = zeros(1,length(t)) + 6
plot3(x_z,y,abs(z));
hold on;
end
建立一个基本的ft式-quickstart
以一个基本的门函数为例
syms t f F w
f = heaviside(t+1) - heaviside(t-1);
F = fourier(f,t,w)
就的到了宽为2的门函数的傅里叶变换,
F =
- (- sin(w) + cos(w)*1i)/w + (sin(w) + cos(w)*1i)/w
绘制时域-频域的三维图像
众所周知,傅里叶变化是把函数展开为三角函数和的形式,通过欧拉公式再转化为指数函数。即时域的函数图像可以分解为频域上的函数图像的叠加。以此我们进行图像的绘制。
首先得到不同频率上的幅值。还是以上的门函数为例。
t = -2*pi:0.01:2*pi;
f = heaviside(t+1) - heaviside(t-1);
plot(f,t)
figure();
FN = fft(f,1024);
FNabs = abs(FN);
plot(FNabs)
figure();
x = -2*pi:0.01:2*pi;
for i=1:length(FN)
for k=1:length(x)
z(k) = abs(FN(i)*sin((i-1)*x(k) + angle(FN(i))));
y(k)=i;
end
grid on
plot3(x,y,z);
hold on
end
标签:初体验,ft,length,abs,matlab,end,sin,FN
From: https://www.cnblogs.com/paprika2/p/16728439.html