⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signal_generator_unfunction.m

📁 软件无线电中信号调制方式的识别——用人工神经网络的方法
💻 M
字号:

clc;clear;close all;
Fc=100;%载波频率
Fd=10;%数字传输频率
Fs=1000;%采样频率
K=1;%The legth of message signal

%2ASK调制信号的产生
amp_2ask=0.8*randint(K*100,1)+0.2;%产生信息信号
amp_2ask_mod=zeros(100*size(amp_2ask),1);
for i=1:size(amp_2ask)
    amp_2ask_mod(((i*100)-99):i*100)=amp_2ask(i)*ones(100,1);
end
fre_2ask_mod=zeros(100*size(amp_2ask),1);
for i=1:size(fre_2ask_mod)
    fre_2ask_mod(i)=2*pi*Fc*i/Fs;
end
car_2ask_mod=cos(fre_2ask_mod);
signal_2ask=amp_2ask_mod.*car_2ask_mod;
std_value_db=(0:2:20)';
std_value=10.^(-std_value_db/20);
std_value1=0.3162;%加性高斯白噪声的方差是0.1,S/N=10db
std_value2=1;%S/R=0db 
signal_2ask_noise1=signal_2ask+randn(length(signal_2ask),1)*std_value1;%产生信噪比为10db的有噪信号
signal_2ask_noise2=signal_2ask+randn(length(signal_2ask),1)*std_value2;%产生信噪比为0db的有噪信号
figure(1);
subplot(2,2,1);
plot(signal_2ask);
axis([0 1000 -1.5 1.5]);
subplot(2,2,2);
plot(signal_2ask_noise1);
axis([0 1000 -1.5 1.5]);
subplot(2,2,3);
plot(signal_2ask_noise2);
axis([0 1000 -1.5 1.5]);

signal_2ask_noise=zeros(size(signal_2ask,1),size(std_value,1));
for i=1:size(std_value)
    signal_2ask_noise(:,i)=signal_2ask+randn(length(signal_2ask),1)*std_value(i);
end

%4ASK调制信号的产生
amp_4ask=0.25*randint(K*100,1,4)+0.25;%产生信息信号
amp_4ask_mod=zeros(100*size(amp_4ask),1);
for i=1:size(amp_4ask)
    amp_4ask_mod(((i*100)-99):i*100)=amp_4ask(i)*ones(100,1);
end
fre_4ask_mod=zeros(100*size(amp_4ask),1);
for i=1:size(fre_4ask_mod)
    fre_4ask_mod(i)=2*pi*Fc*i/Fs;
end
car_4ask_mod=cos(fre_4ask_mod);
signal_4ask=amp_4ask_mod.*car_4ask_mod;
std_value1=0.3162;%加性高斯白噪声的方差是0.1,S/N=10db
std_value2=1;%S/R=0db 
signal_4ask_noise1=signal_4ask+randn(length(signal_4ask),1)*std_value1;%产生信噪比为10db的有噪信号
signal_4ask_noise2=signal_4ask+randn(length(signal_4ask),1)*std_value2;%产生信噪比为0db的有噪信号
figure(2);
subplot(2,2,1);
plot(signal_4ask);
axis([0 1000 -1.5 1.5]);
subplot(2,2,2);
plot(signal_4ask_noise1);
axis([0 1000 -1.5 1.5]);
subplot(2,2,3);
plot(signal_4ask_noise2);
axis([0 1000 -1.5 1.5]);


signal_4ask_noise=zeros(size(signal_4ask,1),size(std_value,1));
for i=1:size(std_value)
    signal_4ask_noise(:,i)=signal_4ask+randn(length(signal_4ask),1)*std_value(i);
end


%2FSK调制信号的产生
rb=50;%fsk偏移频率
amp_2fsk=ones(K*100,1);%产生信息信号
amp_2fsk_mod=ones(100*size(amp_2fsk),1);
fre_2fsk_bias=randint(K*100,1);
fre_2fsk_bias1_mod=zeros(100*size(fre_2fsk_bias),1);
for i=1:size(fre_2fsk_bias)
    fre_2fsk_bias1_mod(((i*100)-99):i*100)=fre_2fsk_bias(i)*ones(100,1);
end
fre_2fsk_mod=2*pi*(Fc-rb/2-fre_2fsk_bias1_mod*rb)/Fs;
car_2fsk_mod=zeros(size(fre_2fsk_mod),1);
for i=1:size(fre_2fsk_mod)
    car_2fsk_mod(i)=cos(i*fre_2fsk_mod(i));
end
signal_2fsk=amp_2fsk_mod.*car_2fsk_mod;
std_value1=0.3162;%加性高斯白噪声的方差是0.1,S/N=10db
std_value2=1;%S/R=0db 
signal_2fsk_noise1=signal_2fsk+randn(length(signal_2fsk),1)*std_value1;%产生信噪比为10db的有噪信号
signal_2fsk_noise2=signal_2fsk+randn(length(signal_2fsk),1)*std_value2;%产生信噪比为0db的有噪信号
figure(3);
subplot(2,2,1);
plot(signal_2fsk);
axis([0 1000 -1.5 1.5]);
subplot(2,2,2);
plot(signal_2fsk_noise1);
axis([0 1000 -1.5 1.5]);
subplot(2,2,3);
plot(signal_2fsk_noise2);
axis([0 1000 -1.5 1.5]);

signal_2fsk_noise=zeros(size(signal_2fsk,1),size(std_value,1));
for i=1:size(std_value)
    signal_2fsk_noise(:,i)=signal_2fsk+randn(length(signal_2fsk),1)*std_value(i);
end




%4FSK调制信号的产生
rb=50;%fsk偏移频率
amp_4fsk=ones(K*100,1);%产生信息信号
amp_4fsk_mod=ones(100*size(amp_4fsk),1);
fre_4fsk_bias=randint(K*100,1,4);
fre_4fsk_bias1_mod=zeros(100*size(fre_4fsk_bias),1);
for i=1:size(fre_4fsk_bias)
    fre_4fsk_bias1_mod(((i*100)-99):i*100)=fre_4fsk_bias(i)*ones(100,1);
end
fre_4fsk_mod=2*pi*(Fc-3*rb/2-fre_4fsk_bias1_mod*rb)/Fs;
car_4fsk_mod=zeros(size(fre_4fsk_mod),1);
for i=1:size(fre_4fsk_mod)
    car_4fsk_mod(i)=cos(i*fre_4fsk_mod(i));
end
signal_4fsk=amp_4fsk_mod.*car_4fsk_mod;
std_value1=0.3162;%加性高斯白噪声的方差是0.1,S/N=10db
std_value2=1;%S/R=0db 
signal_4fsk_noise1=signal_4fsk+randn(length(signal_4fsk),1)*std_value1;%产生信噪比为10db的有噪信号
signal_4fsk_noise2=signal_4fsk+randn(length(signal_4fsk),1)*std_value2;%产生信噪比为0db的有噪信号
figure(4);
subplot(2,2,1);
plot(signal_4fsk);
axis([0 1000 -1.5 1.5]);
subplot(2,2,2);
plot(signal_4fsk_noise1);
axis([0 1000 -1.5 1.5]);
subplot(2,2,3);
plot(signal_4fsk_noise2);
axis([0 1000 -1.5 1.5]);



signal_4fsk_noise=zeros(size(signal_4fsk,1),size(std_value,1));
for i=1:size(std_value)
    signal_4fsk_noise(:,i)=signal_4fsk+randn(length(signal_4fsk),1)*std_value(i);
end


%2PSK调制信号的产生
amp_2psk=ones(K*100,1);%产生信息信号
amp_2psk_mod=ones(100*size(amp_2psk),1);
pha_2psk_bias=randint(K*100,1);
pha_2psk_bias1_mod=zeros(100*size(pha_2psk_bias),1);
for i=1:size(pha_2psk_bias)
    pha_2psk_bias1_mod(((i*100)-99):i*100)=pha_2psk_bias(i)*ones(100,1);
end
car_2psk_mod=zeros(size(pha_2psk_bias1_mod),1);
for i=1:size(pha_2psk_bias1_mod)
    car_2psk_mod(i)=cos(i*2*pi*Fc/Fs-pi/2+pi*pha_2psk_bias1_mod(i));
end
signal_2psk=amp_2psk_mod.*car_2psk_mod;
std_value1=0.3162;%加性高斯白噪声的方差是0.1,S/N=10db
std_value2=1;%S/R=0db 
signal_2psk_noise1=signal_2psk+randn(length(signal_2psk),1)*std_value1;%产生信噪比为10db的有噪信号
signal_2psk_noise2=signal_2psk+randn(length(signal_2psk),1)*std_value2;%产生信噪比为0db的有噪信号
figure(5);
subplot(2,2,1);
plot(signal_2psk);
axis([0 300 -1.5 1.5]);
subplot(2,2,2);
plot(signal_2psk_noise1);
axis([0 1000 -1.5 1.5]);
subplot(2,2,3);
plot(signal_2psk_noise2);
axis([0 1000 -1.5 1.5]);


signal_2psk_noise=zeros(size(signal_2psk,1),size(std_value,1));
for i=1:size(std_value)
    signal_2psk_noise(:,i)=signal_2psk+randn(length(signal_2psk),1)*std_value(i);
end



%4PSK调制信号的产生
amp_4psk=ones(K*100,1);%产生信息信号
amp_4psk_mod=ones(100*size(amp_4fsk),1);
pha_4psk_bias=randint(K*100,1,4);
pha_4psk_bias1_mod=zeros(100*size(pha_4psk_bias),1);
for i=1:size(pha_4psk_bias)
    pha_4psk_bias1_mod(((i*100)-99):i*100)=pha_4psk_bias(i)*ones(100,1);
end
car_4psk_mod=zeros(size(pha_4psk_bias1_mod),1);
for i=1:size(pha_4psk_bias1_mod)
    car_4psk_mod(i)=cos(i*2*pi*Fc/Fs-3*pi/4+pi*pha_4psk_bias1_mod(i)/2);
end
signal_4psk=amp_4psk_mod.*car_4psk_mod;
std_value1=0.3162;%加性高斯白噪声的方差是0.1,S/N=10db
std_value2=1;%S/R=0db 
signal_4psk_noise1=signal_4psk+randn(length(signal_4psk),1)*std_value1;%产生信噪比为10db的有噪信号
signal_4psk_noise2=signal_4psk+randn(length(signal_4psk),1)*std_value2;%产生信噪比为0db的有噪信号
figure(6);
subplot(2,2,1);
plot(signal_4psk);
axis([0 1000 -1.5 1.5]);
subplot(2,2,2);
plot(signal_4psk_noise1);
axis([0 1000 -1.5 1.5]);
subplot(2,2,3);
plot(signal_4psk_noise2);
axis([0 1000 -1.5 1.5]);

signal_4psk_noise=zeros(size(signal_4psk,1),size(std_value,1));
for i=1:size(std_value)
    signal_4psk_noise(:,i)=signal_4psk+randn(length(signal_4psk),1)*std_value(i);
end



%16QAM调制信号的产生
d=sqrt(2)/3;
amp_qam_I=randint(K*100,1,4);%产生信息信号
amp_qam_Q=randint(K*100,1,4);
amp_qam_mod_I=zeros(100*size(amp_qam_I),1);
amp_qam_mod_Q=zeros(100*size(amp_qam_Q),1);
for i=1:size(amp_qam_I)
    amp_qam_mod_I(((i*100)-99):i*100)=amp_qam_I(i)*ones(100,1)*d-d*3/2;
    amp_qam_mod_Q(((i*100)-99):i*100)=amp_qam_Q(i)*ones(100,1)*d-d*3/2;
end
fre_qam_mod=zeros(100*size(amp_qam_I),1);
for i=1:size(fre_qam_mod)
    fre_qam_mod(i)=2*pi*Fc*i/Fs;
end
car_qam_mod_I=cos(fre_qam_mod);
car_qam_mod_Q=sin(fre_qam_mod);
signal_qam=amp_qam_mod_I.*car_qam_mod_I+amp_qam_mod_Q.*car_qam_mod_Q;
std_value1=0.3162;%加性高斯白噪声的方差是0.1,S/N=10db
std_value2=1;%S/R=0db 
signal_qam_noise1=signal_qam+randn(length(signal_qam),1)*std_value1;%产生信噪比为10db的有噪信号
signal_qam_noise2=signal_qam+randn(length(signal_qam),1)*std_value2;%产生信噪比为0db的有噪信号
figure(7);
subplot(2,2,1);
plot(signal_qam);
axis([0 1000 -1.5 1.5]);
subplot(2,2,2);
plot(signal_qam_noise1);
axis([0 1000 -1.5 1.5]);
subplot(2,2,3);
plot(signal_qam_noise2);
axis([0 1000 -1.5 1.5]);


signal_qam_noise=zeros(size(signal_qam,1),size(std_value,1));
for i=1:size(std_value)
    signal_qam_noise(:,i)=signal_qam+randn(length(signal_qam),1)*std_value(i);
end



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -