实 验 报 告
实验课程: 信号与系统——MATLAB综合实验
学生姓名: 赖硕秋氯化钠
学 号: 6100208060
专业班级: 电子081
2010年 4月 15日
实验二 用matlab实现傅立叶变换
实验目的: 1.掌握傅立叶数值实现方法(矩阵算法)
2.生成连续周期信号,掌握程序优化技巧
3.对于自定义函数参数有效性的检查
4.复习并巩固“信号与系统”相关知识内容,学习用matlab实现问题
实验环境:运行于Matlab7.6环境
实验内容: 本次实验参照《信号与系统》——“Matlab综合实验”55页课后练习
习题:
1. 如图4.4所示锯齿波信号,分别去一个周期的抽样数据X1(t),巨蟹座处女座0<=t<=1和五个周期的数据X(t),0<=t<5,计算其傅立叶变换X1(w)和X(w),比较有和不同并解释原因。
编程如下:
方法1:
%计算单位锯齿波和五个周期波形的傅立叶变换
%解法1:基本用循环实现数值的计算;对于5个周期锯齿波用内外循环来生成实现
T1=1; %一个周期锯齿波
N1=10000;
t1=linspace(0,T1-T1/N1,N1)';
f1=0*t1;
f1=1-2*t1;
OMG=32*pi; %频率抽样区间
K1=100; %频率抽样点数
omg=linspace(-OMG/2,OMG/2-OMG/K1,K1)';
X1=0*omg;
for k=1:K1 %求解五个周期函数的傅里叶变换系数
for n=1:N1
害羞的近义词
X1(k)=X1(k)+T1/N1*f1(n)*exp(-j*omg(k)*t1(n));
end
end
fs1=0*t1;
for n=1:N1 %通过傅里叶逆变换还原原函数
for k=1:K1
fs1(n)=fs1(n)+OMG/2/pi/K1*X1(k)*exp(j*omg(k)*t1(n));
end
end
T2=5; %五个周期锯齿波
N2=10000;
t2=linspace(0,T2-T2/N2,N2)';
f2=0*t2;
t3=linspace(0,T2/5-T2/N2,N2/5)'; %先定义一个周期内的锯齿波变量抽样值
f3=0*t3; %初始化一个周期的函数抽样值
f3=1-2*t3; %表示出一个周期内函数抽样值
for s=0:4 %将一个周期锯齿波平移到五个周期,通过循环控制二月英文单词
for a=1:N2/5
f2(2000*s+a)=f3(a);
end
end %将函数拓展表示为五个周期
X2=0*omg;
for k=1:K1 %求解五个周期函数的傅里叶变换系数
for n=1:N2
X2(k)=X2(k)+T2/N2*f2(n)*exp(-j*omg(k)*t2(n));
end
end
fs2=0*t2;
for n=1:N1 %通过傅里叶逆变换还原原函数
for k=1:K1
fs2(n)=fs2(n)+OMG/2/pi/K1*X2(k)*exp(j*omg(k)*t2(n));
end
跳水鱼的做法
end
短发型女
figure;
subplot(2,2,1);
plot(omg,abs(X1),'r'); %以幅度频谱画图
xlabel('Frequency'),ylabel('Amplitude');
title('单个锯齿波的幅频曲线');
subplot(2,2,2);
plot(t1,fs1,'r');
xlabel('Second(s)'),ylabel('Amplitude');
title('由频域还原时域函数');
subplot(2,2,3);
交叉的近义词
plot(omg,abs(X2),'r');
xlabel('Frequency'),ylabel('Amplitude');
title('五个周期锯齿波的幅频曲线');
subplot(2,2,4);
plot(t2,fs2,'r');
xlabel('Second(s)'),ylabel('Amplitude');
title('由频域还原时域函数');
相关曲线:
方法2:
%一站到底主持人计算单位锯齿波和五个周期波形的傅立叶变换
%解法2:数值算法用矩阵实现,大大加快了运行速度;并且直接调用“sawtooth”生成5个周期的锯齿波
T1=1; %单个周期时域范围