资源描述
单击此处编辑母版标题样式,first,sencond,third,fourth,fifth,*,*,*,西华师范大学 物理与电子信息学院,第七章 信号频域分析及 MATLAB 实现,7.1 周期信号的傅利叶级数与信号的频谱,7.2 周期信号的频谱分析及MATLAB实现,7.3 用MATLAB分析典型周期信号的频谱,1,7.1 周期信号的傅里叶级数与信号的频谱,7.1.1 连续时间周期信号的傅利叶级数CTFS,1)三角形式的傅里叶级数,7-1a,1.连续时间周期信号的解,2,7.1 周期信号的傅里叶级数与信号的频谱,傅里叶系数:,3,7.1 周期信号的傅里叶级数与信号的频谱,三角函数形式的傅里叶级数的另外一种形式:,7-2b,单边频谱,4,7.1 周期信号的傅里叶级数与信号的频谱,2)指数形式的傅里叶级数,双边频谱,5,7.1 周期信号的傅里叶级数与信号的频谱,形式,三角函数形式,指数形式,展开式,系数,3)系数关系,6,7.1 周期信号的傅里叶级数与信号的频谱,2.连续时间周期信号的傅里叶级数近似,用,有限项,的傅里叶级数,求和,来逼近,原函数,f(t)的,截断傅里叶级数,表示,3.符号积分函数int()求截断傅里叶级数及傅里叶表示,intf=int(f,v,a,b),给出符号表达式 f 对指定变量v的,定积分,。,7,7.2 Matlab分析周期信号的频谱,7.2.1 频谱分析流程,分解:各阶傅里叶系数+各阶谐波,综合:用,截断傅里叶级数,来近似原信号,表达周期函数,绘制周期函数,各阶傅里叶系数,各阶傅里叶级数,截断傅里叶级数近似原信号,函数 x=time_fun_x(t),函数 y=time_fun_e(t),函数,SquarePulse_CTFS.m,8,7.2.2 单边频谱分析,7.2 Matlab分析周期信号的频谱,单边频谱,9,例题7.1 周期矩形脉冲信号幅度为1,,脉宽为1,,,周期为4,,求该信号的三角形式的其各阶傅里叶系数,并绘出各次谐波叠加的傅里叶综合波形图。,1.编写函数文件,function y,tao=SqureWaves(t,T),%该函数用于产生对称的、脉宽可调的矩形脉冲;,%它由符号变量和表达式写成。,%M为脉冲占空比;,%tao为脉冲宽度;,%a为脉冲半宽度;,%y周期函数在一个周期的符号函数表达式。,M=input(duty cycle脉冲占空比M=);,A=1;tao=T*M;,y=A*heaviside(t+tao/2)-A*heaviside(t-tao/2);,y=simple(y);,return,7.2 Matlab分析周期信号的频谱,10,2.绘制函数图,figure(3),Syms t;,T=4;,y,tao=SqureWaves(t,T);,yn=subs(y,t,t-T)+y+subs(y,t,t+T);%定义有原函数3个周期的函数,ezplot(yn,-1.5*T 1.5*T);,3.调用m文件,SquarePulse_CTFS.,m求傅里叶系数,分析,SquarePulse,.m,R=,vpa,(A,d)利用可变精度计算方法以d位小数点精度去计算A中的每个元素,每个输出元素是,符号表达式,R=,double,(A)把A转换为双精度浮点数。,7.2 Matlab分析周期信号的频谱,11,例题的理论推算,A0=0.25;,A1=0.45,A20.317,A3 0.15,A4 0,A5 0.09,A6 0.106,A7 0.064,A7 0,A9 0.05,A10 0.063,a,0,=0.5,b,n,=0,T=4 s,tao=1 s,7.2 Matlab分析周期信号的频谱,12,调用,SquarePulse,计算傅里叶系数,7.2 Matlab分析周期信号的频谱,13,原函数的各阶截断傅里叶级数,调用JieD_CTFS.m,7.2 Matlab分析周期信号的频谱,14,周期信号可以分解成一系列,虚指数信号,之和,并可以求得,相应的傅里叶系数,7.2.3 双边频谱,7.2 Matlab分析周期信号的频谱,15,思路:利用CTFShchsym.m先求出周期信号的傅里叶系数,再利用系数关系求,An,Fn,n。,7.2 Matlab分析周期信号的频谱,16,表达周期函数,绘制周期函数,各阶傅里叶系数an,bn,Fn An n,绘制频谱图,函数 x=time_fun_x(t),函数 y=time_fun_e(t),函数 CTFShchsym.m,程序流程:,7.2 Matlab分析周期信号的频谱,17,1.编写函数文件,子函数 y=time_fun_s(t),表示出信号在一个周期内的符号表达式,2.傅里叶复指数系数及绘制频谱图,1)调用函数 time_fun_s(t),获取周期信号的符号表达式;,2)求出信号的三角级数形式的傅里叶系数 an和bn。,3)求出信号的复指数形式的傅里叶级数展开系数Fn。,4)绘制Fn的振幅频谱图。,5)利用y的符号表达式绘制信号3个周期的波形图,7.2 Matlab分析周期信号的频谱,18,7.2.4 用FFT实现周期信号的频谱分析,如何利用快速 Fourier 变换 FFT对连续时间 Fourier 级数 CTFS 展开进行,数值计算,。,1.理论:周期为 N 的离散序列 x(n),其 DTFS 综合和分析公式,Fourier 级数,CTFS,DTFS,一、用 FFT 计算DTFS,IDTFS:,DTFS:,(7.12),(7.13),7.2 Matlab分析周期信号的频谱,19,2.用 FFT 法对x(n)傅里叶分析的计算公式,ifft():,fft():,(7.14),(7.15),3.Matlab命令,IDTFS:,DTFS:,(7.16),(7.17),二、用 FFT 计算CTFS,将,原函数在一个周期内离散化,,即用向量表达。再利用上述3 的命令即可。,7.2 Matlab分析周期信号的频谱,20,三、用 FFT 实现周期信号的频谱分析,向量表示周期函数,离散化周期函数,fft()计算傅里叶系数,调整傅里叶级数,绘图,向量形式的函数文件,Y=fft(X,n),returns the n-point DFT.,Y=fftshift(X),rearranges the outputs of fft,fft2,and fftn by moving the zero-frequency component to the center of the array.It is useful for visualizing a Fourier transform with,the zero-frequency,component,in the middle of the spectrum.,X=0 1 2 3 4 5 6 7 7 9 10 11 12 13 14,fftshift(X),ans=7 9 10 11 12 13 14 0 1 2 3 4 5 6 7,7.2 Matlab分析周期信号的频谱,21,例7.2 用fft分析淹没在噪声中的50Hz和150H在信号,clc;clear;,fs=100;N=1024;%,采样频率数据点数,n=0:N-1;,t=n/fs;%,时间序列,f=n*fs/N;%,频率序列,x=1+sin(2*pi*15*t)+3*sin(2*pi*40*t);%,信号,Cn=fft(x,N)/N;%,快速傅里叶变换,z_cn=find(abs(Cn)=-tao/2,x(ii)=ones(size(ii).*A;x(t=0)=1;,return,调用CTFSfft,7.2 Matlab分析周期信号的频谱,24,7.2 Matlab分析周期信号的频谱,25,7.3,用MATLAB分析典型周期信号的频谱,7.3.1 MATLAB实现周期,方波,脉冲频谱,Duty cycle=1/2,例题7.4 周期方波的频谱分析,T=5 s,占空比=0.5,幅度=1,function y,tao=fun_ex0704(t,T),%产生方波脉冲;它由符号变量和表达式写成。,%M为脉冲占空比;,%tao为脉冲宽度;,%a为脉冲半宽度;,%y一个周期的符号函数表达式。,syms a t,%M=input(duty cycle脉冲占空比M=);,M=0.5;A=1;,tao=T*M;,a=tao/2;,y=heaviside(t)*A-heaviside(t-tao)*A;,return,调用,CTFSshbpsym,周期方波信号频谱与周期矩形脉冲信号具有相同的规律;,频谱的第一个过零点内只有两根谱线。,26,例题7.4 周期方波的理论推算,7.3,用MATLAB分析典型周期信号的频谱,27,调用Ex07_04.m,7.3,用MATLAB分析典型周期信号的频谱,28,例题7.5 周期方波的频谱分析;T=5 s,幅度=1,function y=fun_ex0705(t,T),syms a a1,%T=input(please Input 信号的周期T=);,global T,M=input(duty cycle脉冲占空比M=);,A=1;tao=T*M;a=tao/2;,y1=sym(Heaviside(t+a1)*A;,y=y1-sym(Heaviside(t-a1)*A;,y=subs(y,a1,a);,y=simple(y);,return,调用,Ex07_05.m,7.3.2周期三角波脉冲的频谱,7.3,用MATLAB分析典型周期信号的频谱,29,7.3,用MATLAB分析典型周期信号的频谱,30,
展开阅读全文