0
点赞
收藏
分享

微信扫一扫

3 连续信号的傅里叶变换及波形绘制


3 连续信号的傅里叶变换及波形绘制_python编程

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编程及波形表示方法

连续周期信号的傅里叶级数

3 连续信号的傅里叶变换及波形绘制_傅里叶级数_02


三角型傅里叶系数为:

3 连续信号的傅里叶变换及波形绘制_傅里叶级数_03


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);

波形表示:

3 连续信号的傅里叶变换及波形绘制_matlab_04

4.2、连续信号傅里叶变换的Matlab或Python编程及波形表示方法

3 连续信号的傅里叶变换及波形绘制_matlab_05


3 连续信号的傅里叶变换及波形绘制_matlab_06


MATLAB编程

syms t
f=exp(-2*abs(t))
F=fourier(f)
运行结果为:
F=4/(4+w^2)

3 连续信号的傅里叶变换及波形绘制_python编程_07

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); %绘制相位谱

波形表示方法:

3 连续信号的傅里叶变换及波形绘制_python编程_08

五、实验心得及体会

通过本次实验实现连续周期信号、连续信号的傅里叶级数求解编程算法。在本次实验中更深刻地理解​​Matlab​​代码的具体意义并熟练使用。

越是难度越大的实验越要细心,在敲程序的过程中不能粗心大意,我在一开始运行时就出现了错误,导致没有波形图出现,因为我把每个函数的作用区间给弄乱了,但是经过检查改正,程序还是能正确运行的。

3 连续信号的傅里叶变换及波形绘制_matlab_09


举报

相关推荐

0 条评论