南昌大学实验报告
学生姓名:学号:6100209228 班级:电子093班
实验类型:□验证□综合■设计□创新实验日期:2011-04-8 实验成绩:
傅里叶变换
(一)实验目的
1、掌握对不同的函数进行傅里叶变换的程序编写;
2、熟悉生成联系周期信号的方法;
3、练习matlab编程。
(二) 实验内容
1.请编写函数F=fsana(t,f,,N),计算周期信号f的前N个指数形式的傅立叶级数系数,t表示f对应的抽样时间(均为一个周期);再编写函数f=fssyn(F,t),由傅立叶级数系数F合成抽样时间t对应的函数。
设计信号验证这两个是否正确。
定义F=fsana(t,f,N)。
function F=fsana(t,f,N)
omg1=2*pi/(max(t)-min(t));
k=[0:N]';
F=1/length(t)*exp(-j*kron(k*omg1,t.'))*f
定义f=fssyn(F,t)
function f=fssyn(F,t)
omg1=2*pi/(max(t)-min(t));
N=floor(length(F)/2);
k=[0:N];
f=exp(j*kron(t,k*omg1))*F;
运行所定义的函数
T1=2*pi; %一个周期时域范围
N1=300; %时域抽样点数
t=linspace(0,T1-T1/N1,N1)'; %生成抽样时间点
f=cos(t); %生成抽样函数值
subplot(2,2,1)
plot(t,f);
title ('原函数')
N=10;
F1=fsana(t,f,N); %调用fsana函数求解前N项傅立叶级数系数
subplot(2,2,2)
stem(abs(F1),'s'); %绘制离散的幅度曲线
title('前N项傅立叶级数系数幅度曲线');
f2=fssyn(F1,t); %调用fssyn函数求原时域函数
subplot(2,2,3)
plot(t,f2,'k');
title('傅立叶逆变换后时域函数');
运行结果
F =
0.0000
0.5008 - 0.0052i 0.0044 - 0.0000i 0.0037 - 0.0000i 0.0036 - 0.0000i 0.0035 - 0.0000i 0.0034 - 0.0000i 0.0034 - 0.0000i 0.0034 - 0.0000i 0.0034 - 0.0000i
0.0034 - 0.0000i
3.利用fsana和fssyn计算习题1中x1(t)的钱10个傅立叶级数洗漱Fi,0《i<10,用这些洗漱合成周期为0.5的锯齿波y(t),0《t<2,并绘出图形
定义F=fsana(t,f,N)
function F=fsana(t,f,N)
omg1=2*pi/(max(t)-min(t));
k=[0:N]';
F=1/length(t)*exp(-j*kron(k*omg1,t.'))*f
运行及调用
T1=2*pi; %一个周期时域范围
N1=300; %时域抽样点数
t=linspace(0,T1-T1/N1,N1)'; %生成抽样时间点
f=1-2*t; %生成抽样函数值
N=10;
F1=fsana(t,f,N);
运行结果
F =
-5.2622
-0.0175 - 1.9866i
-0.0175 - 0.9932i
-0.0175 - 0.6620i
-0.0175 - 0.4964i
-0.0175 - 0.3970i
-0.0175 - 0.3307i
-0.0175 - 0.2833i
-0.0175 - 0.2478i
-0.0175 - 0.2201i
-0.0175 - 0.1979i
4、
(三)实验小结
这次实验过程中,通过函数的编写来熟悉matlab和傅里叶函数的使用,并对于不同函数、不同参数的图像比较,满足对抽样数据的傅里叶分析要求。
要学会通过一个函数编程能够推导出其他函数傅里叶变换的编程使用,这样才能更好的培养自学能力,也对实验有了更深刻的了解。
还有关键的一点就是要注意细节,所谓细节决定成败,在做每句语句的时候都要注意要求,这样才能更好的达到实验目的。