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

📄 ex0805.m

📁 通信课程仿真
💻 M
字号:
%  [ex8.5] 周期三角波双边脉冲频谱
function [A_sym,B_sym]=CTFSsjbshb(T,Nf)
% 采用符号计算求[0,T]内时间函数的三角级数展开系数。
%				函数的输入输出都是数值量
% 	Nf		谐波的阶数
%	Nn		输出数据的准确位数
%	A_sym	第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数
%	B_sym	第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数
syms t  n  k  y 
T=5;
if nargin<4;Nf=input('plear Input 所需展开的最高谐波次数:');end
T=5;
if nargin<5;Nn=32;end
y=time_fun_s(t);
A0=2*int(y,t,0,T)/T;
As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);
Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);
A_sym(1)=double(vpa(A0,Nn));
for k=1:Nf
   A_sym(k+1)=double(vpa(subs(As,n,k),Nn));
   B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));end
   if nargout==0 
      S1=fliplr(A_sym)                          %对A_sym阵左右对称交换  
      S1(1,k+1)=A_sym(1)   %A_sym的1*k阵扩展为1*(k+1)阵
      S2=fliplr(1/2*S1)        %对扩展后的S1阵左右对称交换回原位置
    S3=fliplr(1/2*B_sym)      %对B_sym阵左右对称交换  
    S3(1,k+1)=0        %B_sym的1*k阵扩展为1*(k+1)阵
    S4=fliplr(S3)        %对扩展后的S3阵左右对称交换回原位置
    S5=S2-i*S4;        %用三角函数展开系数A、B值合成付立叶指数系数
    S6=fliplr(S5);     %对付立叶指数复系数S6阵左右对称交换位置
    N=Nf*2*pi/T;
    k2=-N:2*pi/T:N;     %形成-N:N的变量
    S7=[S6,S5(2:end)];  %形成-N:N的付立叶指数对称复系数
     subplot(3,3,3)
    x=sjb_timefun(t,T)             %调用连续时间函数-周期三角波脉冲
    T=5;t=-2*T:0.01:2*T;
    plot(t,x)
    title('连续时间函数-周期三角波脉冲')
    axis([-10,10,-1,1.2])
    line([-10,10],[0,0])
    subplot(3,1,3),
    stem(k2,abs(S7));  %画出周期三角脉冲的频谱(脉宽a=T/2)
   title('连续时间函数周期三角脉冲的双边幅度谱')
   axis([-80,80,0,0.25])
   end   
   %-------------------------------------------
function y=time_fun_s(t)
% 该函数是CTFSsjbshb.m的子函数。它由符号变量和表达式写成。
syms a a1
T=5;a=T/2;
y1=sym('Heaviside(t+a1)')*(2*t/a1+1)+sym('Heaviside(t-a1)')*(2*t/a1-1);
y=y1-sym('Heaviside(t)')*(4*t/a1);
y=subs(y,a1,a);
y=simple(y);

%------------------------------
function x=sjb_timefun(t,T)
% 该函数是CTFSsjbshb.m的子函数。它由三角波脉冲函数写成。
T=5;t=-2*T:0.01:2*T;
x=sawtooth(t-2*T/3,0.5);

⌨️ 快捷键说明

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