如何用matlab实现傅里叶变换

2024-12-12 11:20:32
推荐回答(3个)
回答1:

用MATLAB 实现傅里叶变换:
用户任意输入一个函数,然后,输出函数的傅里叶变换函数,然后输出振幅频率 。
x=sin(2*pi*t); %任意输入一个函数。
y=fft(x); %傅里叶变换函数。
plot(abs(y)); %振幅频率。
函数(function)表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。函数f中对应输入值的输出值x的标准符号为f(x)。包含某个函数所有的输入值的集合被称作这个函数的定义域,包含所有的输出值的集合被称作值域。若先定义映射的概念,可以简单定义函数为,定义在非空数集之间的映射称为函数。
傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。

回答2:

x=sin(2*pi*t); %任意输入一个函数
y=fft(x); %傅里叶变换函数
plot(abs(y)); %振幅频率

回答3:

clear %清除内存
clc %清除命令窗口显示内容
x=0:1e-3:20; %以1e-3为单位间隔从0到20生成向量x的元素,离散取值
h=cos(2*x).^2; %将题设赋值给变量h
w=0:1e-2:2; %区间[0,2]
y=w; %y赋初值
a=w; %a赋初值
j=sqrt(-1); %虚数单位
for i=1:length(w) %取得w的长度for循环从1开始到length(w)为止
g=(1/sqrt(2*pi))*trapz(x,h.*exp(-j*w(i)*x));%求梯形数值积分
y(i)=abs(g); %求矢径
a(i)=angle(g); %求幅角
end
subplot(3,1,1), %在显示图像窗口中,将窗口划分为上下三块区域(3行1列),在第1个区域显示图像
plot(x,h) %以x为横坐标,以h为纵坐标画出的图形
title('h=(cos(2x))^2') %图名
subplot(3,1,2), %在显示图像窗口中,将窗口划分为上下三块区域(3行1列),在第2个区域显示图像
plot(w,y) %以w为横坐标,以g为纵坐标画出的图形
title('y=abs(g)') %图名
subplot(3,1,3), %在显示图像窗口中,将窗口划分为上下三块区域(3行1列),在第3个区域显示图像
plot(w,a) %以w为横坐标,以a为纵坐标画出的图形
title('a=angle(g)') %图名