通信原理课程设计1由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“通信原理课程设计一”。
附录Ⅰ:数字基带信号的仿真代码与结果 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);