附录Ⅰ:数字基带信号的仿真代码与结果 function[f,sf]=T2F(t,st) dt=t(2)-t(1); T=t(end); df=1/T; N=length(st); f=-N/2*df:df:N/2*df-df; sf=fft(st); sf=T/N*fftshift(sf); end %在把序列d插入到序列M中,得到一个新序列 function [out]=sigexpand(d,M)
N=length(d); out=zeros(M,N); out(1,:)=d; out=reshape(out,1,M*N);
%数字基带信号的功率谱密度 digit_baseband.m clear all; close all; Ts=1;%每个码元的长度
N_sample=8;%每个码元的抽样点数 dt=Ts/N_sample;%抽样时间间隔 N=1000;%码元数
t=0:dt:(N*N_sample-1)*dt;%1x8000 T=t(end);
gt1=ones(1,N_sample);%1x8 gt2=ones(1,N_sample/2); % 1x4?1x8? gt2=[gt2 zeros(1,N_sample/2)];%1x8 mt3=sinc((t-5)/Ts);% 1x8000 sin(pi*t/Ts)/(pi*t/Ts)波形
gt3=mt3(1:10*N_sample);%截段取10个码元
d=(sign(randn(1,N))+1)/2;%1x1000 d=?? data=sigexpand(d,N_sample);%插入N_sample-1个0 gt4=ones(1,N_sample); gt5=ones(1,N_sample/2); gt5=[gt5 zeros(1,N_sample/2)];
st1=conv(data,gt1);%调用Matlab的卷积函数conv st2=conv(data,gt2); d=2*d-1; % 变成双极性序列
data=sigexpand(d,N_sample); st3=conv(data,gt3); st4=conv(data,gt4);
st5=conv(data,gt5);
[f,st1f]=T2F(t,[st1(1:length(t))]); [f,st2f]=T2F(t,[st2(1:length(t))]); [f,st3f]=T2F(t,[st3(1:length(t))]); [f,st4f]=T2F(t,[st4(1:length(t))]); [f,st5f]=T2F(t,[st5(1:length(t))]);
figure(1) subplot(321)
plot(t,[st1(1:length(t))]); axis([0 20 -1.5 1.5]);
xlabel(\'单极性NRZ波形\');grid subplot(322);
plot(f,10*log10(abs(st1f).^2/T));grid axis([-5 5 -40 10]);
xlabel(\'单极性NRZ功率谱密度(dB/Hz)\');
subplot(323)
plot(t,[st2(1:length(t))]);grid axis([0 20 -1.5 1.5]);
xlabel(\'单极性RZ波形\');
subplot(324);
plot(f,10*log10(abs(st2f).^2/T));grid axis([-5 5 -40 10]);
xlabel(\'单极性RZ功率谱密度(dB/Hz)\');
subplot(325)
plot(t-5,[st3(1:length(t))]);grid axis([0 20 -2 2]);
ylabel(\'双极性sinc波形\');xlabel(\'t/Ts\'); subplot(326);
plot(f,10*log10(abs(st3f).^2/T));grid
axis([-5 5 -40 10]);
ylabel(\'sinc波形功率谱密度(dB/Hz)\');xlabel(\'f*Ts\');
figure(2)
subplot(221)
plot(t,[st4(1:length(t))]); axis([0 20 -1.5 1.5]);
xlabel(\'双极性NRZ波形\');grid subplot(222);
plot(f,10*log10(abs(st4f).^2/T));grid axis([-5 5 -40 10]);
xlabel(\'双极性NRZ功率谱密度(dB/Hz)\');
subplot(223)
subplot(224); plot(t,[st5(1:length(t))]);grid plot(f,10*log10(abs(st5f).^2/T));grid axis([0 20 -1.5 1.5]);
axis([-5 5 -40 10]); xlabel(\'双极性RZ波形\'); xlabel(\'双极性RZ功率谱密度(dB/Hz)\');
附录Ⅱ:数字基带信号接收的仿真代码与结果
%数字基带信号接收示意图 digit_receive.m gt=ones(1,N_sample); N=100; d=sign(randn(1,N)); N_sample=8; a=sigexpand(d,N_sample); Ts=1;
st=conv(a,gt); dt=Ts/N_sample;
t=0:dt:(N*N_sample-1)*dt;
ht1=gt;
rt1=conv(st,ht1);
dd=rt1(N_sample:N_sample:end); ht2=5*sinc(5*(t-5)/Ts); ddd=sigexpand(dd,N_sample); rt2=conv(st,ht2); stem(t,ddd(1:length(t))/8);
axis([0 20 -1.5 1.5]); figure(1) xlabel(\'方波滤波后抽样输出\'); subplot(321);
plot(t,st(1:length(t))); subplot(325); axis([0 20 -1.5 1.5]);
plot(t-5,[0 rt2(1:length(t)-1)]/8); xlabel(\'输入双极性NRZ数字基带波形\'); axis([0 20 -1.5 1.5]); subplot(322);
xlabel(\'t/Ts\'); stem(t,a);
ylabel(\'理想低通滤波后输出\'); axis([0 20 -1.5 1.5]); subplot(326); xlabel(\'输入数字序列\'); dd=rt2(N_sample-1:N_sample:end);
ddd=sigexpand(dd,N_sample); subplot(323);
stem(t-5,ddd(1:length(t))/8); plot(t,[0 rt1(1:length(t)-1)]/8); axis([0 20 -1.5 1.5]); axis([0 20 -1.5 1.5]);
xlabel(\'t/Ts\'); xlabel(\'方波滤波后输出\'); ylabel(\'理想低通滤波后抽样输出\'); subplot(324);
附录Ⅲ: 升余弦滚降系统仿真代码与结果
%升余弦滚降系统示意图 raisecos.m Ts=1;
N_sample=17; dt=Ts/N_sample; df=1.0/(20.0*Ts);
t=-10*Ts:dt:10*Ts; f=-2/Ts:df:2/Ts;
alpha=[0,0.5,1]; for n=1:length(alpha)
for k=1:length(f)
if abs(f(k))>0.5*(1+alpha(n))/Ts
Xf(n,k)=0;
elseif abs(f(k))
Xf(n,k)=Ts;
else
Xf(n,k)=0.5*Ts*(1+cos(pi*Ts/(alpha(n)+eps)*(abs(f(k))-0.5*(1-alpha(n))/Ts)));
end end xt(n,:)=sinc(t/Ts).*(cos(alpha(n)*pi*t/Ts))./(1-4*alpha(n)^2*t.^2/Ts^2+eps); end
figure(1) plot(f,Xf); axis([-1 1 0 1.2]); xlabel(\'f/Ts\'); ylabel(\'升余弦滚降频谱\'); figure(2) plot(t,xt); axis([-10 10 -0.5 1.1]); xlabel(\'t\'); ylabel(\'升余弦滚降波形\');
附录Ⅳ:升余弦滚降的PAM信号仿真代码与结果
T=N/fs function s=f2t(S,fs)
t=[-(T/2):1/fs:(T/2-1/fs)];
N=length(S);
tmp1=fft(S)/T;
tmp2=N*ifft(S)/T;
s(1:N/2)=tmp1(N/2+1:-1:2);
s(N/2+1:N)=tmp2(1:N/2);
s=s.*exp(-j*pi*t*fs); end
function S=t2f(s,fs) %s为输入信号,S为s的频谱,close all N=256; M=16; L=N/M;
T=M; fs=N/T;
f=[-N/2:(N/2-1)]/T; fs为采样率; N=length(s); T=1/fs*N; f=[-N/2:(N/2-1)]/T; tmp1=fft(s)/fs; tmp2=N*ifft(s)/fs; S(1:N/2)=tmp2(N/2+1:-1:2); S(N/2+1:N)=tmp1(1:N/2); S=S.*exp(j*pi*f*T); end %升余弦滚降的PAM信号 clear all
t=[-(T/2):1/fs:(T/2-1/fs)];
G=zeros(1,N); G=cos(pi*f/2).^2; G(abs(f)>1)=0; a=1-2*(rand(1,M)>0.5); delta=zeros(1,N); delta(L/2:L:N)=a*fs; S=t2f(delta,fs).*G; s=real(f2t(S,fs)); plot(t,s)
附录Ⅴ:最佳基带传输系统的仿真
1、无码间干扰的的基带传输系统
function s=f2t(S,fs)
N=length(S);
T=N/fs
t=[-(T/2):1/fs:(T/2-1/fs)];
tmp1=fft(S)/T;
tmp2=N*ifft(S)/T;
s(1:N/2)=tmp1(N/2+1:-1:2);
s(N/2+1:N)=tmp2(1:N/2);
s=s.*exp(-j*pi*t*fs); end
%s为输入信号,S为s的频谱,fs为采样率; function S=t2f(s,fs) N=length(s); T=1/fs*N; f=[-N/2:(N/2-1)]/T; tmp1=fft(s)/fs; tmp2=N*ifft(s)/fs; S(1:N/2)=tmp2(N/2+1:-1:2); S(N/2+1:N)=tmp1(1:N/2); S=S.*exp(j*pi*f*T); end clear all; close all; N=2^13; L=16; M=N/L; Rs=2; Ts=1/Rs; fs=L/Ts; Bs=fs/2; T=N/fs; t=-T/2+[0:N-1]/fs;
f=-Bs+[0:N-1]/T; alpha=0.5;
Hcos=zeros(1,N);
ii=find(abs(f)>(1-alpha)/(2*Ts)&abs(f)
Hcos(ii)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(ii))-(1-alpha)/(2*Ts))));
ii=find(abs(f)
Hrcos=sqrt(Hcos); EP=zeros(1,N); for loop=1:2000
a=sign(randn(1,M));
s1=zeros(1,N);
s1(1:L:N)=a*fs;
S1=t2f(s1,fs);
S2=S1.*Hrcos;
s2=real(f2t(S2,fs));
P=abs(S2).^2/T;
EP=EP*(1-1/loop)+P/loop;
if rem(loop,100)==0
fprintf(\'\\n % d\',loop)
end
end
N0=0.01;
nw=sqrt(N0*Bs)*randn(1,N);%高斯白噪声 r=s2+nw;%接收信号 R=t2f(r,fs);
Y=R.*Hrcos; %匹配滤波 y=real(f2t(Y,fs)); plot(f,EP)
axis([-2,2 0,max(EP)])
eyediagram(y,3*L,3,9);
2、有码间干扰的的基带传输系统
clear all; for loop=1:2000 close all;
a=sign(randn(1,M)); N=2^13;
s1=zeros(1,N); L=16;
s1(1:L:N)=a*fs; M=N/L;
S1=t2f(s1,fs); Rs=2;
S2=S1.*Hrcos; Ts=1/Rs;
s2=real(f2t(S2,fs)); fs=L/Ts;
Bs=fs/2;
P=abs(S2).^2/T; T=N/fs;
EP=EP*(1-1/loop)+P/loop; t=-T/2+[0:N-1]/fs;
if rem(loop,100)==0 f=-Bs+[0:N-1]/T;
fprintf(\'\\n % d\',loop) alpha=0.5;
end Hcos=zeros(1,N);
end Ts1=Ts*1.2
N0=0.01; ii=find(abs(f)>(1-alpha)/(2*Ts1)&abs(f)
r=s2+nw;%接收信号 Hcos(ii)=Ts1/2*(1+cos(pi*Ts1/alpha*(abs(f(ii))-(1-alpR=t2f(r,fs); ha)/(2*Ts1))));
Y=R.*Hrcos; %匹配滤波 ii=find(abs(f)
axis([-2,2 0,max(EP)]) Hrcos=sqrt(Hcos); eyediagram(y,3*L,3,9); EP=zeros(1,N);