信号与系统:吉布斯现象的验证,傅里叶级数 您所在的位置:网站首页 matlab画出周期三角波信号的频谱程序 信号与系统:吉布斯现象的验证,傅里叶级数

信号与系统:吉布斯现象的验证,傅里叶级数

2023-06-09 17:07| 来源: 网络整理| 查看: 265

 

请问,MATLAB的代码用什么格式才不会和下面一样乱???

 

信号与系统实验

 

1.谐波的叠加

2.方波的函数逼近

3.吉布斯现象的验证

 

 

题目描述

1.写出由程序

t=-2*pi:0.001:2*pi;

y=sawtooth(0.5*t,1);

plot(t,y)

形成的信号经周期延拓得到的周期信号的时域表达式;手动计算函数的傅里叶系数,再代入方程,用MATLAB编程计算其指数形式的傅里叶系数(计算至11次谐波),画出前11次谐波叠加的波形,了解并指出吉布斯现象。

 

信号波形: t1=-2*pi:0.001:2*pi; y1=sawtooth(0.5*t1,1); subplot(2,1,1); plot(t1,y1); 周期延拓 : t2=-8*pi:0.001:8*pi; y2=sawtooth(0.5*mod(t2,4*pi),1); subplot(2,1,2); plot(t2,y2); 谐波叠加: t=-2*pi:0.001:2*pi; g=zeros(size(t)); f=zeros(size(t)); for n=-11:11 g=1j/(n*pi); f=f+g*exp(1j*0.5*t*n); end y=sawtooth(0.5*t,1); xlabel('t'); plot(t,y); hold on; plot(t,f); legend('y 原函数','f 谐波叠加波形图');

2. 利用square_wave函数f=,将t从0到4π等间隔取1001个值,输入非负整数n,输出为1001列的行向量,计算f对于不同输入n的输出,我们可以通过调用n=20或更大的函数来测试函数,并绘制波形图,读出 n = 200 时 square_wave 函数生成的波形,观察并记录该波形的参数,如幅度、周期等,用MATLAB的square函数画出一致的波形。

t = linspace(0, 4*pi, 1001); n = 200; for t1 = 1 : length(t) t2= t(t1); k = 1 : n; a = sin(t2* (2*k-1)); b = 2 * k - 1; theSum(t1) = sum(a ./ b); end plot(t,theSum); hold on; f=0.8*square(t); plot(t,f); axis([0 4*pi -1 1]); legend('square-wave','square');

3. 

(1)根据傅里叶级数反推出原函数f(t)的闭合形式;

(2)计算函数f(t)的傅里叶级数的三角形式,与上面的进行对比,观察原函数的傅里叶级数的cos项的系数。画出一些不同N值对应的的波形图,与原函数f(t)波形图进行对比,观察在哪些时刻f(t)与值相差最大,随着,二者的差值是逐渐趋近于一个确定的值还是无穷大,如果是一个确定的值,计算出来它,结合吉布斯现象,画差值与N的波形图。

 

(3)画出一些不同N值对应的的波形图,将其与的波形图进行对比,利用所学的信号与系统和数学知识分析它们不同的原因。画出一些不同N值对应的的波形图,与原函数f(t)波形图进行对比,观察在哪些时刻f(t)与值相差最大,随着,二者的差值是逐渐趋近于一个确定的值还是无穷大,如果是一个确定的值,计算出来它,结合吉布斯现象,画差值与N的波形图。

(4)画出一些不同N值对应的的波形图,将其与的波形图进行对比,利用所学的信号与系统和数学知识分析它们不同的原因。

 

(1)t=-pi:0.001:pi; y=-pi/2*sawtooth(t); n=5; f = zeros(size(t)); for n0=1:n f=f+(sin(n0*t))/n0; end plot(t,f); hold on; plot(t,y); title(['n=', num2str(n)]); (3) t=-pi:0.001:pi; N=input(‘N=’); for j=1: N f = zeros(size(t)); for i=1:j f = f + (sin(i*t))/i; end fmax(j) = (max(f)-pi/2)/pi; end figure(1); plot(t, f, 'r'); hold on; y=-pi/2*sawtooth(t); plot(t,y);axis([-4 4 -2 2]) ; title(['N=', num2str(N)]); figure(2); plot(fmax) ; legend('(f_{n}-f)/f(max)'); axis([0 200 -0.2 0.15]); title('吉布斯现象'); (4) t=-pi:0.001:pi; N=input(‘N=’);; F0= zeros(size(t)); for j=1:N f = zeros(size(t)); for i=1:j f = f + (sin(i*t))/i; F0=F0+(sin(i*t))/i; end end F=F0/n; y=-pi/2*sawtooth(t); plot(t, f);hold on; plot(t,y); plot(t,F) ;title(['n=', num2str(n)]); legend('f_{N}(t)','sawtooth','F_{N}(t)');

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有