📄 pulse.asv
字号:
function [y,m]=pulse(x,m,Kmod);
%用法是输入pulse(str2cod('字符串'),16,2)
%x代表二进制码流的向量,m=fs/fb,其中fs是采样率,fb是比特率,即信息传输速率;
%Kmod代表数字基带信号的类型:1为单极性不归零码;2为双极性不归零码;3为单极性归零码;4为双极性归零码;5为曼彻斯特双极性码;
%y是输出的数字基带信号,输入默认值是x=randint(1,32);m=16;Kmod=1;
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; %rem函数用来求Kmod/5的余数
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(1); x1=rem(cumsum(x1),2)*2-1; xx=x;
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是截尾取整函数
%.....................................................................
if nargin<1;
subplot(2,1,1); plot(1+(1:length(y))/m,y);hold on;
v=axis; axis([v(1:2)-1.2 1.5]); zoom xon; %zoom函数是将图形放大
if Kmod==2|Kmod==0;
plot([0 v(2)],[0 0],':');
end; hold off;
set(gcf,'num','off','name', ...
['Binary Pulse Generator,' tsrt ',' blanks(10) ...
'BBI 200']);
for i=1:length(x);
text(i+di,1.3,int2str(x(i)),'color','b');
end;
title('Pulse Signal');
n=length(y); y=ffy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -