- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1
课程设计的目的和任务
“数字信号处理”课程是信息和通信工程专业必修的专业技术基础课程。课程以信号与系统作为研究对象,研究对信号进行各种处理和利用的技术。通过该课程的学习,学生应牢固掌握确定性信号和系统的分析方法、相关算法、系统实现等的相关知识的,借助于数字滤波器的设计及实现,学生可掌握数字系统的分析以及设计方法。 数字信号处理是理论性和工程性都很强的学科,本课程设计的目的就是使该课程的理论与工程应用的紧密结合, 使学生深入理解信号处理的内涵和实质。
本课程设计要求学生在理解信号处理的数学原理的基础上,应用计算机编程手段,实现一种信号分析或处理的设计,达到对所学内容融会贯通,综合各部分知识,按照题目要求独立设计完成。
课程设计的题目和要求
1.课程设计题目:DTMF信号的产生与解码
DTMF编解码广泛应用于数字电话拨号,简单通信协议等领域。目前所有的电话和传真机按键都是采用DTMF信号进行编码和传输的,该方案实际是利用模拟信号对数字符号进行编码。
该编码方案共使用8个模拟频率对16个符号进行编码,这16个频率分为2个群:高音群和低音群。所以称为双音多频(Dual-Tone Multiple-Frequency)编码,其编码方案如图1。由图可知每个符号由一个高音频率和一个低音频率唯一确定。
图1 DTMF信号编码方案
对于该信号的产生,我们可以利用数字振荡器来完成。
而对这些信号的检测,则可以利用DFT来完成。要注意的是,这里只需要计算16个频点的FFT输出,因此课本上介绍基2或基4算法并不是最优的,这时我们需要采用Goerzel算法完成所需的DFT。当然我们也可以用16个窄带带通滤波器完成,窄带带通滤波器的中心频率就是上述各频率。对窄带滤波器输出信号的输出做判决就可以得到解码的结果。
2.设计要求
编制程序生成并显示各符号的时域信号和对应的幅频曲线。
编程模拟电话拨号过程:输入电话号码,生成各号码的时域信号,给时域信号加噪声,编程对含噪声的电话拨号信号进行解码。编制程序测试编解码程序的正确性。要列出表格,统计拨出的符号的解码成功率。
独立完成设计,选择自己熟悉的编程语言编写程序,最好能给出图形界面。
设计过程与结果
1.在MATLAB中建立一个GUI图形界面,将本课程设计所要实现的功能的一些工具拖进GUI界面,并根据需要修改各个工具的属性,建立的初始界面如图2所示。
图2 GUI图形设计的初始界面
打开jink.fig界面所对应的源程序编辑窗口,其中MATLAB会自动生成界面的初始化程序代码以及1——D、“解码检测”和“退出”共18个按钮各按钮的函数名和参数功能解释。在这里,我们需要对每个按钮要实现的具体功能编写程序,由于按钮函数较多,且1——D数字按钮的功能相似,故可以编写函数供每个这样的函数调用,从而避免程序的繁杂冗余。例如对于点击数字键“1”时要实现的功能的函数可以为如下代码:
set(handles.DecodeText,string,); %清空解码显示文本框
Signal = PressKeyDown(handles,1);
handles.DTMFSignal = Signal;
handles.TelNumber=strcat(handles.TelNumber,1);
% Update handles structure
guidata(hObject, handles);
set(handles.CodeText,string,handles.TelNumber);
当运行程序后点击数字键“1”时,pushbutton1_Callback函数会调用PressKeyDown函数,从而完成发出相应的声音、在text1文本框中显示出点击的数字、在axes1和axes2画出对应的图形等功能。
点击几个数字或字母键后,在界面中运行的结果如图3所示。
图3 拨号时界面的显示结果
在拨号后,要对所接收的拨号信号进行解码检测,检测两个正弦波的频率分别是多少,以判断所对应的十进制数字或字母符号。检测方法有两种,一是用一组滤波器提取所关心的频率,根据两个滤波器的输出信号判断相应的数字或符号,另一是用DFT(FFT)对双音多频信号进行频谱分析,由信号幅度谱判断信号的两个频率,最后确定相应的数字或符号。本设计所编写的相应的解码部分程序代码如下:
function pushbutton17_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton17 (see GCBO)
% eventdata rese
文档评论(0)