基于Matlab Guide的信号调制与解调演示实验设计*
2020-12-02廖湘萍乐露露胡世新
廖湘萍 乐露露 胡世新
(湖南工业大学理学院 湖南 株洲 412007)
王诗龙
(株洲市第八中学 湖南 株洲 412007)
罗小刚
(邵阳县岩口铺镇初级中学 湖南 邵阳 422106)
1 引言
信息技术与物理教学的整合,符合新课程改革的要求,不仅体现了物理教学的现代化,而且是物理教学的改革方向之一.因此,如何将计算机技术方便、高效地渗透到中学物理教学之中,从而提高课堂效率、提高学生的认知和理解能力,成为新课改下一名物理教师所必须学习和研究的重要课题[1~4].
Guide(Graphical User Interface Development Environment) 可以实现用户与计算机之间进行信息交流,是Matlab图形用户接口开发环境[5,6].这种用户接口开发环境极大地简化了设计和建立Gui的过程,因为它提供了一系列工具用于建立Gui对象,通过按钮即可运行事先设计好的包含特定运算命令的文件.
“电磁波的发射传播和接收”是高中物理的难点内容,其中信号的调制与解调过程抽象,难以在学生头脑中构建出清晰的模型.同时,我国很多中学存在教学资源不足,因受实验设备的限制,物理课堂上基本只凭教师讲授进行教学.这正是本文利用Matlab Guide功能进行信号调制与解调演示实验设计的目的.借助仿真将信号调制与解调的动态过程轻松、直观地呈现在显示窗口中,将抽象复杂的内容具体化、形象化、图像化,为教学研究带来便利.利用Matlab Guide功能辅助中学物理教学为教师教学提供了一定的方法和思路[7~9].
2 信号调制与解调的原理
2.1 幅度调制与解调的原理
调幅(AM)是幅度调制,它使载波信号的振幅随着调制信号的变化而规律变化.
设载波信号为
vc(t)=Vmcos(ωct)
(1)
调制信号为
vΩ(t)=VΩmcos(Ωt)
(2)
调幅信号的一般表达式为
vAM(t)=Vm[1+macos(Ωt)]cos (ωct)
(3)
式中ma为调幅指数.
调幅解调的功能是从调幅信号中不失真地解调出原信号.幅度调制的解调过程有相干解调与非相干解调两种方式.程序编写过程中采用Matlab通信工具箱提供的幅度调制函数ammod 对载波信号进行调幅,用幅度解调函数amdemod进行解调 ,调用格式如下:
at=ammod(et,Fc,fs)
et1=amdemod(at,Fc,fs)
其中,et为输入的调制信号,at为输入的调幅波,Fc,fs分别为载波频率和采样频率.
2.2 频率调制与解调的原理
调频(FM)是频率调制,它是使载波信号的频率随着调制信号的变化而规律变化.
设载波信号为
vc(t)=Vmcos(ωct)
调制信号为
vΩ(t)=VΩmcos(Ωt)
调频信号的一般表达式为
(4)
式中,kf为比例常数,表示调制器的灵敏度.
频率调制的解调过程采用锁相环方法.本实验编程采用Matlab通信工具箱提供的频率调制函数fmmod对载波信号进行调频,用频率解调函数fmdemod进行解调,调用格式如下:
at=fmmod(et,Fc,fs,freqdev)
et2=fmdemod(at,Fc,fs,freqdev)
其中,et为输入的调制信号,at为输入的调频波,Fc和fs分别为载波频率和采样频率,freqdev为最大频率偏移.
3 基于Matlab Guide 的演示实验设计
3.1 界面的设计
除了强大的数值计算、符号运算和图形处理功能,Matlab还提供了图形用户界面的设计和开发功能,即Guide图形用户接口开发环境.图形用户界面包括4个部分:(1)对象选择区;(2)工具栏;(3)布局区;(4)状态栏.Guide提供的基本图形用户界面对象可分为:用户界面控件对象(Uicontrol)、表格(Table)、 面板(Panel)、按钮组(Button Group)、Activex控制(ActiveX Control).利用上述用户界面对象,可以设计出界面良好、功能强大和操作简便的图形用户界面.图l是信号调制与解调演示实验的设计界面图.
图1 演示实验的Guide开发界面图
界面图中包括:(1)3个坐标轴对象,分别用于显示载波信号、已调信号和解调信号的动态模拟图形;(2)2个触控按钮,分别用于清空图像和结束程序;(3)1个静态文本标签,用于显示实验名称;(4)一个按钮群,用于管理4个单选按钮.(5)4个单选按钮,分别用于控制正弦波和方波的调幅与调频.
3.2 回调函数的编写
编写回调函数之前,首先要对Guide界面对象根据需要进行布局,打开控件的属性查看器,设置这些控件的属性.然后编写好每一个组件的回调程序来实现对组件的控制.用鼠标点击时,组件完成相应的功能.
本实验调制信号频率为10 Hz的正弦波et=sin(2*pi*10*t)和频率为10 Hz的方波,采样频率fs为1 000 Hz,载波频率为100 Hz.
正弦波幅度调制与解调过程中,按钮组(Button Group)的主要回调函数(SelectionChangeFcn)代码如下:
switch str
fs=1000;
Fc=100;
N=1000;
t=linspace(0,0.5,fs);
et=sin(2*pi*10*t);
axes(handles.axes1)
comet(t,et)
plot(t,et)
axis([0,0.5,-1,1])
f=[-500:499]/N*fs;
yk=fft(et,N);
yw=abs(fftshift(yk))/N;
at=ammod(et,Fc,fs);
axes(handles.axes2)
comet(t,at)
plot(t,at)
axis([0,0.5,-1,1])
yk1=fft(at,1000);
yw1=abs(fftshift(yk1))/N;
et1=amdemod(at,Fc,fs);
axes(handles.axes3)
comet(t,et1)
plot(t,et1)
axis([0,0.5,-1,1])
回调程序中利用comet函数进行彗星动画演示.程序动态地绘制了调制波、已调波和解调波的演化图形,绘制结束后留下了运动的轨迹.
3.3 动态图形的演示
点击4个单选按钮,分别得到如下正弦波调幅、方波调幅、正弦波调频和方波调频的动态图形.
图2和图3是幅度调制与解调的动态图形.可以看出,载波的振幅随着调制信号的规律而变化(但频率保持不变).解调后的信号与调制信号频率相同.
图2 正弦波调幅信号图
图3 方波调幅信号图
图4和图5是频率调制与解调的动态图形.可以看出,载波的频率随着调制信号幅度变化而变化(但幅度保持不变).与输入的调制信号相比,解调后的信号与调制信号频率相同, 实现了无失真解调.
图4 正弦波调频信号图
图5 方波调频信号图
以上所述调幅和调频是两种不同的信号调制方式,它们有各自不同的机理和特点,实际应用时可根据需要选择其中一种调制方式.比如,为提高信号的抗干扰能力,可选择调频方式.
4 小结
本文利用Matlab Guide功能,基于高中物理教学要求,分别对频率调制与解调、幅度调制与解调过程进行仿真.点击Matlab Guide界面按钮可以分别将正弦波调幅、方波调幅、正弦波调频和方波调频过程动态地演示出来.本文所做的尝试一方面帮助学生建立基本的调制与解调概念,理解基本的调制与解调原理,区分调频与调幅的不同本质.另一方面,生动形象的教学内容有助于增强学生对抽象概念的深入理解,调动学生的学习兴趣和积极性,提高课堂的教学效果.同时,借此实例让学生真切地体会到信息技术在物理教学中的应用.