数字信号处理综合实验:

一、实验内容及要求
实验内容:
综合运用课程所学相关知识,根据实际信号的频谱特性,确定数字滤波器设计技术指标,设计相应的数字滤波器,实现DTMF信号的提取。
设计要求:
(1)通过查阅资料,自学电话中DTMF信号的产生与检测方法。
(2)利用Matlab实现DTMF信号的产生与提取。
自行选择数字(0-9),通过数字方法产生该数字的双频信号;拟定采样频率为8000Hz。根据该信号的频率特性,确定滤波器类型及技术指标,将两个单音分别提取出来。画出数字滤波器输入、输出信号的波形及频谱。
(3)利用Matlab GUI设计用户界面,实现拨号界面,包括10个数字键、显示框(显示按下的数字),画出相应的波形。
(4)自拟实验方案及具体实验步骤(要求写出设计方案)。
创新训练拓展内容:
(1)在GUI用户界面中,除设计要求(3)中的内容外,可增加滤波器部分,即实现设计要求(2)中的内容。
(2)利用Labview软件进行DTMF信号的产生与提取。要求给出系统前面板结构、 程序框图等,记录仿真结果。
(3)利用Simulink进行DTMF信号的产生与提取。要求给出系统仿真图,记录系统的各个输出点的波形。
二、实验步骤、结果与分析
1.通过查阅资料,自学电话中DTMF信号的产生与检测方法。利用Matlab实现DTMF信号的产生与提取。自行选择数字(0-9),通过数字方法产生该数字的双频信号;拟定采样频率为8000Hz。根据该信号的频率特性,确定滤波器类型及技术指标,将两个单音分别提取出来。画出数字滤波器输入、输出信号的波形及频谱。

1.通过查阅资料,自学电话中DTMF信号的产生与检测方法。利用Matlab实现DTMF信号的产生与提取。自行选择数字(0-9),通过数字方法产生该数字的双频信号;拟定采样频率为8000Hz。根据该信号的频率特性,确定滤波器类型及技术指标,将两个单音分别提取出来。画出数字滤波器输入、输出信号的波形及频谱。

以数字5为例。

clc;
clear;
n=0:1023;
x=sin(2*pi*n*770/8000)+sin(2*pi*n*1336/8000);%产生DTMF信号
soundsc(x,8000);
subplot(3,2,1)
plot(n,x);
title('DTMF信号')
axis([0,100,-2,2]);
k=512;
X=fft(x,k);
subplot(3,2,2)
plot(abs(X));
title('DTMF信号频谱')
%利用带通滤波器滤出低频分量
fpl=700;fpu=800;
fsl=550;fsu=850;
Fs=8000;
wp=[2*fpl/Fs,2*fpu/Fs];
ws=[2*fsl/Fs,2*fsu/Fs];
rp=1;rs=40;
[N,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N,rp,rs,wpo);
y=filter(B,A,x);
soundsc(y,8000);
subplot(3,2,3)
plot(y);
axis([50,100,-1,1]);
title('DTMF信号低频分量')
Y=fft(y,k);
subplot(3,2,4)
plot(abs(Y));
title(' DTMF信号低频分量频谱')
%利用带通滤波器滤出高频分量
fpl1=1200;fpu1=1400;
fsl1=1100;fsu1=1500;
Fs=8000;
wp1=[2*fpl1/Fs,2*fpu1/Fs];
ws1=[2*fsl1/Fs,2*fsu1/Fs];
rp=1;rs=40;
[N1,wpo1]=ellipord(wp1,ws1,rp,rs);
[B1,A1]=ellip(N1,rp,rs,wpo1);
y1=filter(B1,A1,x);
soundsc(y1,8000);
subplot(3,2,5)
plot(y1);
title(' DTMF信号高频分量')
axis([50,100,-1,1]);
Y1=fft(y1,k);
subplot(3,2,6)
plot(abs(Y1));
title(' DTMF信号高频分量频谱')


2.利用Matlab GUI设计用户界面,实现拨号界面,包括10个数字键、显示框(显示按下的数字),画出相应的波形。
设计的GUI界面:

其中有十二个按键,运行时,每按一个键,右侧框图中都会出现相应的波形,每个按键都有自己独立的程序,下面是按键“2”的gui程序:

function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
n=0:1023;
x=sin(2*pi*n*697/8000)+sin(2*pi*n*1336/8000);
sound(x,8000);
set(handles.edit1,'String',2);
axes(handles.axes1);
plot(x);
axis([0 200 -2 2]);
k=512;
X=fft(x,k);
plot(handles.axes2,abs(X));
sound(x,8000);
%滤出低频分量
fpl=500;fpu=750;
fsl=300;fsu=900;
Fs=8000;
wp=[2*fpl/Fs,2*fpu/Fs];
ws=[2*fsl/Fs,2*fsu/Fs];
rp=1;rs=40;
[N,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N,rp,rs,wpo);
y=filter(B,A,x);
soundsc(y,8000);
axes(handles.axes3);
plot(y);
axis([0 200 -2 2]);
Y=fft(y,k);
plot(handles.axes4,abs(Y));
%滤出高频分量
fpl1=1200;fpu1=1400;
fsl1=900;fsu1=1600;
Fs=8000;
wp1=[2*fpl1/Fs,2*fpu1/Fs];
ws1=[2*fsl1/Fs,2*fsu1/Fs];
rp=1;rs=40;
[N1,wpo1]=ellipord(wp1,ws1,rp,rs);
[B1,A1]=ellip(N1,rp,rs,wpo1);
y1=filter(B1,A1,x);
soundsc(y1,8000);
axes(handles.axes5);
plot(y1);
axis([0 200 -2 2]);
Y1=fft(y1,k);
plot(handles.axes6,abs(Y1));

结果图:

3.利用Simulink进行DTMF信号的提取。要求给出系统仿真图,记录系统各个输出点的波形

系统仿真图:

滤波器设计

4.利用Labview软件进行DTMF信号的产生与提取。要求给出系统前面板结构、 程序框图等,记录仿真结果。
LABVIEW前面板布局(以1为例):

程序框图

滤除低频成分

滤除高频

数字信号处理综合实验——Matlab实现DTMF信号的产生与提取相关推荐

  1. 数字信号处理综合实验 ——提取混音音频

    在学习了IIR滤波器的设计后,可以试图对一个混频信号进行滤波处理,下面附上我的实验报告. 一.实验目的 设计合适的IIR数字滤波器分别提取给定的混音文件中蛐蛐叫声和直升飞机的轰鸣声.独立编写实现上述功 ...

  2. 实验一熟悉matlab环境,数字信号处理报告实验一:熟悉MATLAB环境.doc

    数字信号处理报告实验一:熟悉MATLAB环境.doc 实验一熟悉MATLAB环境一 实验目的1. 熟悉MATLAB的主要操作命令.2. 学会简单的矩阵输入和数据读写.3. 掌握简单的绘图命令.4. 用 ...

  3. matlab数字信号处理 王彬,MATLAB数字信号处理

    前言 第1章 基础知识导论 1.1 MATLAB7.0语言简介 1.1.1 MATLAB7.0语言特点 1.1.2 MATLAB7.0的工作环境 1.1.3 M文件介绍 1.2 MATLAB基本程序控 ...

  4. 数字信号处理 matlab 答案,数字信号处理课后习题Matlab作业

    <数字信号处理课后习题Matlab作业>由会员分享,可在线阅读,更多相关<数字信号处理课后习题Matlab作业(22页珍藏版)>请在人人文库网上搜索. 1.数字信号处理MATL ...

  5. 数字信号处理的fpga实现_FPGA数字信号处理:通信类I/Q信号及产生

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  6. FPGA数字信号处理:通信类I/Q信号及产生

    FPGA数字信号处理:通信类I/Q信号及产生 大侠好,"宁夏李治廷"再一次和各位见面了,今天给各位大侠分享在FPGA数字信号处理中通信类I/Q信号及产生. 欢迎各位大侠一起切磋交流 ...

  7. 对时域连续信号用matlab离散,数字信号处理上机实验一 离散时间信号的时域分析...

    实验1 离散时间信号的时域分析 一.实验目的 (1)了解MATLAB语言的主要特点及作用: (2)熟悉MATLAB主界面,初步掌握MATLAB命令窗和编辑窗的操作方法: (3)了解常用时域离散信号及其 ...

  8. 基于matlab的心电信号处理毕业论文,浅议仿真基于MATLAB的“数字信号处理”仿真实验毕业论文范文...

    论文导读:),通过扬声器可以听到"重庆邮电大学,重庆邮电大学"声音,对原始语音信号进行FFT 频谱分析,程序关键代码如下: figure: t=(0:length(x)-1)/Fs ...

  9. 数字信号处理上机实验一 离散时间信号的时域分析

    实验1 离散时间信号的时域分析 一.实验目的 (1)了解MATLAB语言的主要特点及作用: (2)熟悉MATLAB主界面,初步掌握MATLAB命令窗和编辑窗的操作方法: (3)了解常用时域离散信号及其 ...

最新文章

  1. html div 垂直对齐,div垂直对齐中间css
  2. apache限制php上传大小修改
  3. spring boot 集合mysql_Spring boot整合mysql和druid
  4. Fedora 17 安装视频
  5. Java编程思想—第八九章
  6. android spp传输速度,Android蓝牙SPP连接似乎在几秒后就已经死了
  7. html 做王者荣耀
  8. 文件后缀名怎么修改?文件不显示后缀名怎么办
  9. 【拆书】9000字总结,一文掌握737页程序员圣经《深入理解计算机系统》(第三版)重点
  10. redis 40道面试题
  11. c编程语言外文翻译及原文,外文翻译--基于ST语言(结构化文本语言)可编程控制器(中文)...
  12. 通俗易懂的欧拉回路——哥尼斯堡七桥问题
  13. android 获取蓝牙设备id_安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID
  14. 关于去除CSDN上图片的默认水印
  15. win7用html做桌面,win7系统怎么制作主题桌面,win7系统制作主题桌面方法
  16. 【射影几何05】齐次坐标系(Homogeneous coordinates)
  17. 解决:L2TP服务器没有响应。请尝试重新连接。如果仍然有问题,请验证您的设置并与管理员联系。
  18. 用java实现网络爬虫,实时获取中国地震台网数据
  19. 按首字母升序输出国家名称
  20. 阈的粤语发音_阈_阈的意思_阈的解释_读音、组词、笔划-98在线字典

热门文章

  1. strncpy和strcpy和memcpy
  2. C语言——register
  3. 如何理解变量的声明和定义?
  4. 声源近场与远场定位及方法
  5. Linux集群之自我搭建(虚拟机固定ip与联网)
  6. 中基鸿业低收入家庭如何理财
  7. jquery如何根据id获取标签内的值,以及如何通过id赋值,各种标签赋值取值汇总
  8. Unity3D 未挂载脚本自动初始化
  9. jekins基本配置
  10. 二叉树、平衡二叉树、完全二叉树、满二叉树