资源描述
信号与通信系统课程设计说明书
信号与通信系统课程设计说明书
题 目: 设计ASK调制解调通信系统
系 部: 信息与控制工程学院
专 业: 电子信息工程
班 级: XXXX级X班
学生姓名: XXX 学 号: XXXXXXXXXX
指导教师: XXX
2018年 6月 12 日
目 录
1 设计任务与要求 2
1.1 设计任务 2
1.2 设计要求 2
2 设计方法与内容 3
2.1 MATLAB简介 3
2.2 ASK信号调制原理 3
2.3 ASK解调原理 4
3 仿真实现过程 5
3.1 ASK信号的产生 5
3.2 载波信号波形 5
3.3 ASK调制解调实现 6
3.4 叠加噪声的ASK调制解调 7
4 结论 10
5 附录 11
参考文献 18
1 设计任务与要求
1.1 设计任务
1.根据题目查阅有关资料,掌握数字带通调制技术。
2.学习MATLAB软件,掌握MATLAB各种函数的使用。
3.据数字带通调制原理,运行MATLAB进行编辑,仿真调制过程,记录并分析仿真结果。
1.2 设计要求
1.掌握ASK调制解调原理
2.绘制出ASK信号解调前后在时域和频域中的波形,观察解调前后频谱的变化理解ASK信号解调原理。
19
2 设计方法与内容
2.1 MATLAB简介
Matlab是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面良好的用户环境。它还包括了Toolbox(工具箱)的各类问题的求解工具,可用来求解特定学科的问题。其特点是:
(1) 可扩展性:Matlab最重要的特点是易于扩展,它允许用户自行建立指定功能的M文件。对于一个从事特定领域的工程师来说,不仅可利用Matlab所提供的函数及基本工具箱函数,还可方便地构造出专用的函数。从而大大扩展了其应用范围。当前支持Matlab的商用Toolbox(工具箱)有数百种之多。而由个人开发的Toolbox则不可计数。
(2) 易学易用性:Matlab不需要用户有高深的数学知识和程序设计能力,不需要用户深刻了解算法及编程技巧。
(3) 高效性:Matlab语句功能十分强大,一条语句可完成十分复杂的任务。如fft语句可完成对指定数据的快速傅里叶变换,这相当于上百条C语言语句的功能。它大大加快了工程技术人员从事软件开发的效率。
2.2 ASK信号调制原理
数字信号对载波信号的振幅调制称为振幅键控,即ASK(Amplitude Shift Keying)。2ASK就是调制信号为二进制数字基带信号时的振幅键控。
简单的说,振幅键控就是利用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变。在2ASK中,载波的幅度只有两种变化状态,分别对应二进制信息的“0”或“1”。
2ASK已调信号可表示为
e 0 = s(t) cosωct
式中,ωc为载波角频率,s(t)为单极性NRZ矩形脉冲序列
s(t) =Σan g(t-n Ts)
其中,g(t)是持续时间为Ts、高度为1的矩形脉冲,an为二进制数字
an=1,出现概率为p 0,出现概率为1-p
2.3 ASK解调原理
2ASK/OOK信号有两种基本的解调方法:非相干解调(包络检波法)和相干解调(同步检测法)。本课程设计要求的是相干解调,如图2-1:
带通滤波器
相乘器
低通滤波器
抽样判决器
定时脉冲
输出
图2-1相干解调
3 仿真实现过程
3.1 ASK信号的产生
图3-1二进制基带信号时域谱和频域谱
先将源程序创建M文件,自定义路径;编写语句x=ceil(rand(1,100000)-0.5) 生成一段随机的二进制基带信号,其中rand产生随机矩阵,ceil为取整函数;再编写语句FFT1=fft(x,128); FFT1=abs(FFT1)对随机序列进行傅里叶变换并取绝对值。其时域谱和频域谱如图3-1。
3.2 载波信号波形
图3-2载波信号时域谱和频域谱
在调制解调系统中,载波信号的频率一般要大于信号源的频率。信号源频率为12 Hz,所以将载波频率设置为36 Hz,编写正弦函数carry=cos(2*pi*Fc*t)并进行频域转换FFT2=fft(carry,256); FFT2=abs(FFT2)。其时域谱和频域谱如图3-2。
3.3 ASK调制解调实现
编写数字带通调制函数y=dmod(x,Fc,Fd,Fs,'ask',2)进行2ASK调制,其中x为输入信号,Fc为载波频率,Fd为码速率,Fs为采样频率,Fs/Fd必须是一个正整数。再进行频域转换FFT3=fft(y,256); FFT3=abs(FFT3),其时域谱和频域谱如图3-3:
图3-3已调信号时域谱和频域谱
图3-4解调信号解调时域谱和频域谱
编写数字带通调制函数z=ddemod(y,Fc,Fd,Fs,'ask',2)进行2ASK解调,其中x为输入信号,Fc为载波频率,Fd为码速率,Fs为采样频率。再进行频域转换FFT4=fft(z,64); FFT4=abs(FFT4),由于调制到解调的信道中没有加入噪声,所以调制前信号(即原始信号)与调制后信号相同,其时域谱和频域谱如图3-4。
3.4 叠加噪声的ASK调制解调
图3-5叠加小噪声调制信号时域谱和频域谱
图3-6叠加大噪声调制信号时域谱和频域谱
由于信道中的噪声是叠加在信号上的,噪声始终是存在的,通常称它为加性噪声或加性干扰。对已调信号y分别叠加高斯小噪声(信噪比为6)和大噪声(信噪比为-2)则编写Ynt1=awgn(y,6);Ynt2=awgn(y,-2)并进行频域转换,其时域谱和频域谱分别如图3-5和图3-6。
图3-7叠加小噪声解调信号时域谱和频域谱
图3-8叠加大噪声解调信号时域谱和频域谱
对小噪声Ynt1和大噪声信号Ynt2分别解调,编写数字带通调制函数z1=ddemod(Ynt1,Fc,Fd,Fs,'ask',2);z2=ddemod(Ynt2,Fc,Fd,Fs,'ask',2);并进行频域转换,其时域谱和频域谱如分别如图3-7和图3-8。
图3-9误差数和误差率
误码率是衡量一个数字通信系统性能的重要指标。在信道高斯白噪声的干扰下,二进制2ASK数字调制误码率取决于解调器输入信噪比,编写误码率函数[br,Pe1]=symerr(x,z1);[br,Pe2]=symerr(x,z2),其中br为符号误差数,Pe1为符号误差率。绘制如图3-9。
调用函数semilogy(SNR,Pe);绘制信噪比与误码率的关系曲线如图3-10,由此可得出:与无噪声时(误码率为零)相比较,当信噪比较大时,噪声小误码率低;反之,信噪比较小时噪声大误码率高。
4 结论
通过此次的课程设计,使我收获了很多。不仅让我对专业方面的知识认识更加深刻,同时也掌握了学习方法,懂得了无论做什么事,都要先弄懂原理,从根本出发,将一切问题分块分部解决的方法。让我今后都受益颇深。
在本次课程设计的过程中,也遇到了很多问题和难点。比如说当我做到解调部分的时候,程序都写完了,但就是波形出不来。不能够正确的仿真出波形和原信号。这让我很头疼,调了好久也没有输出。最后,通过上网搜索资料,并且与同学们一起讨论研究。终于一点点发现了问题,最后调出了波形。
虽然过程很坎坷,但结果却令人欣慰。我觉得在这次的课程设计中,收获的不仅是我们自己的方面,更多的也有团队的合作和与别人的交流和沟通。这让我们能够更好的与别人分享和交流,为我们在今后的学习和工作道路上都有所帮助。
5 附录
%程序名称:ASK.m
%程序功能:ASK解调解调
程序代码
clc; %清除命令工作窗里的内容
clear; %清除内存空间变量
%产生二进制随机序列
x=ceil(rand(1,100000)-0.5) %产生二进制随机序列并取大于x 的最小整数
figure(1) %窗口1,包含时域谱和频域谱
subplot(2,1,1) %分块图函数subplot,图形窗口分成2块子窗口的第1个图像
stairs(x); %第2个图像
xlabel('时间 t'); %x轴标注
ylabel('序列值'); %y轴标注
title('二进制随机序列'); %添加图像标题
axis([1 21 -1 2]) %控制坐标轴的范围
grid on %图像中添加栅格
%对随机序列进行频谱分析
FFT1=fft(x,128); %对随机序列进行傅里叶变换
FFT1=abs(FFT1); %对傅里叶变换取绝对值
figure(1)
subplot(2,1,2) %第2个图像
plot(FFT1);
xlabel('频率 f');
ylabel('幅度 FFT1');
title('随机序列频谱');
axis([0 128 0 50])
grid on
%载波信号
t=1/360:1/360:20; %载波时间范围
Fc=36; %载波频率
carry=cos(2*pi*Fc*t); %正弦载波信号
figure(2) %窗口2,包含时域谱和频域谱
subplot(2,1,1)
plot(carry);
xlabel('时间 t');
ylabel('幅度 carry');
title('载波信号');
axis([1 600 -2 2])
grid on
%对载波信号进行频谱分析
FFT2=fft(carry,256); %对载波信号进行傅里叶变换
FFT2=abs(FFT2); %对傅里叶变换取绝对值
figure(2)
subplot(2,1,2)
plot(FFT2);
xlabel('频率 f');
ylabel('幅度 FFT2');
title('载波信号频谱');
axis([0 256 0 100])
grid on
%ASK的调制
Fd=12; %Fd为码速率,Fs为采样频率
Fs=360;
y=dmod(x,Fc,Fd,Fs,'ask',2);%调用数字带通调制函数dmod进行2ASK调制
for i=1:20
if x(i)==0
yy(30*(i-1)+1:30*i)=0;
else
yy(30*(i-1)+1:30*i)=y(30*(i-1)+1:30*i);
end
end
%对20个随机码元进行判别,若码元为0则该码元周期内调制信号为零
figure(3)
subplot(2,1,1)
plot(yy);
xlabel('时间 t');
ylabel('幅度 y');
title('已调信号');
axis([1 600 -2 2])
grid on
%对已调信号进行频谱分析
FFT3=fft(y,256); %对已调信号进行傅里叶变换
FFT3=abs(FFT3); %对傅里叶变换取绝对值
figure(3)
subplot(2,1,2)
plot(FFT3);
xlabel('频率 f');
ylabel('幅度 FFT3');
title('已调信号频谱');
axis([0 256 0 50])
grid on
%ASK的解调
z=ddemod(y,Fc,Fd,Fs,'ask',2); %调用数字带通调制函数dmod进行2ASK解调
figure(4) %对傅里叶变换取绝对值
subplot(2,1,1)
stairs(z);
xlabel('时间 t');
ylabel('幅度 z');
title('解调信号');
axis([1 21 -1 2])
grid on
%对解调信号进行频谱分析
FFT4=fft(z,64); %对解调信号进行傅里叶变换
FFT4=abs(FFT4); %对傅里叶变换取绝对值
figure(4)
subplot(2,1,2)
plot(FFT4);
xlabel('频率 f');
ylabel('幅度 FFT4');
title('解调信号频谱');
axis([0 64 0 50])
grid on
%加入高斯小噪声,SNR为6
Ynt1=awgn(y,6); %加入高斯小噪声,信噪比为6
figure(5)
subplot(2,1,1)
plot(Ynt1);
xlabel('时间 t');
ylabel('幅度 Ynt1');
title('加小噪声信号');
axis([1 600 -2 2])
grid on
%对加小噪声信号进行频谱分析
FFT5=fft(Ynt1,256); %对加入小噪声的调制信号进行傅里叶变换
FFT5=abs(FFT5); %对傅里叶变换取绝对值
figure(5)
subplot(2,1,2)
plot(FFT5);
xlabel('频率 f');
ylabel('幅度 FFT5');
title('加小噪声信号频谱')
axis([0 256 0 50])
grid on
%ASK加小噪声信号的解调及误码率
z1=ddemod(Ynt1,Fc,Fd,Fs,'ask',2);
%调用数字带通调制函数dmod对加小噪声信号进行解调
[br,Pe1]=symerr(x,z1)
%对解调后加小噪声信号误码分析,br为符号误差数,Pe1为符号误差率
figure(6)
subplot(2,1,1)
stairs(z1);
xlabel('时间 t');
ylabel('幅度 z1');
title('加小噪声解调信号');
axis([1 21 -1 2])
grid on
%对加小噪声解调信号进行频谱分析
FFT6=fft(z1,64); %对加入小噪声的解调信号进行傅里叶变换
FFT6=abs(FFT6); %对傅里叶变换取绝对值
figure(6)
subplot(2,1,2)
plot(FFT6);
xlabel('频率 f');
ylabel('幅度 FFT6');
title('加小噪声解调信号频谱');
axis([0 64 0 50])
grid on
%加入高斯大噪声,SNR为-2
Ynt2=awgn(y,3); %加入高斯大噪声,信噪比为-2
figure(7)
subplot(2,1,1)
plot(Ynt2);
xlabel('时间 t');
ylabel('幅度 Ynt2');
title('加大噪声信号');
axis([1 600 -2 2])
grid on
%对加大噪声信号进行频谱分析
FFT7=fft(Ynt2,256); %对加入大噪声的调制信号进行傅里叶变换
FFT7=abs(FFT7); %对傅里叶变换取绝对值
figure(7)
subplot(2,1,2)
plot(FFT7);
xlabel('频率 f');
ylabel('幅度 FFT5');
title('加大噪声信号频谱')
axis([0 256 0 50])
grid on
%ASK加大噪声信号的解调及误码率
z2=ddemod(Ynt2,Fc,Fd,Fs,'ask',2);
%调用数字带通调制函数dmod对加大噪声信号进行解调
[br,Pe2]=symerr(x,z2)
%对解调后加大噪声信号误码分析,br为符号误差数,Pe1为符号误差率
figure(8)
subplot(2,1,1)
stairs(z2);
xlabel('时间 t');
ylabel('幅度 z2');
title('加大噪声解调信号');
axis([1 21 -1 2])
grid on
%对加大噪声解调信号进行频谱分析
FFT8=fft(z2,64); %对加入大噪声的解调信号进行傅里叶变换
FFT8=abs(FFT8); %对傅里叶变换取绝对值
figure(8)
subplot(2,1,2)
plot(FFT8);
xlabel('频率 f');
ylabel('幅度 FFT6');
title('加大噪声解调信号频谱');
axis([0 64 0 50])
grid on
%误码分析
SNR=-10:10
for i=1:length(SNR);
Ynt3=awgn(y,SNR(i)); %加入高斯小噪声,信噪比从-10dB到10dB
Z=ddemod(Ynt3,Fc,Fd,Fs,'ask',2);
%调用数字带通解调函数ddemod对加噪声信号进行解调
[br, Pe(i)]=symerr(x,Z);
%对解调后加大噪声信号误码分析,br为符号误差数,Pe(i)为符号误差率
end
figure(9)
semilogy(SNR,Pe); % 调用semilogy函数绘制信噪比与误码率的关系曲线
xlabel('信噪比 SNR(r/dB)');
ylabel('误码率 Pe');
title('信噪比与误码率的关系');
axis([-10 10 0 1])
grid on
参考文献
[1] 樊昌信,曹丽娜. 通信原理. 北京:国防工业出版社,2012.
[2] 黄文梅,熊桂林,杨勇. 信号分析与处理—MATLAB语言及应用. 长沙:国防科技大学出版社,2000.
[3] 唐向宏岳恒立,郑雪峰. MATLAB及在电子信息类课程中的应用. 北京:电子工业出版社,2006,8.
[4] 邓华. MATLAB通信仿真及应用实例详解. 人民邮电出版社,2003.
信号与通信系统课程设计成绩评定表
学生姓名
XXX
院/系部
信息与控制工程学院
专业
电子信息工程
年级
XXXX级 X 班
指导教师意见:
成绩: 签名:
年 月 日
展开阅读全文