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

📄 +

📁 升余弦滚降系统的源程序 matlab程序示例
💻
字号:
(一),用到的函数

1,f2t函数。

   function x=f2t(X)

   global dt df t f T N

   %x=f2t(X)

   %x为时域的取样值矢量

   %X为x的傅氏变换

   %X与x长度相同并为2的整幂

   %本函数需要一个全局变量dt(时域取样间隔)

   X=[X(N/2+1:N),X(1:N/2)];

   x=ifft(X)/dt;

   end

 

2,t2f函数。

   function X=t2f(x)

   global dt df N t f T

   %X=t2f(x)

   %x为时域的取样值矢量

   %X为x的傅氏变换

   %X与x长度相同,并为2的整幂。

   %本函数需要一个全局变量dt(时域取样间隔)

   H=fft(x);

   X=[H(N/2+1:N),H(1:N/2)]*dt;

   end

(二),主程序

   global dt t df N

   close all

   k=input('取样点数=2^k, k取13左右');

   if isempty(k), k=13; end

   z=input('每个信号取样点数=2^z, z<k');

   if isempty(z), z=5; end

   aa=input('滚降系数=[0.5]');

   if aa==[],aa=0.5;end

   N=2^k;

   L=2^z;M=N/L;

   Na=4;                          %示波器扫描宽度为4个码元

   Rb=2;                         %码速率是2Mb/s

   Ts=1/Rb;                       %码元间隔

   dt=Ts/L;                       %时域采样间隔

   df=1/(N*dt);                   %频域采样间隔

   T=N*dt;                        %截短时间

   Bs=N*df/2;                     %系统带宽

   f=[-Bs+df/2:df:Bs];            %频域横坐标

   t=[-T/2+dt/2:dt:T/2];          %时域横坐标

   g=sin(pi*t/Ts).*cos(pi*t*aa/Ts)./[pi*t/Ts.*(1-4*t.^2*aa^2/Ts^2)];%升余弦脉冲波形

   GG=t2f(g); 

   EP=zeros(size(f))+eps;

   for ii=1:30

   b=sign(randn(1,M))+1;          %发送码元取值为0、2

   s=zeros(1,N);                  %产生冲激序列

   s(L/2:L:N)=b;

   SS=t2f(s);

   S=SS.*GG;                      %升余弦信号的傅氏变换

   a=f2t(S);                      %升余弦信号的时域波形

   a=real(a);

   P=S.*conj(S)/T;                %升余弦信号的功率谱

   EP=(EP*(ii-1)+P+eps)/ii;

   figure(1)                      %输出的功率画图

   plot(f,10*log10(EP),'b');

   grid

   axis([-3,+3,-100,20])

   xlabel('f (KHz)');ylabel('Ps(f) (dBm/MHz)') ;title('功率谱图')

   figure(2)

   hold on

   tt=[0:dt:Na*L*dt];              %系统的眼图画图    

   for jj=1:Na*L:N-Na*L

   plot(tt,a(jj:jj+Na*L));title('升余弦滚降波形的眼图');

   end

   end
 

⌨️ 快捷键说明

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