标准实验报告4.docx
《标准实验报告4.docx》由会员分享,可在线阅读,更多相关《标准实验报告4.docx(28页珍藏版)》请在冰豆网上搜索。
![标准实验报告4.docx](https://file1.bdocx.com/fileroot1/2023-2/4/beb3bf28-6ab3-498d-a9b8-f8421ecb6fc6/beb3bf28-6ab3-498d-a9b8-f8421ecb6fc61.gif)
标准实验报告4
实验报告
(二)
学生姓名:
王超楠学号:
2013020904011
指导教师:
廖红舒/张花国
实验地点:
科研二号楼B453实验时间:
周二晚
一、实验室名称:
信息对抗系统专业实验室
二、实验项目名称:
典型数字通信信号调制识别
三、实验学时:
4学时
实验原理:
BPSK、QPSK、FSK、ASK数字通信信号具有不同的频谱特征,如BPSK平方和四次方后的傅立叶变换出现单根离散谱线,QPSK四次方后才有单根离散谱线等。
因此针对这些信号特征,可通过设置特征门限区分不同通信信号,达到信号调制识别目的。
因此可让学生通过实际上机Matlab编程实验,对上述通信信号的特征进行仿真验证,加深理解不同通信信号的调制识别方法。
五、实验目的:
利用MATLAB软件编程提取数字通信信号的频谱、二次方谱、四次方谱等特征,同时使用决策树的分类方法进行调制信号的识别。
让学生通过实际上机实验,加深理解不同数字通信信号的特点。
六、实验内容:
(1)把上次实验产生的BPSK、QPSK、2ASK、2FSK信号分别画出它们的频谱、二次方谱和四次方谱,描述不同信号谱特征之间的差异。
(2)分别用介绍的两种方法编程提取这四种信号的频谱、二次方谱、四次方谱的谱峰个数(根据每种信号的特点分别提取频谱或二次方谱或四次方谱的谱峰个数)。
信噪比从0dB变化到10dB(即0:
2:
10),分别画出BPSK、QPSK、2ASK、2FSK用两种方法获得谱峰个数特征随每个信噪比的变化曲线,然后设定区分门限。
比较这两种方法的优缺点。
(3)选择其中一种方法提取谱峰特征,设计识别决策树,并编写程序实现。
画出BPSK、QPSK、2ASK、2FSK信号的正确识别率随信噪比(0:
2:
10)的变化曲线。
说明在多高信噪比下能保证每种信号的正确识别率均在90%以上。
七、实验器材(设备、元器件):
计算机、Matlab计算机仿真软件
八、实验步骤:
1、在编写的信号源基础上,根据实验内容提取信号特征并进行调制识别。
(a)BPSK、QPSK、2ASK、2FSK频谱特征提取程序
(b)BPSK、QPSK、2ASK、2FSK数字通信信号调制识别程序
九、实验数据及结果分析
(1)ASK信号的频谱、二次方谱、四次方谱
BPSK信号的频谱、二次方谱、四次方谱
QPSK信号的频谱、二次方谱、四次方谱
FSK信号的频谱、二次方谱、四次方谱
程序如下:
1.ASK
fc=300;%载波频率
fs=2000;%采样频率
fb=200;%Tb比特周期符号速度fd=1/2*fb
fd=200;
T=2;
a=randi([0,1],1,T*fs);%产生二进制码元
%%根升余弦成型滤波器
NT=60;
r=0.3;
rate=fs/fb;%过采样率=fs/码速率
delay=NT/(2*rate);
t=0:
1/fs:
T-1/fs;
x=exp(j*2*pi*fc*t).*a;
ask=rcosflt(x,fd,fs,'sqrt',r,delay);%波形成型
figure
(1)
subplot(411)
plot(real(ask));
axis([02000-11]);
gridon;
title('ASK时域波形');
subplot(412)
plot(fftshift(abs(fft(ask))));
gridon;
title('ASK的频域波形');
subplot(413)
plot(fftshift(abs(fft(ask.^2))));
gridon;
title('ASK的二次方谱');
subplot(414)
plot(fftshift(abs(fft(ask.^4))));
gridon;
title('ASK的四次方谱');
2.BPSK
fc=200;%载波频率
fs=2000;%采样频率
fb=200;%Tb比特周期
fd=200;%符号速度
T=2;%时间长2S
M=2;%二元
%%产生产生0,1序列或符号序列
m=randi([0,1],1,fs);
%%相位映射为复基带信号
a=pskmod(m,M);
%%基带消息
t=0:
length(a)-1;
x=cos(2*pi*fc*t+angle(a));%生成BPSK
%%根升余弦成型滤波器
NT=60;
r=0.3;
rate=fs/fb;%过采样率=fs/码速率
delay=NT/(2*rate);
xBPSK=rcosflt(x,fd,fs,'sqrt',r,delay);%波形成型
%%画图
figure
(1)
subplot(411)
plot(xBPSK);
axis([02000-11]);
gridon;
title('BPSK时域波形图');
subplot(412)
plot(fftshift(abs(fft(xBPSK))));
gridon;
title('BPSK频域波形图');
subplot(413)
plot(fftshift(abs(fft(xBPSK.^2))));
title('BPSK信号二次方谱');
subplot(414)
plot(fftshift(abs(fft(xBPSK.^4))));
title('BPSK信号四次方谱');
3.QPSK
clearall;
closeall;
clc;
fc=200;%载波频率
fs=2000;%采样频率
fb=100;%Tb比特周期
fd=200;%符号速度
T=2;%时间长2S
M=4;%四元
N=T*fs;
r=fs/fd;
filtorder=60;%滤波器阶数60
a=0.3;%滚降因子0.3
delay=filtorder/(r*2);
h=rcosfir(a,delay,r,1,'sqrt');
h=sqrt(r)*h/norm(h);
s=randsrc(N,1,[0:
M-1]);
p=pskmod(s,M);
x_base=zeros(r,N);
x_base(1,:
)=p.';
x_base=x_base(:
);
ss=conv(h.',x_base);
X_QPSK=x_base.*exp(j*(2*pi*fc/fs*[0:
length(x_base)-1].'+rand*2*pi));%
figure
(1)
subplot(411)
plot(real(X_QPSK));
axis([0500-11]);
title('QPSK时域波形图');
gridon;
subplot(412)
plot(fftshift(abs(fft(X_QPSK))));
title('QPSK频域波形图');
gridon;
subplot(413)
plot(fftshift(abs(fft(X_QPSK.^2))));
title('QPSK二次方谱');
gridon;
subplot(414)
plot(fftshift(abs(fft(X_QPSK.^4))));
title('QPSK四次方谱');
gridon;
4.FSK
%因为调频指数为0.6中心频率为400Hz,可以计算出f1f2;fc=(f1+f2)/2h=(f2-f1)/fb
fc=400;%载波频率
fs=1200;%采样频率
fb=200;%Tb比特周期
fd=200;
f2=460;
f1=340;
T=2;
%%生成anbn随机序列
a=randi([0,1],1,T*fs);%产生二进制码元
N=length(a);
b=zeros(1,N);
fori=1:
N
b(i)=1-a(i);
end
%%根升余弦成型滤波器
NT=60;
r=0.3;
rate=fs/fb;%过采样率=fs/码速率
delay=NT/(2*rate);
t=0:
1/fs:
T-1/fs;
c=a.*exp(j*2*pi*f1*t)+b.*exp(j*2*pi*f2*t);
fskk=rcosflt(c,fd,fs,'sqrt',r,delay);%波形成型
figure
(1)
subplot(411)
plot(real(fskk));
axis([02000-11]);
gridon;
title('FSK时域波形');
subplot(412)
plot(fftshift(abs(fft(fskk))));
gridon;
title('FSK的频域波形');
subplot(413)
plot(fftshift(abs(fft(fskk.^2))));
gridon;
title('FSK二次方谱');
subplot(414)
plot(fftshift(abs(fft(fskk.^4))));
gridon;
title('FSK四次方谱');
(2)谱峰个数的提取
方法
(1)以频谱或二次方谱或四次方谱中的最大值为参考值,设置一个门限,搜索大于该门限以上的谱峰个数
方法
(2)以频谱或二次方谱或四次方谱P(f)中的最大值为参考值,记录最大值的位置为pos,选取最大值左右两侧第N个点的谱的幅度值,计算比值
设置门限,搜索R大于门限以上的谱峰个数;如果有多个谱峰同时存在,则把幅度最高的谱峰去掉后再依次搜索幅度次高的谱峰。
a)2ASK信号频谱的谱峰个数提取
方法一:
ASK的频谱图
分析可得,该频谱图只有一根离散谱线,在方法一中,可以设置门限r=5000
提取程序如下:
%%提取谱峰
%方法一
a=zeros(1,length(abs(fft(ask))));
a=abs(fft(ask));
num=0;
fori=1:
length(abs(fft(ask)))
ifa(i)>5000
num=num+1;
fprintf('方法一:
2ASK信号频谱的谱峰数目为num=%d\n',num);
end
end
加噪后识别的谱峰数随信噪比的变化:
程序:
%加噪处理后识别谱峰数随信噪比的变化曲线
num=zeros(1,20);
a=zeros(1,length(abs(fft(ask))))
j=1;
forSNR=-10:
9
askk=awgn(ask,SNR,'measured');
a=abs(fft(askk));
n=0;
fori=1:
length(abs(fft(askk)))
ifa(i)>5000
n=n+1;
end
end
fprintf('方法一:
信噪比为%ddB时2ASK信号频谱的谱峰数目为num=%d\n',SNR,n);
num(j)=n;
j=j+1;
SNR=SNR+1;
end
SNR=-10:
9;
plot(SNR,num);
axis([-109010]);
xlabel('信噪比/dB');
ylabel('谱峰数目/个');
title('谱峰数随信噪比变化曲线');
gridon;
方法二:
老师,第二种算法学生实在没有看懂,自认为那个算法有很大歧义,因此只做了一种算法提取,忘老师见谅。
b)2FSK信号频谱的谱峰个数提取
FSK加噪频谱图:
谱峰提取程序:
根据频谱图可以设置门限r=2000;
%%谱峰提取程序
a=zeros(1,length(abs(fft(fsk))));
a=abs(fft(fsk));
num=0;
fori=1:
length(abs(fft(fsk)))
ifa(i)>2000
num=num+1;
end
end
fprintf('方法一:
2FSK信号频谱的谱峰数目为num=%d\n',num);
谱峰数随信噪比变化曲线:
程序:
clearall;
closeall;
clc;
%因为调频指数为0.6中心频率为400Hz,可以计算出f1f2;fc=(f1+f2)/2h=(f2-f1)/fb
fc=400;%载波频率
fs=1200;%采样频率
fb=200;%Tb比特周期
fd=200;
f2=460;
f1=340;
T=2;
%%生成anbn随机序列
a=randi([0,1],1,T*fs);%产生二进制码元
N=length(a);
b=zeros(1,N);
fori=1:
N
b(i)=1-a(i);
end
%%根升余弦成型滤波器
NT=60;
r=0.3;
rate=fs/fb;%过采样率=fs/码速率
delay=NT/(2*rate);
t=0:
1/fs:
T-1/fs;
c=a.*exp(j*2*pi*f1*t)+b.*exp(j*2*pi*f2*t);
fsk=rcosflt(c,fd,fs,'sqrt',r,delay);%波形成型
%%谱峰提取程序
num=zeros(1,20);
a=zeros(1,length(abs(fft(fsk))))
j=1;
forSNR=-10:
9
fskk=awgn(fsk,SNR,'measured');
a=abs(fft(fskk));
n=0;
fori=1:
length(abs(fft(fskk)))
ifa(i)>2000
n=n+1;
end
end
fprintf('方法一:
信噪比为%ddB时2FSK信号频谱的谱峰数目为num=%d\n',SNR,n);
num(j)=n;
j=j+1;
SNR=SNR+1;
end
SNR=-10:
9;
plot(SNR,num);
axis([-109010]);
xlabel('信噪比/dB');
ylabel('谱峰数目/个');
title('谱峰数随信噪比变化曲线');
gridon;
c)BPSK信号频谱的谱峰个数提取
BPSK加噪频谱图(信噪比为-5dB):
BPSK二次方谱谱峰提取程序:
根据二次方频谱图可以设置门限r=5000
%%二次方谱谱峰数目提取
a=zeros(1,length(abs(fft(BPSK.^2))));
a=abs(fft(BPSK.^2));
num=0;
fori=1:
length(abs(fft(BPSK.^2)))
ifa(i)>5000
num=num+1;
end
end
fprintf('方法一:
BPSK信号二次方谱的谱峰数目为num=%d\n',num);
谱峰数随信噪比变化曲线:
%%二次方谱谱峰数目提取
num=zeros(1,20);
a=zeros(1,length(abs(fft(BPSK.^2))))
j=1;
forSNR=-10:
9
BPSKK=awgn(BPSK,SNR,'measured');
a=abs(fft(BPSKK.^2));
n=0;
fori=1:
length(abs(fft(BPSKK.^2)))
ifa(i)>5000
n=n+1;
end
end
fprintf('方法一:
信噪比为%ddB时BPSK信号频谱的谱峰数目为num=%d\n',SNR,n);
num(j)=n;
j=j+1;
SNR=SNR+1;
end
SNR=-10:
9;
plot(SNR,num);
axis([-109010]);
xlabel('信噪比/dB');
ylabel('谱峰数目/个');
title('谱峰数随信噪比变化曲线');
gridon;
d)QPSK信号频谱的谱峰个数提取
QPSK加噪频谱图:
QPSK四次方谱谱峰提取程序:
根据频谱图设置门限r=2000
%%四次方谱的提取
a=zeros(1,length(abs(fft(qpsk))));
a=abs(fft(qpsk.^4));
num=0;
fori=1:
length(abs(fft(qpsk.^4)))
ifa(i)>2000
num=num+1;
end
end
fprintf('方法一:
QPSK信号频谱的谱峰数目为num=%d\n',num);
plot(fftshift(abs(fft(qpsk.^4))));
title('QPSK四次方谱');
谱峰数随信噪比变化曲线:
(3)BPSK、QPSK、2ASK、2FSK信号的正确识别率随信噪比的变化曲线
十、实验结论
1.BPSK信号的二次方谱在二倍载频出现冲击,四次方谱在零频、二倍载频、四倍载频出现冲击,QPSK信号在两倍载频sinc包络,在四倍载频出现离散谱。
2.可以通过二次方谱、四次方谱的谱线数目识别BPSK、QPSK信号。
十一、总结及心得体会
利用MATLAB软件编程提取数字通信信号的频谱、二次方谱、四次方谱等特征,同时使用决策树的分类方法进行调制信号的识别。
使我们通过实际上机实验,加深理解不同数字通信信号的特点。
十二、对本实验过程及方法、手段的改进建议:
报告评分:
指导教师签字: