3 连续信号的傅里叶变换及波形绘制
- 一、实验目的
- 二、实验内容
- 三、实验仪器
- 四、 实验代码及结果
- 4.1、连续周期信号傅里叶级数的Matlab或Python编程及波形表示方法
- 4.2、连续信号傅里叶变换的Matlab或Python编程及波形表示方法
- 五、实验心得及体会
一、实验目的
- 1、 实现连续周期信号的傅里叶级数求解编程算法。
- 2、 实现连续信号的傅里叶变换求解编程算法。
- 3、 理解
Matlab
或Python
代码的具体意义并熟练使用。
二、实验内容
- 1、 连续周期信号傅里叶级数的
Matlab
或Python
编程及波形表示方法。 - 2、 连续信号傅里叶变换的
Matlab
或Python
编程及波形表示方法。
三、实验仪器
- 1、 电脑 1台
- 2、 Matlab或Python软件 1套
四、 实验代码及结果
4.1、连续周期信号傅里叶级数的Matlab或Python编程及波形表示方法
连续周期信号的傅里叶级数
三角型傅里叶系数为:
MATLAB编程
syms t n y
T=10; %设置周期
tao=1; %设置脉宽
Nn=16; %输出数据位数为16
Nf=30; %谐波次数30
y=1; %主周期波形
a0=2*int(y,t,-tao/2,tao/2)/T; %直流分量
as=int(2*y*cos(2*pi*n*t/T)/T,t,-tao/2,tao/2); %余弦项系数
bs=int(2*y*sin(2*pi*n*t/T)/T,t,-tao/2,tao/2); %正弦项系数
an(1)=double(vpa(a0,Nn));
for k=1:Nf
an(k+1)=double(vpa(subs(as,n,k),Nn));
bn(k+1)=double(vpa(subs(bs,n,k),Nn));
end %符号量转数值量
cn=sqrt(an.*an+bn.*bn); %幅度谱
for i=0:Nf
if an(i+1)>=0
phase(i+1)=0;
else
phase(i+1)=pi;
end
end %相位谱
subplot(211);
k=0:Nf;
stem(k,cn);
subplot(212)
stem(k,phase);
波形表示:
4.2、连续信号傅里叶变换的Matlab或Python编程及波形表示方法
MATLAB编程
syms t
f=exp(-2*abs(t))
F=fourier(f)
运行结果为:
F=4/(4+w^2)
MATLAB编程
syms t phase im re
%f=exp(-2*t)*sym(‘Heaviside(t)’); % Heaviside(t)第一个字母要小写
f= exp(-2*t)* heaviside(t); % Heaviside(t)第一个字母要小写
F=fourier(f);
% im=image(F); %计算F的实部
im=imag(F); %计算F的实部
re=real(F); %计算F的虚部
phase=atan(im/re); %计算相位
subplot(211);
ezplot(abs(F)); %绘制幅度谱
subplot(212);
ezplot(phase); %绘制相位谱
波形表示方法:
五、实验心得及体会
通过本次实验实现连续周期信号、连续信号的傅里叶级数求解编程算法。在本次实验中更深刻地理解Matlab
代码的具体意义并熟练使用。
越是难度越大的实验越要细心,在敲程序的过程中不能粗心大意,我在一开始运行时就出现了错误,导致没有波形图出现,因为我把每个函数的作用区间给弄乱了,但是经过检查改正,程序还是能正确运行的。