实验三 周期信号的傅里叶级数分析及MATLAB实现

合集下载

《信号与系统》实验三

《信号与系统》实验三
实验记录及个人小结(包括:实验源程序、注释、结果分析与讨论等)
三:
源程序:
(1):τ/T=1/4时的周期矩形脉冲的幅度谱和相位谱:
n=-20:20;
F=zeros(size(n));
forii=-20:20
F(ii+21)= sin(ii*pi/4)/(ii*pi+eps);
end
F(21)=1/4;
实验
内容
1.求图1所示周期信号( , )的傅里叶级数,用Matlab做出其前3、9、21、45项谐波的合成波形与原信号作比较,并做出其单边幅度谱和相位谱。
图1 周期为2的三角脉冲信号
2. 求图2所示的单个三角脉冲( )的傅里叶变换,并做出其幅度谱和相位谱。
图2 单个三角脉冲
3. 求不同占空比下周期矩形脉冲的幅度谱和相位谱,例如 、 。
y=1/4;
forn=1:m
y=y+4/(n*n*pi*pi)*(1-cos(n*pi/2)).*cos(n*pi.*t);
end
源代码:
t=-6:0.01:6;
d=-6:2:6;
fxx=pulstran(t,d,'tripuls');
f1=fourierseries(3,t);
f2=fourierseries(9,t);
n=1:10;
a=zeros(size(n));
fori=1:10
a(i)=angle(4/(i*i*pi*pi)*(1-cos(i*pi/2)))
end
n=0:pi:9*pi
stem(n,a,'fill','linewidth',2);
axis([0,9*pi,-0.2,0.2])

MATLAB实验三 信号的调制与解调

MATLAB实验三 信号的调制与解调

实验三信号的调制与解调一.实验目的:1.熟悉幅度调制与解调过程,熟悉调制解调过程中信号时域波形和频谱。

2.掌握Modulate函数实现调幅和调频信号。

3.熟悉快速傅立叶变换函数fft,求模函数abs和fftshift函数求信号幅度频谱。

4.掌握butter函数进行巴特沃兹低通滤波器设计,熟悉滤波器频率响应函数freqz,滤波函数filter。

5.熟悉信号的合成与分解原理,加深对傅里叶级数的理解;二、实验原理:1.两个信号的调制通常用乘法器实现,由一个信号控制另一个信号的某个参量,例如用一个低频正弦波信号控制高频载波的幅值,则产生一个振幅调制信号,称为调幅波;类似还可产生调频波等。

2.幅度调制与解调原理:(如下图所示)调制信号()p t,假设信道不引入噪声,解调时采用同步解f t,载波()调,LPF为低通滤波器,()f t为接收信号。

C三、实验内容1.验证性实验a)使用modulate函数产生调幅信号解:Fm=10; Fc=100; Fs=1000; N=1000; k=0:N; t=k/Fs;x=abs(sin(2*pi*Fm*t));xf=abs(fft(x,N)); y1=modulate(x,Fc,Fs,'am');subplot(2,1,1);plot(t(1:200),y1(1:200));xlabel('时间'); ylabel('幅度'); title('调幅');yf=abs(fft(y1,N)); subplot(2,1,2); stem(yf(1:200));xlabel('频率');ylabel('幅度');b)使用modulate函数产生调频信号解:Fm=10; Fc=100; Fs=1000; N=1000; k=0:N; t=k/Fs;x=abs(sin(2*pi*Fm*t));xf=abs(fft(x,N)); y1=modulate(x,Fc,Fs,'pm');subplot(2,1,1);plot(t(1:200),y1(1:200));xlabel('时间'); ylabel('幅度'); title('调频');yf=abs(fft(y1,N)); subplot(2,1,2); stem(yf(1:200)); xlabel('频率');ylabel('幅度');c)周期信号的分解与合成解:t=-3:0.01:3; Fm=0.5; sum=0; n=100; for i=1:2:n;sum=sum+4/pi.*(1/i).*sin(i*2*pi*Fm*t); endplot(t,sum);title('周期信号的分解与合成');2. 设计性实验1) 发射端调制信号()2cos(2)f t t =,载波()cos(20)p t t =,已调信号()A f t ,理想信道无噪声。

(完整word版)连续时间信号傅里叶级数分析及matlab实现

(完整word版)连续时间信号傅里叶级数分析及matlab实现

课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目:连续时间信号傅里叶级数分析及MATLAB实现初始条件:MATLAB 6.5要求完成的主要任务:深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。

1.用MATLAB实现周期信号的傅里叶级数分解与综合。

2.用MATLAB实现周期信号的单边频谱及双边频谱。

3.用MATLAB实现典型周期信号的频谱。

4.撰写《MATLAB应用实践》课程设计说明书。

时间安排:学习MATLAB语言的概况第1天学习MATLAB语言的基本知识第2、3天学习MATLAB语言的应用环境,调试命令,绘图能力第4、5天课程设计第6-9天答辩第10天指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)ABSTRACT .................................................................................................. 错误!未定义书签。

绪论.. (I)1 MATLAB简介 (II)1.1MATLAB语言功能 (II)1.2MATLAB语言特点 (II)2 连续时间周期信号的傅里叶级数 (III)2.1连续时间周期信号的分解 (III)2.1.1 三角形式的傅里叶级数 (III)2.1.2 指数形式的傅里叶级数.............................................................................................. I V 2.2连续时间周期信号的傅里叶综合.. (V)2.3吉布斯现象 ......................................................................................................................... V I3 连续时间周期信号的频谱分析 (VII)3.1单边与双边频谱关系 (VII)3.2以单边幅度频谱为例,研究脉冲宽度与频谱的关系 ..................................................... I X3.3以单边幅度频谱为例,研究脉冲周期与频谱的关系 (X)4 典型周期脉冲的频谱............................................................................................................... X I 4.1周期方波脉冲频谱的MATLAB实现 .............................................................................. X I4.1.1 周期方波脉冲双边频谱的MATLAB实现 (XII)4.1.2 周期方波脉冲单边频谱的MATLAB实现 ............................................................ X IV 4.2周期三角波脉冲频谱的MATLAB实现 (XV)4.2.1 周期三角波双边频谱的MATLAB实现 ............................................................... X VII4.2.2 周期三角波单边频谱的MATLAB实现 (XVIII)5小结即心得体会 (XX)致谢............................................................................................................................................ X XI 参考文献....................................................................................................... 错误!未定义书签。

Matlab技术傅里叶变换

Matlab技术傅里叶变换

Matlab技术傅里叶变换引言傅里叶变换是一种在信号处理和图像处理领域广泛应用的数学工具。

通过傅里叶变换,我们可以将一个信号或图像分解为不同频率的分量,从而更好地理解信号或图像的特性。

在实际应用中,Matlab是一个功能强大的工具,用于实现傅里叶变换和信号处理。

本文将介绍Matlab中傅里叶变换的基本原理、实现方法以及一些实际应用案例。

一、傅里叶变换的基本原理傅里叶变换是一种将一个函数或信号表示为频率分量的工具。

它可以将一个时域函数转换为频域函数,从而得到不同频率分量的振幅和相位信息。

在数学上,傅里叶变换将一个函数f(t)表示为连续频谱的形式,即F(ω),其中ω为频率。

傅里叶变换的基本公式如下:F(ω) = ∫f(t)e^(-jωt)dt其中,F(ω)表示频域函数,f(t)表示时域函数,j表示虚数单位,ω表示频率,e 为自然对数的底。

二、Matlab中傅里叶变换的实现方法在Matlab中,傅里叶变换可以通过fft函数来实现。

fft函数是Fast Fourier Transform的缩写,是一种快速傅里叶变换算法。

使用fft函数,我们可以方便地进行信号的频域分析。

具体实现步骤如下:1. 准备输入信号数据。

在Matlab中,可以通过向量或矩阵的形式表示一个信号。

2. 调用fft函数进行傅里叶变换。

输入参数为信号数据,输出结果为频域函数。

3. 对频域函数进行处理和分析。

可以进行滤波、频谱分析等操作。

4. 反傅里叶变换。

如果需要将频域函数转换回时域函数,可以使用ifft函数。

通过以上步骤,我们可以方便地实现对信号的傅里叶变换和频域分析。

三、实际应用案例傅里叶变换在信号处理和图像处理领域有着广泛的应用。

下面将介绍几个实际案例,展示了傅里叶变换的实际应用。

1. 音频信号处理音频信号是一种由不同频率的声波组成的信号。

通过傅里叶变换,我们可以将音频信号分解为不同频率分量的振幅和相位。

这使得我们能够实现音频信号的滤波、频谱分析和降噪等操作。

实验周期信号的傅里叶级数和频谱分析

实验周期信号的傅里叶级数和频谱分析

实验四、周期信号的傅里叶级数和频谱分析1实验目的1)学会利用MATLAB 分析傅里叶级数展开,并理解傅里叶级数的物理含义;2)学会利用MATLAB 分析周期信号的频谱特性。

2实验原理及实例分析2.1 周期信号的傅里叶级数(基本原理请参阅教材第四章的4.1节和4.2节。

)例1:周期方波信号)(t f 如图1所示,试求出该信号的傅里叶级数,利用MATLAB 编程实现其各次谐波的叠加,并验证Gibbs 现象。

f(t)t(sec)图1 周期方波信号)(t f 的波形图解:从理论分析可知,周期方波信号)(t f 的傅里叶级数展开式为)9sin 917sin 715sin 513sin 31(sin 4)(00000 +++++=t t t t t t f ωωωωωπ其中,ππω220==T。

则可分别求出1、3、5、9、19、39、79、159项傅里叶级数求和的结果,其MATLAB 程序如下,产生的图形如图2所示。

close all;clear all; clct = -2:0.0001:2; omega = 2 * pi;y = square(2 * pi * t,50); n_max = [1 3 5 9 19 39 79 159]; N = length(n_max); for k = 1:Nfk = zeros(1,length(t)); for n = 1:2:n_max(k) bn = 4 / (pi * n);fk = fk + bn * sin(n * omega * t); endfigure; plot(t,y,t,fk,'Linewidth',2); xlabel('t(sec)');ylabel('部分和的波形'); String = ['最大谐波数=',num2str(n_max(k))];axis([-2 2 -3 3]);grid; title(String);disp([String,'时,在信号跳变点附近的过冲幅度(%)']);f_max = (max(fk) - max(y)) / (max(y) - min(y)) * 100 endt(sec)部分和的波形t(sec)部分和的波形t(sec)部分和的波形t(sec)部分和的波形最大谐波数=9t(sec)部分和的波形t(sec)部分和的波形t(sec)部分和的波形t(sec)部分和的波形图2 例1程序产生的图形程序输出的用于验证Gibbs 现象的数值分别为:13.6620 10.0211 9.4178 9.1164 8.9907 8.9594 8.9484 8.94642.2周期信号的频谱分析(基本原理请参阅教材第四章的4.3节。

实验三-周期信号的频谱分析-实验报告

实验三-周期信号的频谱分析-实验报告

实验三-周期信号的频谱分析-实验报告信号与系统实验报告实验三周期信号的频谱分析学院专业班级姓名学号指导教师实验报告评分:_______实验三周期信号的频谱分析一、实验目的1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;2、观察截短傅里叶级数而产生的“Gibbs现象”,了解其特点以及产生的原因;3、掌握各种典型的连续时间非周期信号的频谱特征。

二、实验内容实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。

实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。

并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。

实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。

Q3-1 编写程序Q3_1,绘制下面的信号的波形图:-+-=)5cos(51)3cos(31)cos()(000t t t t x ωωω∑∞==10)cos()2sin(1n t n n n ωπ其中,ω0 = 0.5π,要求将一个图形窗口分割成四个子图,分别绘制cos(ω0t)、cos(3ω0t)、cos(5ω0t) 和x(t) 的波形图,给图形加title ,网格线和x 坐标标签,并且程序能够接受从键盘输入的和式中的项数。

抄写程序Q3_1如下:clear,%Clear all variablesclose all,%Close all figure windowsdt = 0.00001; %Specify the step of time variablet = -2:dt:4; %Specify the interval of timew0=0.5*pi;x1=cos(w0.*t);x2=cos(3*w0.*t);x3=cos(5*w0.*t);N=input('Type in the number of the harmonic components N=');x=0;for q=1:N;x=x+(sin(q*(pi/2)).*cos(q*w0*t))/q;endsubplot(221)plot(t,x1)%Plot x1axis([-2 4 -2 2]);grid on,title('signal cos(w0.*t)')subplot(222)plot(t,x2)%Plot x2axis([-2 4 -2 2]);grid on,title('signal cos(3*w0.*t))')subplot(223)plot(t,x3)%Plot x3axis([-2 4 -2 2])grid on,title('signal cos(5*w0.*t))')执行程序Q3_1所得到的图形如下:Q3-2 给程序Program3_1增加适当的语句,并以Q3_2存盘,使之能够计算例题1中的周期方波信号的傅里叶级数的系数,并绘制出信号的幅度谱和相位谱的谱线图。

周期信号的傅里叶级数分析

周期信号的傅里叶级数分析

实验三周期信号的傅里叶级数分析一、实验目的熟悉连续时间周期信号的傅里叶级数分解原理及方法,掌握周期信号的傅里叶频谱的概念及计算方法,熟悉相应MATLAB 函数的调用格式和作用,掌握利用MATLAB 计算傅里叶级数系数及绘制频谱图的方法。

二、实验原理(一)周期信号的傅里叶级数分析原理按傅里叶分析的原理,任何周期信号都可以用一组三角函数)}cos(),{sin(t n t n ΩΩ的组合表示。

1、三角函数形式的傅里叶级数∑∞=Ω+Ω+=+Ω+Ω+Ω+Ω+=1022110)]sin()cos([2...)2sin()2cos()sin()cos(2)(n n n t n b t n a a t b t a t b t a a t f (1) 式中,n n b a a ,,0称为傅里叶系数。

()dt t f T a TT ⎰-=22012()...3,2,1)cos(222=Ω=⎰-n dt t n t f T a TT n ,(),...3,2,1,)sin(222=Ω=⎰-n dt t n t f T b TT n即可以用一组正弦波和余弦波合成任意的周期信号。

式(1)的三角函数形式傅里叶级数可以写成余弦函数的形式:∑∞=+Ω+=10)cos(2)(n n n t n A A t f ϕ其中:00a A =,22n n n b a A +=,nn n a b arctan -=ϕ 2、指数函数形式的傅里叶分析其中系数3、周期信号的频谱(1)三角函数形式频谱w A n ~关系曲线称为幅度频谱图关系曲线称为相位频谱图(2)指数函数形式频谱 w F n ~关系曲线称为幅度频谱图关系曲线称为相位频谱图(二)周期信号的傅里叶级数的MATLAB 实现例1:试用MATLAB 求如图1所示的周期方波信号的傅里叶级数分解。

解:周期方波信号是一个偶函数,又是一个奇谐函数,因此其傅里叶级数只含有奇次谐波的余弦项,即周期方波信号可以分解为: ()...5,3,1)cos(5.04)cos(244-22=Ω=Ω=⎰⎰-n dt t n T dt t n t f T a TT T T n , 求傅里叶系数的程序如下:syms t n T;∑∞-∞==n t jn n F t f Ωe )(⎰-=22-Ωd e )(1T T t jn n t t f T F w n ~ϕw n ~ϕy=0.5*cos(n*2*pi/T*t);an=(4/T)*int(y,-T/4,T/4);运行结果为:an=2*sin(1/2*pi*n)/pi/n则此周期方波信号可以分解为:)(,...5,3,1)2sin(2,0===n n n a b n n ππ 将其展开为三角函数形式的傅里叶级数:,...)3,2,1()cos(2sin 2)(...])5cos(51)3cos(31)[cos(2(12==-+-=∑∞-=j nwt n n t f wt wt wt t f j n πππ) 例2:根据例1的结果,试用正弦信号的叠加近似合成一频率为50Hz ,幅值为3的方波。

第九节 用MATLAB求傅里叶级数及其实验

第九节 用MATLAB求傅里叶级数及其实验

第九节用MATLAB求傅里叶级数及其实验MATLAB是一款非常强大的数学软件,可以用来求解各种数学问题,包括傅里叶级数的求解。

下面,我们将介绍如何使用MATLAB来求解傅里叶级数,并给出一个实验过程。

一、MATLAB求傅里叶级数方法MATLAB提供了fft函数来求解傅里叶级数,fft函数的基本格式如下:Y = fft(X)其中,X为输入向量,Y为输出向量。

fft函数的返回值Y是一个复数向量,其长度与输入向量X的长度相同。

为了理解fft函数的使用方法,我们可以以方波为例进行演示。

假设我们要求解一个周期为T的方波的傅里叶级数,其公式为:f(t) = 4/π∑ n=1,3,5...∞ (sin nωt/n)我们可以先定义函数f(t),代码如下:function y = f(t)y = zeros(size(t));for n = 1:2:50y = y + (4/pi) * sin(n*t)/n;end然后,我们可以生成一个时间向量t,代码如下:t = linspace(0, 2*pi, 1000);接着,我们可以调用fft函数来求解傅里叶级数,代码如下:y = fft(f(t));得到y的结果后,我们可以通过ifft函数来求解逆变换,代码如下:y = ifft(y);最后,我们可以画出原函数f(t)和傅里叶级数的图像进行比较,代码如下:subplot(211), plot(t, f(t)), title('原函数');subplot(212), plot(t, y), title('傅里叶级数');二、MATLAB实验介绍现在,我们来进行一个MATLAB实验,通过使用fft函数来求解傅里叶级数,并观察不同频率的正弦波对原函数的影响。

1. 实验背景和目的傅里叶级数是将任意周期函数表示为正弦和余弦函数的和,可以用来分析周期信号的频率成分。

本实验旨在通过MATLAB 求解傅里叶级数,观察不同频率的正弦波对原函数的影响,进一步理解傅里叶级数的概念和原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三周期信号的傅里叶级数分析及MATLAB实现
一、实验目的:
1.利用MATLAB实现周期信号的分解与合成,并图示仿真结果;
2.用MATLAB实现周期信号的频谱,画图观察和分析周期信号的频谱;
3.通过MATLAB对周期信号频谱的仿真,进一步加深对周期信号频谱理论知识的理解。

二、实验内容
9.1(a):程序:
display('Please input the value of m(傅里叶级数展开项数)');
m=input('m=');
t=-3*pi:0.01:3*pi;
n=round(length(t)/4);
f=cos(t).*(heaviside(t+2.5*pi)-heaviside(t+1.5*pi)+heaviside(t+0.5*pi)-heaviside(t-0.5 *pi)+heaviside(t-1.5*pi)-heaviside(t-2.5*pi));
y=zeros(m+1,max(size(t)));
y(m+1,:)=f';
figure(1);
plot(t/pi,y(m+1,:));
grid;
axis([-3 3 -1 1.5]);
title('半波余弦');
xlabel('单位:pi','Fontsize',8);
x=zeros(size(t));
kk='1';
syms tx n
T=2*pi;
fx=sym('cos(tx)');
Nn=30;
An=zeros(m+1,1);
Bn=zeros(m+1,1);
a0=2*int(fx,tx,-T/4,T/4)/T
an=2*int(fx*cos(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/T
bn=2*int(fx*sin(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/T
An(1)=double(vpa(a0,Nn));
An(2)=0.5;
for k=2:m
An(k+1)=double(vpa(subs(an,n,k),Nn));
Bn(k+1)=double(vpa(subs(bn,n,k),Nn));
end
y(1,:)=1/pi;
y(2,:)=1/pi+1/2*cos(t);
x=1/pi+1/2*cos(t);
for k=2:6
pause;
x=x+(-2*cos(pi*k/2)/pi/(k^2-1))*cos(k*t);
y((k+1),:)=x;
plot(t/pi,y(m+1,:));
hold on;
plot(t/pi,y((k+1),:));
hold off;
grid;
axis([-3 3 -1 1.5]);
title(strcat('第',kk,'次谐波叠加'));
xlabel('单位:pi','Fontsize',8);
kk=strcat(kk,'`',num2str(k));
end
pause;
plot(t/pi,y(m+1,:));
grid;
axis([-3 3 -1 1.5]);
title('谐波叠加');
xlabel('单位:pi','Fontsize',8);
a0 =
2/pi
an =
162259276829213363391578010288128*(-sin(9007199254740991/1801439850948 1984*pi)*cos(1/2*pi*n)+cos(9007199254740991/18014398509481984*pi)*sin(1/2* pi*n))/(-81129638414606681695789005144063+18014398509481984*n+81129638 414606681695789005144064*n^2)/pi
bn =
9.3:
display('Please input the value of T,tao and Nf'); T=input('T=');
tao=input('tao=');
Nf=input('Nf=');
syms x n k
Nn=32;
An=zeros(Nf+1,1);
Bn=zeros(Nf+1,1);
f=x/tao;
a0=2*int(f,x,0,tao)/T;
an=2*int(f*cos(n*x),x,0,tao)/T;
bn=2*int(f*sin(n*x),x,0,tao)/T;
An(1)=double(vpa(a0,Nn));
for k=1:Nf
An(k+1)=double(vpa(subs(an,n,k),Nn));
Bn(k+1)=double(vpa(subs(bn,n,k),Nn));
end
cn=sqrt(An.*An+Bn.*Bn);
m=0:Nf;
stem(m,cn);
hold on;
plot(m,cn);
xlabel('幅度谱\omega','Fontsize',8)
Please input the value of T,tao and Nf
T=10
tao=2
Nf=30
Please input the value of T,tao and Nf
T=50
tao=2
Nf=30
Please input the value of T,tao and Nf
T=100
tao=2
Nf=30
Please input the value of T,tao and Nf T=10
tao=1
Nf=30
Please input the value of T,tao and Nf T=10
tao=3
Nf=30
Please input the value of T,tao and Nf T=10
tao=5
Nf=30
实验小结:
频带宽度于时域宽度成反比,时域宽度越大频带越窄,周期越大频谱越密。

在傅立叶级数的项数取得很大时,间断点处尖峰下的面积非常小以至于趋近于零,因而在均方的意义上合成波形与原波形的真值没有区别。

相关文档
最新文档