3程序
1)基础题
function rate=jct(m,code_length,a) % clear all;close all;clc; % m=50;
% code_length=20; %信息码元个数 % N=1:code_length;
rand('seed',0);
x=sign(rand(1,code_length)-0.5); %信息码%产生在-1到=+1之间的随机数 for i=1:20
s((1+(i-1)*m):i*m)=x(i); %每个信息码元内含m 个采样点 end
% figure(1); % stem(s);
% title('调制器')
% xlabel('code_length*m');ylabel('幅度'); %加噪声
%a=1
noise=(rand(1,m*code_length)-0.5)*a*2; tran=noise+s; % figure(2) % stem(tran);
% title('噪声发生器')
% xlabel('code_length*m');ylabel('幅度'); %解调
for i=1:20
d(i)=sign(sum(tran((1+(i-1)*m):i*m))); end
% figure(3) % stem(d); % title('解调器')
% xlabel('code_length');ylabel('幅度'); %第四步 for i=1:20
if (d(i)<0) z(i)=0; else z(i)=1; end end
11
% figure(4) % stem(z);
% title('检测器')
% xlabel('code_length');ylabel('幅度'); count=0; for i=1:20
if(x(i)~=z(i))
count=count+1; end end
rate=count/code_length; %figure(5) %stem(rate);
-------------------------------- clear all;close all;clc; m=50;
code_length=20; for a=0:50
rate(a+1)=jct(m,20,a); end
figure(1) plot(rate);
title('错误率')
xlabel('a');ylabel('误码率');
截图:
调制器10.80.60.40.2度幅0-0.2-0.4-0.6-0.8-101002003004005006007008009001000codelength*m噪声发生器21.510.5度幅0-0.5-1-1.5-201002003004005006007008009001000codelength*m 12
解调器10.80.60.40.2幅度检波器10.90.80.70.6幅度0-0.2-0.4-0.6-0.8-1024681012codelength141618200.50.40.30.20.10024681012codelength14161820
错误率0.40.350.30.25误码率0.20.150.10.0500102030a405060
改变a值 M=50
2)提高题
function rate=tgt(m,20,a) %clear all;close all;clc; %产生伪随机码 % m=8;
% code_length=20; %信息码元个数 % N=1:code_length; rand('seed',0);
x=sign(rand(1,code_length)-0.5); %信息码%产生在-1到=+1之间的随机数 for i=1:20
s((1+(i-1)*m):i*m)=x(i); %每个信息码元内含m 个采样点 %调制
13
x_code=sign(rand(1,m)-0.5); %把0,1 序列码变换为-1,1 调制码 w_code((1+(i-1)*m):i*m)=s((1+(i-1)*m):i*m).*x_code; %每个伪码码元内含8 个采样点 end
% figure(1)
% stem(w_code);
% title('加伪随机序列调制')
% xlabel('code_length*m');ylabel('幅度'); %加sin噪声
t=0:m*code_length-1; p=(m+1)*sin(pi/20*t); a=1;
noise=(rand(1,m*code_length)-0.5)*2*a;%噪声调幅干扰 receive=w_code+noise+p; %解调
for i=1:20
d(i)=sign(sum(receive((1+(i-1)*m):i*m).* x_code)); end
% figure(2) c=s.*receive;
% stem(c);
% title('加伪随机序列解制')
% xlabel('code_length*m');ylabel('幅度'); for i=1:20 if (d(i)<0) z(i)=-1; else
z(i)=1; end end
count=0; for i=1:20 if x(i)~=z(i) count=count+1; end end
rate=count/code_length;; -------------------------- clear all;close all;clc; a=100;
for m=1:1000;
rate(m)=tgt(m,20,a); rate1(m)=jct(m,20,a);
14
end
figure(1) subplot(211) plot(rate1);
title('不加伪随机序列执行仿真系统') xlabel('m');ylabel('误码率'); subplot(212) plot(rate);
title('加伪随机序列执行仿真系统') xlabel('m');ylabel('误码率');
截图:
一题截图:
加伪随机序列调制10.80.60.40.2幅度加伪随机序列解制15105幅度0-0.2-0.4-0.6-0.8-1020406080100codelength*m1201401600-5-10-15020406080100codelength*m120140160
二题截图:
不加伪随机序列执行仿真系统0.90.8误码率0.70.60.50100200300500600700m加伪随机序列执行仿真系统40080090010000.80.6误码率0.40.200100200300400500m6007008009001000
15