混沌通信中QCSK调制matlab代码
clear all;
x=randsrc(20,1,[0:1]); %产生二进制随机码stairs(x);
axis([0,20,-0.1,1.1]);
title('二进制随机序列');
clc
clear
close all
% q=99;
%k=[1:99];
%x(k)=sin(k*pi/q);
x(1)=0.212345;
x(k+1) =4 * x(k) * (1 - x(k)); end
plot(x);
legend('混沌信号x');
grid on;%加网格
clc
clear
close all
% q=99;
%k=[1:99];
%x(k)=sin(k*pi/q);
x(1)=0.212345;
x(k+1)=4*x(k)*(1-x(k)); end
y=hilbert(x);
figure(1)
plot(imag(y));
legend('希尔伯特变换y'); grid on
clc
clear
close all
% q=99;
%x(k)=sin(k*pi/q);
x(1)=0.212345;%x的初植
for k=1:99;
x(k+1)=4*x(k)*(1-x(k)); end
y=hilbert(x);%x的希尔伯特变换figure(1)
plot(imag(y));
grid on
legend('加密后的信号ms');
clc
clear
close all
% q=99;
%k=[1:99];
%x(k)=sin(k*pi/q);
x(1)=0.212345;
for k=1:99;
x(k+1)=4*x(k)*(1-x(k));
end
y=hilbert(x);%希尔伯特变换
figure(1)
plot(imag(y));
grid on
legend('加密后的信号ms');
y2=AWGN(imag(y),0.8,1);%imag(y)为已调信号,0.8为信噪比,1为信号功率
figure(2)
plot(y2);
grid on
legend('加噪声后的调制信号y2');
bs=1; Eb=1;
Zb=bs.*Eb;%解调出的信号
stem(Zb,'r');
title('解调出的信号Zb')
clc;
x=0:18;%信噪比的取植范围
xSNR=10.^(x/20);%化成dB形式
for i=1:length(x);
k=2;
y1(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+k*((1/xSNR( i))^2))));%求k=2的系统理论的误码率
end
semilogy(x,y1);%绘出x和y1的图
for i=1:length(x)
hold on;
plot(x(i),y1(i),'g*')
end
gtext('QCSK,K=2');%在光标的位置放置给定的文字
for i=1:length(x);
k=16;
y2(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+k*((1/xSNR( i))^2))));%求k=16的系统理论的误码率
end
semilogy(x,y2);%绘出x和y2的图
for i=1:length(x)
hold on;
plot(x(i),y2(i),'r.')
end
gtext('QCSK,K=16');
for i=1:length(x);
k=64;
y3(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+k*((1/xSNR( i))^2))));%求k=64的系统理论的误码率
end
semilogy(x,y3);%绘出x和y3的图for i=1:length(x)
hold on;
plot(x(i),y3(i),'b+')
end
gtext('QCSK,K=64');
grid on
xlabel('Eb/No[dB]');
ylabel('BER');
title('QCSK的系统误码率');
clc;
x=0:18;%信噪比的取植范围
xSNR=10.^(x/20);%化成dB形式
for i=1:length(x);
k=2;
y1(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+k*((1/xSNR( i))^2))));%求QCSK,k=2的系统理论的误码率end
semilogy(x,y1);
for i=1:length(x)
hold on;
plot(x(i),y1(i),'g*')
end
for i=1:length(x);
k=2;
y2(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+2*k*((1/xSN R(i))^2))));%求DCSK,k=2的系统理论的误码率
end
semilogy(x,y2);
for i=1:length(x)
hold on;
plot(x(i),y2(i),'r.')
end
gtext('绿色的*表示QCSK K=2;红色的.表示DCSK K=2');
grid on
xlabel('Eb/No[dB]');
ylabel('BER');
title('K=2的系统误码率');
clc;
x=0:18;%信噪比的取植范围
xSNR=10.^(x/20);%化成dB形式
for i=1:length(x);
k=16;
y1(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+k*((1/xSNR( i))^2))));%求QCSK,k=16的系统理论的误码率end
semilogy(x,y1);
for i=1:length(x)
hold on;
plot(x(i),y1(i),'g*')
end
gtext('QCSK,K=16');
for i=1:length(x);
k=16;
y2(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+2*k*((1/xSN R(i))^2))));%求DCSK,k=16的系统理论的误码率
end
semilogy(x,y2);
for i=1:length(x)
hold on;
plot(x(i),y2(i),'r.')
end
gtext('DCSK,K=16');
grid on
xlabel('Eb/No[dB]');
ylabel('BER');
title('K=16时的系统误码率');
clc;
x=0:18;%信噪比的取植范围
xSNR=10.^(x/20);%化成dB形式
for i=1:length(x);
k=64;
y1(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+k*((1/xSNR( i))^2))));%求QCSK,k=64的系统理论的误码率end
semilogy(x,y1);
for i=1:length(x)
hold on;
plot(x(i),y1(i),'g*')
end
gtext('QCSK K=64');
for i=1:length(x);
k=64;
y2(i)=1/2*erfc(1/(sqrt(4*1/xSNR(i)+2*k*((1/xSN R(i))^2))));%求DCSK,k=64的系统理论的误码率
end
semilogy(x,y2);
for i=1:length(x)
hold on;
plot(x(i),y2(i),'r.')
end
gtext('DCSK K=64');
grid on
xlabel('Eb/No[dB]');
ylabel('BER');
title('K=64的系统误码率');。