⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex0801.m

📁 通信课程仿真
💻 M
字号:
%  [ex8.1] 周期矩形脉冲函数的合成
function [A_sym,B_sym]=CTFShchsym
% 采用符号计算求一个周期内连续时间函数f的三角级数展开系数,再用这些
%  展开系数合成连续时间函数f.傅立叶级数
%	函数的输入输出都是数值量
% 	Nf=6	谐波的阶数
%	Nn		输出数据的准确位数
%	A_sym	第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数
%	B_sym	第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数
%   tao=1   tao/T=0.2
syms t  n   k  x 
T=5;tao=0.2*T;a=0.5;
if nargin<4;Nf=6;end
if nargin<5;Nn=32;end
x=time_fun_x(t);
A0=2*int(x,t,-a,T-a)/T;                                        %求出三角函数展开系数A0
As=int(2*x*cos(2*pi*n*t/T)/T,t,-a,T-a);     %求出三角函数展开系数As
Bs=int(2*x*sin(2*pi*n*t/T)/T,t,-a,T-a);       %求出三角函数展开系数Bs
A_sym(1)=double(vpa(A0,Nn));                    %获取串数组A0所对应的ASC2码数值数组
for k=1:Nf
   A_sym(k+1)=double(vpa(subs(As,n,k),Nn));        %获取串数组A所对应的ASC2码数值数组
   B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn)); end       %获取串数组B所对应的ASC2码数值数组
   if nargout==0 
c=A_sym;disp(c)   %输出c为三角级数展开系数:第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数
d=B_sym;disp(d)   %输出d为三角级数展开系数:  第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数    
    t=-8*a:0.01:T-a;
  f1=0.2/2+0.1871.*cos(2*pi*1*t/5)+0.*sin(2*pi*1*t/5); ;      % 基波
  f2=0.1514.*cos(2*pi*2*t/5)+0.*sin(2*pi*2*t/5); ;                 % 2次谐波
  f3=0.1009.*cos(2*pi*3*t/5)+0.*sin(2*pi*3*t/5);                 % 3次谐波
  f4=0.0468.*cos(2*pi*4*t/5)+0.*sin(2*pi*4*t/5); ;               % 4次谐波
  f5=-0.0312.*cos(2*pi*6*t/5)+0.*sin(2*pi*6*t/5);                % 6次谐波
 f6=f1+f2;           % 基波+2次谐波
 f7=f6+f3;          % 基波+2次谐波+3次谐波
 f8=f7+f4+f5;     % 基波+2次谐波+3次谐波+4次谐波+6次谐波 
subplot(2,2,1)
plot(t,f1),hold on
y=time_fun_e(t)            %调用连续时间函数-周期矩形脉冲
plot(t,y,'r:')
title('周期矩形波的形成—基波')
axis([-4,4.5,-0.1,1.1])
subplot(2,2,2)
plot(t,f6),hold on
y=time_fun_e(t)
plot(t,y,'r:')
title('周期矩形波的形成—基波+2次谐波')
axis([-4,4.5,-0.1,1.1])
subplot(2,2,3)
plot(t,f7),hold on
y=time_fun_e(t)
plot(t,y,'r:')
title('基波+2次谐波+3次谐波')
axis([-4,4.5,-0.1,1.1])
subplot(2,2,4)
plot(t,f8),hold on
y=time_fun_e(t)
plot(t,y,'r:')
title('基波+2次谐波+3次谐波+4次谐波+6次谐波')
axis([-4,4.5,-0.1,1.1])
end

%-------------------------------------------
function x=time_fun_x(t)
% 该函数是CTFShchsym.m的子函数。它由符号变量和表达式写成。
h=1;  
x1=sym('Heaviside(t+0.5)')*h;
x=x1-sym('Heaviside(t-0.5)')*h;

%-------------------------------------------
function y=time_fun_e(t)
% 该函数是CTFShchsym.m的子函它由符号函数和表达式写成
a=0.5;T=5;h=1;tao=0.2*T;t=-8*a:0.01:T-a;
e1=1/2+1/2.*sign(t+tao/2);
e2=1/2+1/2.*sign(t-tao/2);
y=h.*(e1-e2);      %连续时间函数-周期矩形脉冲

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -