傅里叶变换及带通滤波器仿真Matlab试验报告
傅里叶变换及带通滤波器仿真Matlab试验报告
一.实验目的
学习软件matlab的编辑语言、绘图、函数等功能的运用
了解傅里叶级数的复数形式表示方波,并运用matlab绘出。
熟悉带通滤波器的工作原理,并用matlab仿真带通滤波器,绘出相应的图形,最后用pspice验证。
二.实验平台
1. Matlab7.0
2. Pspice
三.实验内容
实验一
用matlab模拟计算傅里叶分量叠加近似方波的过程,并将叠加过程用图形表示,最后画出谐波的振幅频谱。
实验原理
根据傅里叶定理,任何一个角频率为ω的周期函数都可以表示成无穷多个频率为ω整数倍的正弦函数和余弦函数之和。
将傅里叶级数交流分量各项相叠加后,可得到原始的方波信号。参加叠加的傅里叶分量越多,其和就越接近原来的方波。
谐波的振幅随频率的增加而快速减少。
实验步骤
设计叠加傅里叶交流分量的算法。
打开Matlab,编辑程序实现算法。
运用Matlab的绘图函数将叠加过程用图形表示。
用Matlab绘出振幅频谱图。
实验程序代码
%时间t从0到2,每隔0.001秒取一点
t=0:0.001:pi;
y=0;
%通过循环绘出a小于等于5和a=16时的图像
for a=1:6
n=2*a-1
y=y+4./(n*pi)*sin(n*pi*t);
figure(1)
subplot(2,3,a);
plot(t,y,'-g')
xlabel('Time');
ylabel('F');
end
s=0;
for b=1:16
s=s+4./((b*2-1)*pi)*sin((b*2-1)*pi*t);
end
plot(t,s,'-g')
%绘出振幅频谱图像
figure(2)
k=1:2:12;
A=4./(k*pi);
bar(k,A,0.1);
实验结果
傅里叶波形图
振幅频谱图
实验结果分析与结论
根据傅里叶波形图可以看出,通过逐项叠加傅里叶级数交流分量可以形成原始方波。并且参加叠加的傅里叶分量愈多,其和就越接近原始方波。
由于无法求和无穷多项傅里叶分量,实验中取N=31为无穷。通过观察可知此时图像与原始方波很接近,但仍存在振荡。由此可知,当N趋向无穷时,傅里叶分量之和仍在实际值上下所波动,即存在吉伯斯现象。
根据观察振幅频谱图可以发现,随着频率的增加,振幅大幅度减少,到一定程度后缓慢减少。
实验过程中的问题及解决方法
实验中首先遇到的问题是对方波函数傅里叶级数的不熟悉。不知道如何设计算法将方波函数的傅里叶级数交流分量叠加。通过查找,在书中找到了常见函数的傅里叶级数。其中方波函数的傅里叶级数为f(t)=(4A/π)∑(1/(2n-1))sin(2n-1)ωt。
设计程序时,不熟悉matlab的语言,尝试用学过的c++语言解决,结果程序运行过程中发生了很多错误,于是自学了部分matlab语言,运用其中的函数如plot函数绘图,最终得出了实验成果。
程序无法叠加无穷项数据,因此后来选择了31项作为无穷项的参照。
刚开始绘图时发现绘出的图像是一样的,经过检查,发现是程序中的循环语句出现了错误,导致傅里叶分量没有叠加。修改程序后,终于解决了问题。
在程序绘图时,下一幅图经常覆盖上一幅图像,导致在刚开始绘制频谱图时傅里叶波形图被覆盖。经过查找资料,发现可用figure创建一新的绘图窗口解决。
实验二
用Matlab设计不同带宽的带通滤波器。绘出图像后用Pspice作电路仿真,并用检验所设计带通滤波器是否正确。电路图如下图所示。
F0 =10KHz,BW=200Hz、1kHz、10kHz
实验原理
在R、L、C串联电路中,当正弦交流信号源频率f变化时,电路中的感抗、容抗亦随之改变,电路中电流也随f改变。若以频率f为横坐标,电流I为纵坐标,绘出光滑曲线,即为幅频特性曲线。
当f=f0时,即幅频特性曲线尖峰所在频率点,该频率称为谐振频率,此时电路呈纯阻性,电路阻抗的模最小。
实验步骤
设计算法计算R、L、C的值。
设计算法绘出当L、C的值固定,改变R值时谐振电路的幅频特性曲线、相频曲线和以db为单位的幅频特性曲线。
用Matlab实现所设计的算法。
用Pspice仿真电路验证所设计滤波器的正确性。
试验程序代码
f=1e+2:1e+2:1e+6;
f0=1e+4;
i=sqrt(-1);
c=1e-7;
l=1/(4*c*(f0*pi)^2);
r1=200*l;
r2=1000*l;
r3=10000*l;
Zc=1./(i*2*pi*f*c);
Zl=i*2*pi*f*l;
ft1=r1./(r1+Zc+Zl);
ft2=r2./(r2+Zc+Zl);
ft3=r3./(r3+Zc+Zl);
figure(1)