基于Matlab振幅调制与解调及GUI界面设计

更新时间:2023-09-30 13:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

通信系统课程设计报告

基于Matlab的振幅调制与解调

院 (系): 机电学院 专业年级(班): 电信122 学 生: 徐晗 学 号: XXXXXXXXXXXX 指 导 教 师: XXXXXXXXXXXXXXXXXXXXX 完 成 时 间: 2015-6-25

摘 要

信号与模拟通信之间中心问题就是把载有消息的信息经系统加工处理后,送入信道进行传送,从而实现数据的相互传递,与此同时信号的调制在信号传输过程重要性不可忽略。本系统基于MATLAB软件进行AM、DSB调制与解调程序设计,并用包络检波和同步检波分别实现已调信号的解调,绘制分析AM与DSB下调制信号、已调信号、解调信号的波形与频谱,最后通过GUI界面进行可调节控制显示。

关键词:Matlab;AM;DSB;调制与解调;GUI

目录

1 设计目的及要求.................................................... 1

1.1 目的 ................................................................................................................................... 1

1.2 题目与要求 ....................................................................................................................... 1

2理论基础 .......................................................... 1

2.1 AM调制与解调原理 .......................................................................................................... 1

2.1.1 AM调制原理 .......................................................................................................... 1 2.1.2 AM解调原理 .......................................................................................................... 2 2.2 DSB调制与解调原理 ...................................................................................................... 3

2.2.1 DSB调制原理 ........................................................................................................ 3 2.2.2 DSB相干解调原理 ................................................................................................ 4 2.3 GUI简介 .......................................................................................................................... 4

3设计原理以及方案 .................................................. 5

3.1 系统总体框图 ................................................................................................................... 5 3.2 参数计算与设计 ............................................................................................................... 5

3.2.1 基本信号参数 ....................................................................................................... 5 3.2.1系数计算 ................................................................................................................ 6

4实验结果与分析 .................................................... 7

4.1 Matlab调制与解调波形、频谱观测 .............................................................................. 7

4.1.1 单频调制信号 ....................................................................................................... 7 4.1.2 多频调制信号 ....................................................................................................... 9 4.2 GUI系统界面设计 ........................................................................................................ 12

总结............................................................... 14 参考文献........................................................... 15 附录1 ............................................................. 16 附录2 ............................................................. 24

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

1 设计目的及要求

1.1 目的

通过对AM 和DSB调制与解调进行MATLAB程序设计,观察与分析相关信号时域、频域波形;深入理解AM与DSB调制与解调原理;掌握基于MATLAB软件开发环境下仿真方法。初步掌握GUI界面设计的流程及方法。 1.2 题目与要求

本系统基于MATLAB软件进行AM、DSB调制与解调程序设计,并记录分析相关信号波形与频谱等参数,此外附加进行GUI界面设计。具体内容如下:

1) 画出AM与DSB下调制信号、已调信号、解调信号的波形与频谱 2) 采用不同形式的调制信号,例如单频信号和多频信号 3) 用包络检波和同步检波实现已调信号的解调 4) GUI界面设计

2理论基础

2.1 AM调制与解调原理 2.1.1 AM调制原理

所谓振幅调制,就是由调制信号去控制高频载波的振幅,直至随调制信号做线性变换。在线性调制中最先应用的是全调幅或常规调幅,简称为调幅(AM)。AM调制一般做法是先在原信号上叠加一个直流信号,然后乘以一个高频余弦载波,即可得到已调信号。在频域上的直观效果就是将调制信号频谱搬移到载波频谱附近。AM调制原理模型如图2-1。

图2-1 AM调制原理图

1

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

调制信号:

m t =sinω0t (2.1)

载波信号:

c t =cos?ωct (2.2)

已调信号时域表达式:

SAM(t)=[A0+m t ]×cosωct (2.3)

其中,A0为其直流分量。 已调信号频域表达式:

SAM ω =πA0 δ ω+ωC +δ ω?ωC +2 M ω+ωC +M ω?ωC

其中,m(t)为确知信号,信号频谱M(ω)。 2.1.2 AM解调原理 2.1.2.1 AM相干解调

相干解调,也叫同步检波。解调与调制的实质一样,均是频谱搬移。调制是把基带信号的频谱搬到了载频的位置,这一过程可以通过一个相乘器与载波相乘来实现。解调则是调制的逆过程,即把在载频位置的已调信号的频谱搬回到原始基带位置,因此采用“同频同相”载波信号与已调信号相乘,通过低通滤波器滤除高频部分,低频部分则包含所需的调制信号。AM相干解调原理模型如图2-2。

1

图2-2 AM相干解调原理图

已调信号时域表达式:

SAM(t)=[A0+m t ]×cosωct (2.4)

同频同相载波信号:

c t =cos?ωct (2.5)

相乘后:

SA(t)=[A0+m t ]×cosωct×cosωct

2

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

=2 A0+m t +2 A0+m t ×cos 2ωct (2.6)

经过低通滤波器滤除高频成分后得:

Sd t =2 A0+m t (2.7)

2.1.2.1 AM包络检波

AM信号在满足|m(t)|max ≤ A0的条件下,其包络与调制信号m(t)形状完全一样,呈线性关系。因此AM解调除相干解调外,也可使用包络检波法。对已调信号采用包络检波法,隔去直流分量,进行系数缩放即可得到原调制信号。AM包络检波原理模型如图2-3。

11

1

图2-3 包络检波原理图

输入已调信号:

SAM(t)=[A0+m t ]×cosωct (2.8)

检波器输出:

Sb(t)=A0+m t (2.9)

隔去直流后即可得到原调制信号m(t)。 2.2 DSB调制与解调原理 2.2.1 DSB调制原理

AM信号中载波分量不携带信息,如果在AM调制模型中将直流分量A0去掉,即可得到一种高调制效率的调制方式——抑制载波的双边带调幅波(DSB),其调制方式与AM调制相同。 DSB已调信号:

SDSB(t)=m t ×cosωct (2.10)

已调信号频域表达式:

SDSB ω =2 M ω+ωC +M ω?ωC (2.11)

其中,m(t)为确知信号,信号频谱M(ω)。

3

1

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

2.2.2 DSB相干解调原理

对于线性解调,DSB解调可采用相干解调法,原理框图与AM调制相同,采用“同频同相”载波信号与已调信号相乘,通过低通滤波器滤除高频部分,低频部分则包含所需的调制信号m(t)。 已调信号时域表达式:

SDSB(t)=m t ×cosωct (2.12)

同频同相载波信号:

c t =cos?ωct (2.13)

相乘后:

SD(t)=m t ×cosωct×cosωct

=2m(t)+2m(t)×cos 2ωct (2.14)

经过低通滤波器滤除高频成分后得:

Sd t =2m(t) (2.15)

2.3 GUI简介

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)。是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。 图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。

GUI的广泛应用是当今计算机发展的重大成就之一,随着中国 IT 产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显

11

1

4

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用它极大地方便了非专业用户的使用。

3设计原理以及方案

3.1 系统总体框图

AM与DSB调制模式相同,就解调而言采用不同方法,AM解调分为相干解调及包络检波法,而DSB只能采用相干解调。根据系统设计要求设计如下研究框图,如图3-1。

图3-1 系统框图

3.2 参数计算与设计 3.2.1 基本信号参数

%%%%xugege===================AM 调制=====================xugege%% t=0:0.001:1; 信号时间范围[0,1] A1=3; 直流分量 3V m=3*sin(10*pi*t); AM已调信号,频率5Hz,幅度3V c=cos(50*pi*t); 载波信号,频率25Hz,幅度1V

%%%%xugege=================AM相干解调=====================xugege%% s=(A1+m).*c;

s=awgn(s,5); 高斯白噪声,信噪比5dB

5

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

3.2.1系数计算

%%******* *****************椭圆低通滤波器设定***********************%%

Fs=1000; 滤波器采样频率1000Hz Rp=0.1; 通带最大衰减0.1dB Rs=60; 阻带最小衰减60dB Wp=4/100; 通带边界频率40Hz Ws=10/100; 阻带起始频率100Hz [n,Wn] = ellipord(Wp,Ws,Rp,Rs) [b,a] = ellip(n,Rp,Rs,Wn); Sh=filter(b,a,S);

鉴于GUI界面设计,设定载波信号幅度可调,设Ac, 此时,AM相干解调后

AC2

A0+m t Sd t =2故恢复信号则:

%%%%xugege=============AM相干解调波形恢复================xugege%%

M=Sh*2/(Ac*Ac)-A0;

DSB信号系数处理同理。

%%%%xugege=============AM包络检波波形恢复================xugege%% s=(A+m+2*A0).*c; env=abs(hilbert(s));

u=1*(env/Ac-A-2*A0);

加2A0,保证s绝对正值,继而希尔伯特变换取包络

env=| A0+m t +2A0 |=A0+m t +2A0

6

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

4实验结果与分析

4.1 Matlab调制与解调波形、频谱观测 4.1.1 单频调制信号

从频域上可以看到,AM已调信号频谱25Hz载波谱线两侧间隔5Hz谱线伴随。 调制信号、已调信号波形、频谱如图4-1。

图4-1 AM调制、已调信号波形与频谱

AM相干解调输出波形与原调制信号波形存在一定相移,经检验问题出自椭圆低通滤波器,单纯信号软件解调而言,亦可通过设置门函数滤波器相应函数处理,然考虑物理可实现性,程序编写中依然采用滤波器。如图4-2。

7

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

图4-15 AM包络检波与原调制信号波形

图4-16 DSB相干解调滤波前后频谱

13

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

总结

此次通信原理课程设计,本人选择的题目是Matlab下的振幅调制与解调,并在原要求的基础上与同学一起进行了GUI系统界面设计,虽完成既定任务与目标,然仍存在些许小问题,比如在AM与DSB相干解调部分,设计低通滤波器部分,经由搜索部分文档,网友整合文档推荐使用椭圆滤波器,然在学习课程和课下并未使用过,故按照网上提示自行设计椭圆低通滤波器,事后解调波形与原调制信号波形一致,然观察发现,解调后波形与原信号存在一定的相位差,经过课下一步步检验,排除程序原理问题、噪声影响等,初步断定受所设计的椭圆滤波器影响,考虑到程序设计的物理可实现性,故此没有采用“纯软件”编辑方式解决,依然采用原低通滤波器。

同时,本次设计中个人认为不仅仅是对AM、DSB调制与解调原理理解的加深,最让我心动的则是GUI设计,虽说以前从未接触,且目前实际掌握的部分难度系数不大,上手较快,但也进行了未知领域的探索,对此本人比较满意。

14

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

参考文献

[1] 李露,史振威,周付根. 基于Matlab/Simulink的幅度调制与解调综合实验设计[J]. 实验室研究与探索. 2011(01)

[2] 徐红,赵小娟. MATLAB在信号调制与解调的仿真实验中的应用[J]. 桂林航天工业高等专科学校学报. 2010(04)

[3] 邹德东,刘立民,王国辉. 浅谈单边带调幅(SSB)的调制与解调[J]. 煤矿安全. 2008(01)

[4] 董玉婷,吴颀峰. MATLAB应用于数字通信系统调制解调技术的仿真设计[J]. 科协论坛(下半月). 2007(08)

[5] 张宇伟,王耀明. 基于Matlab的调制解调系统仿真设计[J]. 上海电机学院学报. 2005(05) [6] 王艳芬,于洪珍. 抑制载波调幅信号的计算机波形分析[J]. 实验科学与技术. 2005(03)

15

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

附录1

% %%==================AM信号调制解调程序 (单频信号)==================xugege%%%% %%AM 调制程序 t=0:0.001:1;

A1=3; %直流偏量 A0=3;

m=A0*sin(10*pi*t); %调制信号 频率5Hz yk1=fft(m,512);

yw1=2*pi*abs(fftshift(yk1)); %频谱搬移 fw1=[-256:255]/512*1000; figure(1) subplot(2,2,1) plot(t,m)

xlabel('t/s');ylabel('幅度'); title('调制信号') subplot(2,2,2) plot(fw1,yw1)

xlabel('频率/Hz') ; title('调制信号的频谱') grid;

c=cos(50*pi*t); %载波信号 频率25Hz s=(A1+m).*c; %已调信号 s=awgn(s,5); yk2=fft(s,512);

yw2 = 2*pi*abs(fftshift(yk2)); fw2=[-256:255]/512*1000; subplot(2,2,3) plot(t,s)

xlabel('t/s');ylabel('幅度'); title('已调信号') axis([0,1,-10,10]); subplot(2,2,4)

plot(fw2,yw2); xlabel('频率/HZ');title('已调信号的频谱') grid;

%%AM信号相干解调程序 Ac=1;

m=A0*sin(10*pi*t); c=Ac*cos(50*pi*t); s=(A+m).*c; %已调信号 sa=awgn(s,10); %已调信号加噪声 S=sa.*c;

%%******* 椭圆滤波器的设计*******************%% Rp=0.1; %通带最大衰减为0.1dB Rs=60; %阻带最小衰减为60dB

16

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

Wp=4/100; %通带截止频率 Ws=10/100; %阻带起始频率 [n,Wn] = ellipord(Wp,Ws,Rp,Rs) [b,a] = ellip(n,Rp,Rs,Wn); figure(2)

[H,w]=freqz(b,a,512); plot(abs(H));

Sh=filter(b,a,S); %对信号进行滤波 M=Sh*2/(Ac*Ac)-A; figure(3) plot(t,m,t,M) ;

legend('原调制信号','AM解调信号'); title('AM解调信号与原调制信号对比'); yk1=fft(S,512);

yw1 = 2*pi*abs(fftshift(yk1)); fw1=[-256:255]/512*1000; yk2=fft(Sh,512);

yw2 = 2*pi*abs(fftshift(yk2)); fw2=[-256:255]/512*1000; figure(4) subplot(2,1,1) plot(fw1,yw1)

legend('滤波前的频谱图') subplot(2,1,2) plot(fw2,yw2) legend('滤波后的频谱图')

% %%******************包络检波*******************************%% s=(A+m+2*A0).*c; %已调信号

env=abs(hilbert(s)); %找出已调信号的包络 u=1*(env/Ac-A-2*A0); %去掉直流分量并重新缩放 figure(5); subplot(2,1,1); plot(t,u); xlabel('t/s');

title('AM已调信号的包络检波波形') axis([0,1,-10,10]); Y=fft(u*0.294,512); subplot(2,1,2) plot(t,m) subplot(2,1,2);

y=2*pi*abs(fftshift(Y)); %频谱搬移 xhz=[-256:255]/512*100; plot(xhz,y);

17

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

function edit4_Callback(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit4 as text

% str2double(get(hObject,'String')) returns contents of edit4 as a double global A0; %%调制信号幅度

f1=str2double(get(handles.edit4,'string')); A0=f1;

% --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text

% str2double(get(hObject,'String')) returns contents of edit5 as a double global Aplus; %调制信号直流分量

f1=str2double(get(handles.edit5,'string')); Aplus=f1;

% --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

33

《基于Matlab 振幅调制与解调及GUI系统界面设计》-xuhan

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

34

本文来源:https://www.bwwdw.com/article/n2fd.html

Top