当前位置:   article > 正文

MATLAB信号与系统分析(五)——连续时间信号的频谱分析

用符号 matlab 计算连续时间周期信号的傅里叶级数系数并画出其幅度 线谱和相位线

一、实验目的:

1、掌握傅立叶级数(FS),学会分析连续时间周期信号的频谱分析及MATLAB实现;

2、掌握傅立叶变换(FT),了解傅立叶变换的性质以及MATLAB实现。

 

二、利用符号运算求傅里叶级数的系数

1、复习几个函数:

F1=int(f,v,a,b) — 对f表达式的v变量在(a,b)区间求定积分
F2=subs(s,OLD,NEW)-用新变量NEW代替S中的指定变量OLD。
F3=vpa(x,n) : 显示可变精度计算;x为符号变量,n表示要精确计算的位数。

 

2、周期函数的傅里叶级数的形式

image

 

3、利用符号运算求傅立叶级数的系数

image

image

代码抄袭如下:

%ex_1
%求系数
clear all; syms t x n t0;
T=10;    % 信号周期
tao_2=0.5; %脉冲宽度
Nf=7; % 分解的最高级数
Nn=6; % 有效位数

x=heaviside(t+t0)-heaviside(t-t0); % 注意:Ver 2011b
x=subs(x,t0,tao_2)  

A0=int(x,t,-tao_2,T-tao_2)/T % a0

As=int(x*2*cos(2*pi*n*t/T)/T,t,-tao_2,T-tao_2) % an

Bs=int(x*2*sin(2*pi*n*t/T)/T,t,-tao_2,T-tao_2) % bn

Fn=(As-j*Bs)/2 % fn

A(1)=double(vpa(A0,Nn)); % 直流分量
for k=1:Nf
     A(k+1)=double(vpa(subs(As,n,k),Nn));
     B(k+1)=double(vpa(subs(Bs,n,k),Nn));
end
A
B
%求各次谐波::开始采用数值处理方法
t1=-T/2:0.01:T/2;
f0=A(1);                                             %直流分量
f1=A(2).*cos(2*pi*1*t1/T)+B(2).*sin(2*pi*1*t1/T); ;      % 基波
f2=A(3).*cos(2*pi*2*t1/T)+B(3).*sin(2*pi*2*t1/T); ;                 % 2次谐波
f3=A(4).*cos(2*pi*3*t1/T)+B(4).*sin(2*pi*3*t1/T);                 % 3次谐波
f4=A(5).*cos(2*pi*4*t1/T)+B(5).*sin(2*pi*4*t1/T); ;               % 4次谐波
f5=A(6).*cos(2*pi*5*t1/T)+B(6).*sin(2*pi*5*t1/T);                % 5次谐波
f6=A(7).*cos(2*pi*6*t1/T)+B(7).*sin(2*pi*6*t1/T);               % 6次谐波  
f7=f1+f2+f0;                      % 基波+2次谐波
f8=f7+f3+f0;                     % 基波+2次谐波+3次谐波
f9=f8+f4+f6+f0;                 % 基波+2次谐波+3次谐波+4次谐波+6次谐波 
%画出谐波图形
y=subs(x,t,t1);         %调用连续时间函数-周期矩形脉冲
subplot(2,2,1),plot(t1,f1),hold on;plot(t1,y,'r:');title('周期矩形波的形成—基波'),axis([-2.5,2.5,-0.5,1.1])
subplot(2,2,2),plot(t1,f7),hold on;plot(t1,y,'r:');title('周期矩形波的形成—基波+2次谐波'),axis([-2.5,2.5,-0.5,1.1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/106576
推荐阅读
相关标签
  

闽ICP备14008679号