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

📄 pulse.m

📁 交全面的给出了好几种调制解调方案的matlab代码,又ASK,BPSK,FSK,QAM等的源代码 对通信领域的研究人员很有帮助
💻 M
字号:
function [y,m]=pulse(x,m,Kmod);
%
% Usage:y=pulse(x,m,Kmod);  BBI 2000
% ;x代表二进制码流的向量;m=fs/fb,其中fs为采样频率,fb为比特率,m要为整数,Kmod代表数字基带信号的类型;
if nargin<3;Kmod=1; end ;
if nargin<2;m=16;    end;
if nargin<1;x=randint(1,32);end;
di=.5; Kmod=rem(Kmod,5);Kmod=(Kmod==0)*5+Kmod;
if Kmod==1;
    xx=[x;x];xx=xx(:)';tstr='Unipolor NRZ';
elseif Kmod==2;
     xx=[x;x];xx=2*xx(:)'-1;tstr='Polor NRZ';
 elseif Kmod==3;
     xx=[x;zeros(size(x))];xx=xx(:)';di=.2;tstr='Unipolor RZ';
 elseif Kmod==4;
     I=find(x==1);x1=x(I);x1=rem(cumsum(x1),2)*2-1;xx=x;%rem 模2减,cumsum 逐级累加
     xx(I)=x1;
     xx=[xx;zeros(size(x))];xx=xx(:)';di=.2;tstr='Bipolor RZ';
 elseif Kmod==5;
     xx=[x;rem(x+1,2)];xx=2*xx(:)'-1;tstr='Manchester NRZ';
 end;
 y=xx;
 for i=1:fix(m/2)-1;y=[y;xx];end;y=y(:)';%fix取靠近0的整数
 %-------------------------------------------------------------------------
 if nargout<1;
    subplot(211);plot(1+(1:length(y))/m,y);hold on ;
     v=axis;axis([v(1:2) -1.2 1.5]);zoom xon;
     if Kmod==2|Kmod==0;
         plot([0 v(2)],[0 0],':');
     end; hold off;
     set(gcf,'num','off','name',...
         ['Binary Pulse Generator','tstr','blanks(10)'...
             'BBI 2000']);
     for i=1:length(x);
         text(i+di,1.3,int2str(x(i)),'color','b');%在涂上标识二进制码
     end;
     title('Pulse Signal');
     n=length(y);y=fft(y)/n;y=abs(y(1:fix(n/2)))*2;
     I=find(y<1e-04);y(I)=1e-04;y=20*log10(y);
     f1=m/n;f=0:f1:(length(y)-1)*f1;
     subplot(212); plot(f,y,'r');
     title('Power Spectrum');xlabel('f/fb');
 end;
 

⌨️ 快捷键说明

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