数字信号处理实验六--数字信号处理在双音多频拨号系统中的应用
数字信号处理技术在音频双声道输出中的应用研究
数字信号处理技术在音频双声道输出中的应用研究随着数字化时代的到来,数字信号处理技术越来越受到广泛关注和应用。
它在音频技术领域中也有着广泛的应用,比如在音频双声道输出技术中的应用。
本文将探讨数字信号处理技术在音频双声道输出中的应用研究。
一、数字信号处理技术简介数字信号处理技术指的是将连续的模拟信号转换为数字信号,并对数字信号进行处理和分析的技术。
它广泛应用于音频、图像、视频等各个领域。
数字信号处理技术通过对信号进行数字化处理和分析,使得信号的波形、频谱和时域特性能够被更精细地描述和分析。
二、音频双声道输出技术音频双声道输出技术是指将一个声道的声音分成两个声道输出的技术,即左声道和右声道。
双声道技术在录音、广播、影视制作等领域都有着广泛的应用。
在音频双声道输出中,数字信号处理技术发挥着重要的作用。
三、数字信号处理技术在音频双声道输出中的应用研究1.数字滤波器数字滤波器是数字信号处理技术中的重要组成部分。
数字滤波器能够对信号进行去噪、滤波等操作,使得信号的质量得到提高。
在音频双声道输出技术中,数字滤波器可以对声音进行滤波,使得声音的质量更加清晰,音质更加优秀。
2.声场重建技术声场重建技术是数字信号处理技术在音频双声道输出中的重要应用之一。
声场重建技术可以将单声道信号转换为双声道信号,进而实现左声道和右声道的分离输出。
同时,声场重建技术还能够实现音频信号的空间环绕效果,使得听众感觉到真实的立体声效果。
3.立体声扩展技术立体声扩展技术是数字信号处理技术在音频双声道输出中的重要应用之一。
立体声扩展技术能够对双声道信号进行扩充,提高声音的宽度和深度,使得听众感觉到更加丰富的音效体验。
立体声扩展技术可以通过合成、交叉谱分析、相位调节等技术实现。
4.动态压缩技术动态压缩技术是数字信号处理技术在音频双声道输出中的重要应用之一。
动态压缩技术可以对声音进行动态压缩处理,提高声音的可听性和清晰度。
同时,动态压缩技术还能够对过高或过低的音频信号进行压缩,使得音质更加均衡。
双音多频的原理及应用
双音多频的原理及应用1. 介绍双音多频(Dual-tone multi-frequency,DTMF)技术是一种用于电话系统中的频率信号的编码解码技术。
它通过利用两个音频频率信号的组合来表示数字、字母和符号。
DTMF技术常用于电话呼叫的拨号信号传输以及电话系统的菜单导航功能。
在本文中,我们将介绍双音多频的工作原理,并探讨它在通信领域中的应用。
2. 原理双音多频的原理基于频率信号的编码解码。
它使用低频和高频信号的组合来表示特定的按键。
DTMF 使用了8种不同的频率,其中4个是低频信号(697 Hz,770 Hz, 852 Hz, 941 Hz),另外4个是高频信号(1209 Hz, 1336 Hz, 1477 Hz, 1633 Hz)。
这些频率信号被分配到电话键盘上的不同按键上。
当用户按下电话键盘上的某个按键时,系统会发送相应的双音多频信号。
接收端的系统通过检测并解码接收到的信号,将之转换为相应的数字、字母或符号。
3. 应用双音多频技术在通信领域中有许多应用。
以下是一些常见的应用场景:3.1 电话呼叫双音多频技术最经典的应用之一是电话呼叫中的拨号信号传输。
当用户拨号时,电话系统会通过发送相应的双音多频信号将按键信息传递给对方。
接收端的电话系统会接收并解码这些信号,将之转换为相应的数字,实现呼叫功能。
3.2 电话系统菜单导航许多电话系统都配备了语音导航系统,以实现更方便的用户交互。
在这些系统中,双音多频技术被用作菜单选择和导航的手段。
用户可以通过按键输入相应的双音多频信号,选择菜单选项或进行导航操作。
3.3 银行自动语音服务银行等金融机构的自动语音服务系统也广泛使用双音多频技术。
用户可以通过按键输入相应的双音多频信号,选择需要的服务项目或进行账户查询、转账等操作。
3.4 安全门禁系统安全门禁系统常常使用双音多频技术的密码验证功能。
用户可以通过输入预设的密码,通过按键输入相应的双音多频信号,验证身份并获得进入权限。
数字信号处理及其在音频处理中的应用
数字信号处理及其在音频处理中的应用数字信号处理(Digital Signal Processing,DSP)是指将信号采样、量化、数字化后,通过数字电路进行处理、运算、变换等一系列操作,最终获得所需信号的技术。
该技术的应用领域广泛,包括通信、音频、医疗等。
本文将重点介绍数字信号处理在音频处理中的应用。
一、数字信号处理的基本概念1. 采样与量化采样是指将连续的信号在时间上离散化,即在一定的时间间隔内取样。
通常使用模拟-数字转换器(ADC)进行采样操作。
量化是指将模拟信号的幅度转换成离散的数值。
通常使用模数转换器(DAC)将数字信号转换回模拟信号输出。
2.数字滤波数字滤波是指通过数字信号处理器对数字信号进行滤波处理。
数字滤波器的组成部分包括滤波器传递函数、滤波器系统响应和滤波器误差。
数字滤波器按照滤波器类型可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。
3.数字变换数字变换是指将信号从时域转换到另一个域,如频域或复数域。
典型的数字变换包括快速傅里叶变换(FFT)、离散余弦变换(DCT)和小波分析等。
二、数字信号处理在音频处理中的应用1.数字均衡器数字均衡器是数字信号处理常用的一种滤波器,其作用是调整频率响应以改善音质。
数字均衡器具有可调节的等化器频率和增益,可以调整音频输出频谱以改变声音的音质和性格。
2.降噪由于麦克风和扬声器等音频设备的限制,音频信号中常含有噪声。
降噪技术可以减少音频信号中噪声的干扰。
数字信号处理器主要通过对峰值检测和自适应滤波等算法来减少噪声。
3.压缩与限幅数字信号处理器还可以通过多种处理算法对音频信号进行压缩和限幅。
压缩过程可以对音频信号进行动态范围压缩,使声音更加平稳。
而限幅则可以限制噪声波峰的大小,保护音频设备的硬件。
4.混响混响是指向音频信号添加模拟空间的处理方法。
通过数字信号处理,可以模拟各种不同的混响效果,使音频信号更加逼真,听起来更加自然。
5.声音识别数字信号处理还可以应用于声音识别,如语音识别、语音合成、语音控制等。
数字信号处理实验六--数字信号处理在双音多频拨号系统中的应用
实验六数字信号处理在双音多频拨号系统中的应用双音多频(Dual Tone Multi Frequency, DTMF)信号是音频中的拨号信号,由美国AT&T 贝尔公司实验室研制,并用于网络中。
这种信号制式具有很高的拨号速度,且容易自动监测识别,很快就代替了原有的用脉冲计数方式的拨号制式。
这种双音多频信号制式不仅用在网络中,还可以用于传输十进制数据的其它通信系统中,用于电子和银行系统中。
这些系统中用户可以用发送DTMF信号选择语音菜单进行操作。
DTMF信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,其中还用到了D/A变换器;在接收端用A/D变换器将其转换成数字信号,并进行数字信号处理与识别。
为了系统的检测速度并降低成本,还开发一种特殊的DFT算法,称为戈泽尔(Goertzel)算法,这种算法既可以用硬件(专用芯片)实现,也可以用软件实现。
下面首先介绍双音多频信号的产生方法和检测方法,包括戈泽尔算法,最后进行模拟实验。
下面先介绍中的DTMF信号的组成。
在中,数字0~9的中每一个都用两个不同的单音频传输,所用的8个频率分成高频带和低频带两组,低频带有四个频率:679Hz,770Hz,852Hz和941Hz;高频带也有四个频率:1209Hz,1336Hz,1477Hz和1633Hz.。
每一个数字均由高、低频带中各一个频率构成,例如1用697Hz和1209Hz两个频率,信号用表示,其中,。
这样8个频率形成16种不同的双频信号。
具体以及符号对应的频率如表10.6.1所示。
表中最后一列在中暂时未用。
表10.6.1 双频拨号的频率分配DTMF信号在中有两种作用,一个是用拨号信号去控制交换机接通被叫的用户机,另一个作用是控制机的各种动作,如播放留言、语音信箱等。
2 中的双音多频(DTMF)信号的产生与检测(1)双音多频信号的产生假设时间连续的 DTMF信号用表示,式中是按照表10.10.1选择的两个频率,代表低频带中的一个频率,代表高频带中的一个频率。
数字信号处理(第二版)上机实验
上机实验数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。
本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。
实验一 系统响应及系统稳定性。
实验二 时域采样与频域采样。
实验三 用FFT 对信号作频谱分析。
实验四 IIR 数字滤波器设计及软件实现。
实验五 FIR 数字滤波器设计与软件实现实验六 应用实验——数字信号处理在双音多频拨号系统中的应用任课教师根据教学进度,安排学生上机进行实验。
建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。
学习完第六章进行;实验五在学习完第七章后进行。
实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。
10.1 实验一: 系统响应及系统稳定性1.实验目的(1)掌握 求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB 语言的工具箱函数filter 函数。
也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
数字信号处理技术在音频系统中的应用
数字信号处理技术在音频系统中的应用第一章:引言随着科技的不断发展和进步,数字信号处理技术在各个领域得到了广泛的应用。
其中,音频系统是数字信号处理技术的一个重要领域。
数字信号处理技术在音频系统中的应用,不仅可以提高音频信号的质量和效果,还可以实现音频信号的处理和控制。
本文将重点介绍数字信号处理技术在音频系统中的几个主要应用。
第二章:音频数据的数字化音频系统中采用数字信号处理技术的第一个步骤是将模拟音频信号转换为数字音频信号。
这一步骤是通过模拟-数字转换器(ADC)完成的。
模拟-数字转换器将模拟音频信号进行采样和量化处理,得到对应的数字音频信号。
采样率和量化位数是决定数字音频信号质量的重要参数。
较高的采样率和量化位数可以提高数字音频信号的准确性和保真度,从而增强音频系统的性能。
第三章:音频信号的处理数字信号处理技术在音频系统中的另一个重要应用是音频信号的处理。
通过对数字音频信号进行滤波、均衡、混响等处理,可以改变音频信号的频率特性、时域特性和空间特性,从而调整音频信号的声音效果和音质。
滤波处理可以去除音频信号中的杂音和干扰,增强音频信号的清晰度;均衡处理可以通过调整音频信号的频率响应,改变音频信号的音色和声场效果;混响处理可以模拟不同的房间和场景,增加音频信号的立体感和深度感。
第四章:音频信号的编码和压缩在音频系统中,数字信号处理技术还可以应用于音频信号的编码和压缩。
通过对音频信号进行编码和压缩,可以将音频信号的数据量减小到较小的尺寸,从而方便存储和传输。
常用的音频编码和压缩算法有MP3、AAC等。
这些算法通过对音频信号进行频域分析、量化和编码处理,将音频信号的冗余信息去除,从而实现音频信号的高效编码和压缩。
第五章:音频信号的恢复和重建数字信号处理技术还可以应用于音频信号的恢复和重建。
在音频传输和存储过程中,由于信号传播和储存介质的限制,音频信号通常会受到损坏和失真。
通过使用数字信号处理技术,可以对受损的音频信号进行恢复和重建,使其恢复原来的音质和效果。
数字信号处理实验报告
一、实验目的1. 理解数字信号处理的基本概念和原理。
2. 掌握离散时间信号的基本运算和变换方法。
3. 熟悉数字滤波器的设计和实现。
4. 培养实验操作能力和数据分析能力。
二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。
本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。
2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。
3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。
4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。
三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。
(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。
2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。
(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。
3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。
(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。
4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。
(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。
四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。
第13章_数字信号处理应用举例分解
的DTMF信号用 sin(2 f1t ) sin(2 f2t ) 表示,其中
f1 697 Hz, f 2 1209Hz
5
13.1.1电话系统中的双音多频信号
8个频率形成16种不同的DTMF信号,具体DTMF拨号 的频率分配见下表
高 低频 率 频 率
1209Hz 1 4 7
1336Hz 2 5 8
1447Hz 3 6 9
633Hz A B C
697Hz 770Hz 852Hz
942Hz
*
0
#
D
表 13.1.1 DTMF拨号的频率分配
6
13.1.1电话系统中的双音多频信号
电话中的双音多频信号的作用
用拨号信号去控制交换机接通被叫的用户电
12
13.1.3戈泽尔算法
戈泽尔算法的计算公式和实现结构
假设长度为N的序列 x(n) 的N点DFT用X(k) 表示,因为 WNkN 1 ,因此
X (k ) W
kN N
X (k ) W
kN N
k ( N m ) x(m)WN m0
N 1
m 0
km x ( m ) W N
戈泽尔算法的原理方框图如图13.1.1(c)所 示
N 1
(13.1.1)
k 0,1, 2,
, N 1
定义序列
yk (n)
m0 k ( nm) x ( m ) W N N 1
(13.1.2)
kn x(n)*WN
13
13.1.3戈泽尔算法
令 则
数字信号处理技术在通信系统中的应用
数字信号处理技术在通信系统中的应用数字信号处理(Digital Signal Processing,DSP)技术是将模拟信号转化为数字信号,并对数字信号进行处理和分析的一种技术。
在现代通信系统中,数字信号处理技术起着至关重要的作用。
本文将探讨数字信号处理技术在通信系统中的应用。
首先,数字信号处理技术在通信系统中的一个重要应用是通信信号的编解码。
在数字通信中,信号需要经过编码和解码的过程,以便能够在通信链路上传输。
编码技术可以将原始信号转换为数字信号,使其能够在数字通信链路上传输,同时提高信号的抗干扰性能。
解码技术则将接收到的数字信号转换为原始信号,恢复出原始信息。
在数字通信中,常用的编解码技术包括纠错编码、压缩编码和调制解调技术等。
通过数字信号处理技术,通信系统能够实现高效的编解码过程,提高通信质量和传输效率。
其次,数字信号处理技术在通信系统中的另一个重要应用是信号滤波。
在通信系统中,信号通常会受到各种噪声和干扰的影响,这些噪声和干扰会导致信号质量下降或者无法恢复。
为了提高通信系统的性能,需要对信号进行滤波处理,去除或者减弱噪声和干扰的影响。
数字信号处理技术提供了多种滤波算法和方法,例如低通滤波、高通滤波、带通滤波等技术,可以根据信号的特点和需求进行滤波处理,从而提高通信系统的可靠性和稳定性。
另外,数字信号处理技术在通信系统中还广泛应用于信号检测和估计。
在通信系统中,由于信道的影响和传输环境的变化,信号会发生衰减、失真或者干扰等问题,导致信号损失或者失真。
为了解决这些问题,需要通过信号检测和估计的技术对信号进行恢复和优化。
数字信号处理技术可以利用统计和数学方法,对接收到的信号进行检测和估计,从而实现对信号的恢复和优化,提高通信系统的性能和可靠性。
此外,数字信号处理技术还应用于通信系统中的信号分析和频谱分析。
在通信系统中,为了了解信号的特性和性能,需要对信号进行分析和测试。
数字信号处理技术提供了丰富的信号分析和频谱分析方法,可以对信号的频谱、功率谱、时域和频域等特性进行分析和测试。
数字信号处理上机实验
第十章上机实验数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。
本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。
实验一 系统响应及系统稳定性。
实验二 时域采样与频域采样。
实验三 用FFT 对信号作频谱分析。
实验四 IIR 数字滤波器设计及软件实现。
实验五 FIR 数字滤波器设计与软件实现 实验六 应用实验——数字信号处理在双音多频拨号系统中的应用任课教师根据教学进度,安排学生上机进行实验。
建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。
学习完第六章进行;实验五在学习完第七章后进行。
实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。
10.1 实验一: 系统响应及系统稳定性1.实验目的 (1)掌握 求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB 语言的工具箱函数filter 函数。
也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
数字信号处理在通信系统中的应用
数字信号处理在通信系统中的应用数字信号处理(Digital Signal Processing,简称DSP)是一种利用数学算法和硬件设备对数字信号进行处理的技术。
在通信系统中,数字信号处理具有广泛的应用,包括信号采集、信号压缩、信道编解码等。
本文将介绍数字信号处理在通信系统中的应用。
一、信号采集与预处理数字信号处理在通信系统中的首要任务是对信号进行采集与预处理。
这一过程一般包括模拟信号转换为数字信号、滤波、采样等步骤。
1. 模拟信号转换为数字信号通信系统中的信号一般为模拟信号,需要将其转换为数字信号,以便于后续处理。
利用模数转换器(ADC)可以将连续的模拟信号转换为离散的数字信号。
ADC的输入是模拟信号,经过采样与量化后得到一系列离散的信号样本。
2. 滤波滤波是对信号进行去除不必要成分的过程。
在通信系统中,滤波一般用于消除噪声干扰,提高信号的质量。
数字滤波器通过对数字信号进行滤波操作,可以实现滤波效果。
3. 采样采样是指对信号进行离散化处理的过程。
在通信系统中,采样将连续的信号转换为离散的信号,以便于存储、处理和传输。
采样频率的选择需要平衡信息传输和消耗资源的需求。
二、信号压缩与解压缩数字信号处理在通信系统中常用于信号的压缩与解压缩。
信号压缩是指将信号用更少的比特数表示,以减少存储空间和传输带宽的需求。
信号解压缩则是将压缩后的信号恢复为原始信号的过程。
1. 压缩算法信号压缩算法主要包括无损压缩和有损压缩两种。
无损压缩算法可以完全还原原始信号,但压缩率较低;有损压缩算法则对信号进行一定程度的信息损失,但可以获得更高的压缩率。
通信系统中常用的压缩算法有哈夫曼编码、熵编码、小波变换等。
2. 解压缩算法解压缩算法是将压缩的数字信号还原为原始信号的过程。
解压缩算法要与压缩算法相对应,确保还原信号的准确性和完整性。
通信系统中常用的解压缩算法有逆哈夫曼解码、逆熵编码、逆小波变换等。
三、信号编码与解码在通信系统中,数字信号处理还可以用于信号的编码与解码。
数字信号处理在双音多频拨号系统中的应用
实验一、数字信号处理在双音多频拨号系统中的应用一、实验目的1.了解双音多频信号的产生、检测、包括对双音多频信号进行DFT 时的参数选择等。
2.初步了解数字信号处理在是集中的使用方法和重要性。
3.掌握matlab 的开发环境。
二、实验原理双音多频(Dual Tone Multi Frequency, DTMF )信号是音频电话中的拨号信号.由美国AT&T 贝尔公司实验室研制.并用于电话网络中。
这种信号制式具有很高的拨号速度.且容易自动监测识别.很快就代替了原有的用脉冲计数方式的拨号制式。
这种双音多频信号制式不仅用在电话网络中.还可以用于传输十进制数据的其它通信系统中.用于电子邮件和银行系统中。
这些系统中用户可以用电话发送DTMF 信号选择语音菜单进行操作。
DTMF 信号系统是一个典型的小型信号处理系统.它要用数字方法产生模拟信号并进行传输.其中还用到了D/A 变换器;在接收端用A/D 变换器将其转换成数字信号.并进行数字信号处理与识别。
为了系统的检测速度并降低成本.还开发一种特殊的DFT 算法.称为戈泽尔(Goertzel)算法.这种算法既可以用硬件(专用芯片)实现.也可以用软件实现。
下面首先介绍双音多频信号的产生方法和检测方法.包括戈泽尔算法.最后进行模拟实验。
下面先介绍电话中的DTMF 信号的组成。
在电话中.数字0-9的中每一个都用两个不同的单音频传输.所用的8个频率分成高频带和低频带两组.低频带有四个频率:679Hz,770Hz,852Hz 和941Hz ;高频带也有四个频率:1209Hz,1336Hz,1477Hz 和1633Hz.。
每一个数字均由高、低频带中各一个频率构成.例如1用697Hz 和1209Hz 两个频率.信号用)2sin()2sin(21t f t f ππ+表示.其中Hz f 6791=.Hz f 12092=。
这样8个频率形成16种不同的双频信号。
具体号码以及符号对应的频率如表4.1所示。
系统辨识-数字信号处理在双音多频拨号系统中的应用
数字信号处理在双音多频拨号系统中的应用张连滨 2015080111 A:八位电话号码1:程序代码程序分四段:第一段(1—7行)设置参数,并读入8位电话号码;第二段(8—20行)根据键入的8位电话号码产生时域离散DTMF信号,并连续发出8位号码对应的双音频声音;第三段(22—25行)对时域离散DTMF 信号进行频率检测,画出幅度谱;第四段(26—33行)根据幅度谱的两个峰值,分别查找并确定输入8位电话号码。
2:运行结果键入电话号码为:52113149接收端接检测的号码为:52113149对时域离散DTMF 信号进行频率检测,幅度谱图如下:实验结论:(1)输入8位号码52113149,接收端,检测到的号码是52113149,说明选取采样频率为Fs =8KHz ,序列长度为N =205是非常正确的。
(2)由DTMF 信号在8个近似基频点的DFT 幅度图可知,第一幅图低频K1=20,K2=33,由表4.2可知1f =770Hz ,2f =1336Hz,由表4.1可知对应的号码为5;第二幅图低频K1=18,K2=33,由表4.2可知1f =697Hz ,2f =1336Hz,由表4.1可知对应的号码为2;第三幅图低频K1=18,K2=31,由表4.2可知1f =697Hz ,2f =1209Hz,由表4.1可知对应的号码为1;第四幅图低频K1=18,K2=31,由表4.2可知1f =697Hz ,2f =1209Hz,由表4.1可知对应的号码为1;第五幅图低频K1=18,K2=38,由表4.2可知1f =697Hz ,2f =1477Hz,由表4.1可知对应的号码为3;第六幅图低频K1=18,K2=31,由表4.2可知1f =697Hz ,2f =1209Hz,由表4.1可知对应的号码为1;第七幅图低频K1=20,K2=31,由表4.2可知1f =770Hz ,2f =1209Hz,由表4.1可知对应的号码为4;第八幅图低频K1=22,K2=38,由表4.2可知1f =852Hz ,2f =1477Hz ,由表4.1可知对应的号码为9;即最终输出号码为52113149,与程序运行结果相同。
数字信号处理实验3 双音多频的通信
《数字信号处理》作业实验3 双音多频的通信双音多频是4x4按钮键盘的一种编码方法,它的原理是用一个低频正弦波和一个高频的正弦波组合成为一个按钮信号。
双音多频通常简写为DTMF。
作为一种通信手段,DTMF广泛应用在电话拨号中,作用是控制电话局的交换机快速和准确地连接通话线路;DTMF也可以用来控制爆炸,用咋爱自动取款机、信息传送等方面。
双音多频的信号产生和解调可以用模拟电路来实现,也可以用数字信号处理来实现。
下面用数字信号处理的方法,在计算机上实现双音多频的通信。
基本的双音多频MATLAB程序如下:请从数字信号处理的角度分析以上的各条指令的作用。
善用已学的知识经常会获得事半功倍的效果。
理解指令k=[18,20,22,24,31,34,38,42]的作用时,请利用频率的分辨率和离散频率的序号的关系。
理解指令t=80的作用时,观察205点长的双音频信号的频谱实验程序:%%%%键盘号码发射机%%%%DTMF=['123A';'456B';'789C';'*0#D']; %设置双音多频的键盘号码矩阵fL=[697,770,852,941];fH=[1209,1336,1477,1633]; %设置键盘的低频和高频正弦波的频率n=0:1000; %产生双音频声音信号的样本序号fs=8000; %设定声音样本的采样频率b=input('请输入按键的号码:','s'); %在MATLAB 的命令窗中输入电话键盘的号码L=length(b); %计算在命令窗中输入的号码长度for m=1:L, %将输入的号码分别与键盘的号码逐个进行对比for p=1:4, %按照键盘的行顺序进行对比for q=1:4, %按照键盘的列顺序进行对比if DTMF(p,q)==abs(b(m)),break,end; %确定与第m 个输入号码b(m)相符的键盘号码的列号endif DTMF(p,q)==abs(b(m)),break,end; %确定与第m 个输入号码b(m)相符的键盘号码的列号endx(m,:)=sin(2*pi*fL(p)*n/fs)+sin(2*pi*fH(q)*n/fs); %根据p 和q 产生对应该键盘号码的双音频正弦波信号sound(x(m,:),fs);pause(0.2); %放该键盘号码的双音频声音,暂停0.2 秒end%%%%键盘号码接收机%%%%N=205; %分析双音频信号时需要的最少样本数量k=[18,20,22,24,31,34,38,42]; %低频和高频在N点长的离散傅里叶变换中对应的最佳顺序r=80; %检测双音频信号的门槛值d=[]; %检测双音频信号对应的键盘号码的初始值for m=1:L; %检测接收的双音频信号x 的每个键盘号码信号X(m,:)=abs(x(m,1:N)*exp(-j*2*pi/N*(1:N)'*k)); %第m 个号码信号xm:的8 种频率的正弦波分量的幅度for s=1:4; %寻找该双音频信号xm:的低频正弦波分量if X(m,s)>r,break,end %如果其正弦波分量的幅度Xms大于门槛值r 就退出该循环endfor t=5:8; %寻找该双音频信号xm:的高频正弦波分量if X(m,t)>r,break,end %如果其正弦波分量的幅度Xmt大于门槛值r 就退出该循环endd=[d,DTMF(s,t-4)]; %根据xm:的低频和高频正弦波的位置形成它们的键盘号码矩阵位置end;disp(['检测得到的号码是:',d]); %显示检测双音频信号x 后得到的号码stem(k,X(1,:),'k')。
数字信号处理上机实验答案(第三版,第十章)1
第十章 上机实验数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。
本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。
实验一 系统响应及系统稳定性。
实验二 时域采样与频域采样。
实验三 用FFT 对信号作频谱分析。
实验四 IIR 数字滤波器设计及软件实现。
实验五 FIR 数字滤波器设计与软件实现实验六 应用实验——数字信号处理在双音多频拨号系统中的应用任课教师根据教学进度,安排学生上机进行实验。
建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。
学习完第六章进行;实验五在学习完第七章后进行。
实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。
10.1 实验一: 系统响应及系统稳定性1.实验目的(1)掌握 求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB 语言的工具箱函数filter 函数。
也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
第13章_数字信号处理应用举例
.
4
13.1.1电话系统中的双音多频信号
电话系统采用双音拨号的原理
所有的频率可分成高频带和低频带两组, 低频带和高频带各有四个频率
✓ 低频带四个频率:679Hz,770Hz,852Hz,941Hz ✓ 高频带四个频率:1209Hz,1336Hz,1447Hz,1633Hz
✓ 按上式画的结构图如13.1.1(b) (13.1.7) ✓ 按照结构图13.1.1(b),可以用两个差分程表示
该二阶滤波器,即
vk(n )2co s 2 N k vk(n 1 )vk(n2 )x(n ) (13.1.8)
y k(n ) v k(n ) W N k v k(n 1 ) (13.1.9)
.
20
13.1.5 DTMF信号系统的模拟实验
MTLAB信号处理工具箱提供了采用二阶戈泽尔 算法的函数Goertzel
Goertzel的调用格式为
Xgk=goertzel(xn,K+1)
xn是被变换的时域序列,用于DTMF信号检时,xn就 是DTMF信号的205个采样值
K是要求计算的DFT 频点的序号向量,用N表示xn的 长度,则要求0≤Κ≤N-1
.
25
13.1.5 DTMF信号系统的模拟实验
图13.1.2 6位电话号码123456的DTMF信号在8个近似基频点的DFT幅度
将收到的时间连续DTMF信号经过A/D变换,变成数 字信号再进行检测
检测的方法有两种
✓ 用一组滤波器提取所关心的频率,判断对应的数 字或符号(当检测的频率数目较少时,用此法实现更合
适)
数字信号处理学习指导与课后答案第8章
Xˆ a ( j ) xa (nT )e j nT n
第8章 上机实验
上式中, 在数值上xa(nT)=x(n), 再将ω=ΩT代入, 得到
Xˆ a ( j ) x(n)e j n n
上式的右边就是序列的傅里叶变换X(ejω), 即
Xˆ a ( j ) X (e j ) T
x(n)=sin(0.014n)+sin(0.4n) 求出系统的输出响应y4. 思考题 (1) 如果输入信号为无限长序列, 系统的单位脉冲响 应是有限长序列, 可否用线性卷积法求系统的响应? 如何求 (2) 如果信号经过低通滤波器, 信号的高频分量被 滤掉, 时域信号会有何变化? 用前面第一个实验的结果进 行分析说明。 5. (1) 简述在时域求系统响应的方法。 (2) 简述通过实验判断系统稳定性的方法。 分析上面 第三个实验的稳定输出的波形。 (3) 对各实验所得结果进行简单分析和解释。 (4) 简要回答思考题。 (5) 打印程序清单和要求的各信号波形。
第8章 上机实验
8.1.2
实验1程序: exp1.m %实验1: close all; clear all %==================================== %内容1: 调用filter解差分方程, 由系统对u(n)的响应判
A=[1, -0.9]; B=[0.05, 0.05]; %系统差分方程系数向量B和A
第8章 上机实验
8.1 实验一:
8.1.1
1. (1) 掌握求系统响应的方法。 (2) 掌握时域离散系统的时域特性。 (3) 分析、 观察及检验系统的稳定性。
第8章 上机实验
2. 在时域中, 描写系统特性的方法是差分方程和单位脉 冲响应, 在频域可以用系统函数描述系统特性。 已知输入 信号可以由差分方程、 单位脉冲响应或系统函数求出系统对 于该输入信号的响应。 本实验仅在时域求解。 在计算机上 适合用递推法求差分方程的解, 最简单的方法是采用 MATLAB语言的工具箱函数filter函数。 也可以用MATLAB 语言的工具箱函数conv函数计算输入信号和系统的单位脉冲 响应的线性卷积, 求出系统的响应。
双音多频拨号系统DTMF的实验报告
双音多频拨号系统DTMF的实验设计报告所谓双音多频(DTMF),就是用两个频率——行频和列频来表示机键盘上的一个数字。
DTMF 的指令正在迅速的取代脉冲指令。
除了在呼叫信号中使用外,DTMF 还广泛的使用在交互式控制应用,例如银行、电子甚至家电远程控制等,用户可以从机发送DTMF 信号来做菜单选择。
本文基于MATLAB的双音多频拨号系统的仿真实现。
主要涉及到拨号音合成的基本原理及识别的主要方法,利用 MATLAB 软件以及DFT 算法实现对通信系统中拨号音的合成与识别。
并进一步利用 MATLAB 中的图形用户界面 GUI 制作简单直观的模拟界面。
还能够利用矩阵不同的基频合成 0 - 9 不同按键的拨号音,并能够对不同的拨号音加以正确的识别,实现由拨号音解析出的过程,进一步利用 GUI 做出了简单的图形操作界面。
本文具有界面清楚,画面简洁,易于理解,操作简单的优点,从而实现对拨号音系统的简单的信号仿真。
关键词:双音多频(DTMF) MATLAB GUI 信号仿真在中,数字0~9的中每一个都用两个不同的单音频传输,所用的8个频率分成高频带和低频带两组,低频带有四个频率:679Hz,770Hz,852Hz和941Hz;高频带也有四个频率:1209Hz,1336Hz,1477Hz和1633Hz.。
每一个数字均由高、低频带中各一个频率构成,例如1用697Hz和1209Hz两个频率,信号用表示,其中,。
这样8个频率形成16种不同的双频信号。
一,利用GUI 作图(简单的界面)如下:利用 GUI 图形用户界面设计工具制作拨号面板,把 DTMF 信号和机的键盘矩阵对应起来。
其中选用我们熟悉的 10 个数字键 0 — 9 , 3 个功能键“ 回删”、“拨号”,“解码”。
按照图机键盘矩阵的排列方式制作五行三列的按键控件。
每个按键可用( Push Button )添加。
静态文本框可用( Static Text )添加,如图再加个解码键( Push Button )二,再点运行,得出与上图对应的m文件,再用鼠标右击上图的每个键,点callback导入每个键的编译程序如下:1,按键1的程序:% --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); % 把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is too long !','Input Error•','modal')elsen=[1:1000];%每个数字1000个采样点y=sin(0.5345*n)+sin(0.9272*n);%对应行频列频时域叠加,数字1的低频697Hz和高频1209Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100);%100个0模拟静音信号global NUMphone=[NUM,y];% 循环储存NUM=[phone,space]; % 储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'1'];set(handles.text1,'string',[NoCtrl]);end2,按键2的程序:function pushbutton5_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is tooelsen=[1:1000];% 每个数字1000个采样点y=sin(0.5345*n)+sin(1.0247*n);% 对应行频列频时域叠加,数字2的低频697Hz和高频1336Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100);% 100个0模拟静音信号global NUMphone=[NUM,y]; %循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'2'];set(handles.text1,'string',[NoCtrl]);end3.按键3的程序:% --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is tooelsen=[1:1000];% 每个数字1000个采样点y=sin(0.5345*n)+sin(1.1328*n);% 对应行频列频时域叠加,数字3的低频697Hz和高频1477Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100);% 100个0模拟静音信号global NUMphone=[NUM,y]; %循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'3'];set(handles.text1,'string',[NoCtrl]);end4,按键4的程序:% --- Executes on button press in pushbutton10. function pushbutton10_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is tooelsen=[1:1000];% 每个数字1000个采样点y=sin(0.5905*n)+sin(0.9272*n);% 对应行频列频时域叠加,数字4的低频770Hz和高频1209Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100);% 100个0模拟静音信号global NUMphone=[NUM,y]; %循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'4'];set(handles.text1,'string',[NoCtrl]);end5,按键5的程序:% --- Executes on button press in pushbutton9. function pushbutton9_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is too long !','Input Error•','modal')elsen=[1:1000];%每个数字1000个采样点vy=sin(0.5905*n)+sin(1.0247*n);% 对应行频列频时域叠加,数字5的低频770Hz和高频1336Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100); %100个0模拟静音信号global NUMphone=[NUM,y];% 循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'5'];set(handles.text1,'string',[NoCtrl]);end6,按键6的程序:% --- Executes on button press in pushbutton8. function pushbutton8_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is too long !','Input Error•','modal')elsen=[1:1000];% 每个数字1000个采样点y=sin(0.5905*n)+sin(1.1328*n);% 对应行频列频时域叠加,数字6的低频770Hz和高频1477Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100);% 100个0模拟静音信号global NUMphone=[NUM,y];% 循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'6'];set(handles.text1,'string',[NoCtrl]);end7,按键7的程序:% --- Executes on button press in pushbutton13. function pushbutton13_Callback(hObject, eventdata,handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is too long !','Input Error•','modal')elsen=[1:1000];% 每个数字1000个采样点y=sin(0.6534*n)+sin(0.9272*n);% 对应行频列频时域叠加,数字7的低频852Hz和高频1209Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100); %100个0模拟静音信号global NUMphone=[NUM,y];% 循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'7'];set(handles.text1,'string',[NoCtrl]);end8,按键8的程序:% --- Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is too long !','Input Error•','modal')elsen=[1:1000];% 每个数字1000个采样点y=sin(0.6534*n)+sin(1.0247*n);% 对应行频列频时域叠加,数字8的低频852Hz和高频1336Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100);% 100个0模拟静音信号global NUMphone=[NUM,y]; %循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'8'];set(handles.text1,'string',[NoCtrl]);end% --- Executes on button press in pushbutton14. function pushbutton14_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is too long !','Input Error•','modal')elsen=[1:1000];% 每个数字1000个采样点y=sin(0.6534*n)+sin(1.1328*n);% 对应行频列频时域叠加,数字9的低频852Hz和高频1477Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100); %100个0模拟静音信号global NUMphone=[NUM,y];% 循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'9'];set(handles.text1,'string',[NoCtrl]);end% --- Executes on button press in pushbutton17. function pushbutton17_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); %把数字显示在屏幕上if(length(x)>15)errordlg('Sorry . The number you have input is too long !','Input Error•','modal')elsen=[1:1000];每个数字1000个采样点y=sin(0.7217*n)+sin(1.0247*n);% 对应行频列频时域叠加,数字0的低频941Hz和高频1336Hz叠加wavplay(y,8192) %产生拨号音space=zeros(1,100); %100个0模拟静音信号global NUMphone=[NUM,y];% 循环储存NUM=[phone,space]; %储存连续的拨号音信号NoCtrl=x;NoCtrl=[NoCtrl,'0'];set(handles.text1,'string',[NoCtrl]);end11,按键#号程序:% --- Executes on button press in pushbutton16. function pushbutton16_Callback(hObject, eventdata, handles)set(handles.text1,'string',['']);set(handles.tbutton,'visible',['off']);set(handles.tbutton,'value',[0]);clear all12,按键*的程序:% --- Executes on button press in pushbutton18. function pushbutton18_Callback(hObject, eventdata, handles)set(handles.text1,'string',['']);set(handles.tbutton,'visible',['off']);set(handles.tbutton,'value',[0]);clear all13,回删键的程序:% --- Executes on button press in pushbutton20. function pushbutton20_Callback(hObject, eventdata, handles)x=get(handles.text1,'string');% 把数字显示在屏幕上if(isempty(x))errordlg('Please input the phone No.','Input error','modal')elsexll=length(x);x(xll)=[];%去掉末尾号在面板上的显示set(handles.text1,'string',[x]);global NUMll=length(NUM);%删除末尾在拨号音信号中的储存for i=ll-1100+1:llNUM(ll)=[];ll=length(NUM);endend14,拨号键的程序:% --- Executes on button press in pushbutton21. function pushbutton21_Callback(hObject, eventdata, handles)x=get(handles.text1,'string'); % 把数字显示在屏幕上xx=str2num(x);if(isempty(NUM))errordlg('Please input the phone No.','Input error','modal')elsewavplay(NUM,8192);msgbox('拨号成功!若需再次拨号请按#号复位!','Done','help')set(handles.tbutton,'visible',['on']);set(handles.text1,'string',['Dieling Done.']); end14,关闭键的程序:% --- Executes on button press in pushbutton22. function pushbutton22_Callback(hObject, eventdata, handles)clear allclose all15,解码的程序:% --- Executes on button press in tbotton.function tbotton_Callback(hObject, eventdata, handles)L=length(NUM);n=L/1100;number='';for i=1:nj=(i-1)*1100+1;d=NUM(j:j+999); %截取出每个数字f=fft(d,2048); %以N=2048作FFT变换a=abs(f);p=a.*a/10000; %计算功率谱num(1)=find(p(1:250)==max(p(1:250))); % 找行频通过计算得出数值围num(2)=300+find(p(300:380)==max(p(300:380))); % 找列频通过计算得出数值围if (num(1) < 180) row=1; % 确定行数elseif (num(1) < 200) row=2;elseif (num(1) < 220) row=3;else row=4;endif (num(2) < 320) column=1; %确定列数elseif (num(2) < 340) column=2;else column=3;endz=[row,column]; % 确定数字if z==[4,2] tel=0; %0在4行2列elseif z==[1,1] tel=1; %1在1行1列elseif z==[1,2] tel=2; %2在1行2列elseif z==[1,3] tel=3; %3在1行3列elseif z==[2,1] tel=4; %4在2行1列elseif z==[2,2] tel=5; %5在2行2列elseif z==[2,3] tel=6; %6在2行3列elseif z==[3,1] tel=7; %7在3行1列elseif z==[3,2] tel=8; %8在3行2列elseif z==[3,3] tel=9; %9在3行3列endt(i)=tel;c=strcat(number,int2str(tel));number=c;i=i+1;endset(handles.text1,'string',['解码中...']);h = waitbar(0,'Decoding...Please wait...'); steps = 1500;for step = 1:steps% computations take place herewaitbar(step / steps)endclose(h);set(handles.text1,'string',number);% hObject handle to tbotton (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)三,运行以上程序调出如下图界面:即可以进行仿真拨号。
《数字信号处理》实验(民航无线电监测关键技术研究)
《数字信号处理》实验报告实验名称数字信号处理实验(民航无线电监测关键技术研究)一、实验目的:通过实验,理解和掌握民航无线电监测关键技术中调制解调、FIR 数字滤波器、多采样率数字信号处理、FFT、语音数字信号处理、静噪等技术,培养学生对数字信号处理技术的兴趣,并提高学生基于数字信号处理技术的工程应用能力。
二、实验环境:计算机,matlab2007a。
三、实验原理、内容与分析(包括实验内容、MATLAB程序、实验结果与分析)实验总体框图如上图所示,主要实现民航无线电监测关键技术中调制解调、FIR 数字滤波器、多采样率数字信号处理、FFT、语音数字信号处理、静噪等技术。
1.有限长单位脉冲(FIR)滤波器的设计FIR 数字滤波器是一种非递归系统,其冲激响应h(n)是有限长序列,其差分方程表达式为:系统传递函数可表达为:N-1 为FIR 滤波器的阶数。
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。
为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n)。
这样,当N 为偶数时,偶对称线性相位FIR 滤波器的差分方程表达式为:由上可见FIR 滤波器不断地对输入样本x(n)延时后,再做乘法累加算法,将滤波器结果y(n)输出,因此,FIR 实际上是一种乘法累加运算。
而对于线性相位FIR 而言,利用线性相位FIR 滤波器系数的对称特性,可以采用结构精简的FIR 结构将乘法器数目减少一半。
2.AM 调制解调AM 调制解调过程如下:3.多采样率数字信号处理一般认为,在满足采样定理的前提下,首先将以采样率F1 采集的数字信号进行D/A 转换, 变成模拟信号,再按采样率F2 进行A/D 变换,从而实现从F1 到F2 的采样率转换。
但这样较麻烦,且易使信号受到损伤,所以实际上改变采样率是在数字域实现的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六数字信号处理在双音多频拨号系统中的应用双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信号,由美国AT&T贝尔公司实验室研制,并用于电话网络中。
这种信号制式具有很高的拨号速度,且容易自动监测识别,很快就代替了原有的用脉冲计数方式的拨号制式。
这种双音多频信号制式不仅用在电话网络中,还可以用于传输十进制数据的其它通信系统中,用于电子邮件和银行系统中。
这些系统中用户可以用电话发送DTMF信号选择语音菜单进行操作。
DTMF信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,其中还用到了D/A变换器;在接收端用A/D变换器将其转换成数字信号,并进行数字信号处理与识别。
为了系统的检测速度并降低成本,还开发一种特殊的DFT算法,称为戈泽尔(Goertzel)算法,这种算法既可以用硬件(专用芯片)实现,也可以用软件实现。
下面首先介绍双音多频信号的产生方法和检测方法,包括戈泽尔算法,最后进行模拟实验。
下面先介绍电话中的DTMF信号的组成。
在电话中,数字0~9的中每一个都用两个不同的单音频传输,所用的8个频率分成高频带和低频带两组,低频带有四个频率:679Hz,770Hz,852Hz和941Hz;高频带也有四个频率:1209Hz,1336Hz,1477Hz和1633Hz.。
每一个数字均由高、低频带中各一个频率构成,例如1用697Hz和1209Hz两个频率,信号用表示,其中,。
这样8个频率形成16种不同的双频信号。
具体号码以及符号对应的频率如表10.6.1所示。
表中最后一列在电话中暂时未用。
表10.6.1 双频拨号的频率分配DTMF信号在电话中有两种作用,一个是用拨号信号去控制交换机接通被叫的用户电话机,另一个作用是控制电话机的各种动作,如播放留言、语音信箱等。
2 电话中的双音多频(DTMF)信号的产生与检测(1)双音多频信号的产生假设时间连续的 DTMF信号用表示,式中是按照表10.10.1选择的两个频率,代表低频带中的一个频率,代表高频带中的一个频率。
显然采用数字方法产生DTMF信号,方便而且体积小。
下面介绍采用数字方法产生DTMF信号。
规定用8KHz对DTMF信号进行采样,采样后得到时域离散信号为形成上面序列的方法有两种,即计算法和查表法。
用计算法求正弦波的序列值容易,但实际中要占用一些计算时间,影响运行速度。
查表法是预先将正弦波的各序列值计算出来,寄存在存储器中,运行时只要按顺序和一定的速度取出便可。
这种方法要占用一定的存储空间,但是速度快。
因为采样频率是8000Hz,因此要求每125ms输出一个样本,得到的序列再送到D/A变换器和平滑滤波器,输出便是连续时间的DTMF信号。
DTMF信号通过电话线路送到交换机。
(2)双音多频信号的检测在接收端,要对收到的双音多频信号进行检测,检测两个正弦波的频率是多少,以判断所对应的十进制数字或者符号。
显然这里仍然要用数字方法进行检测,因此要将收到的时间连续 DTMF信号经过A/D变换,变成数字信号进行检测。
检测的方法有两种,一种是用一组滤波器提取所关心的频率,根据有输出信号的2个滤波器判断相应的数字或符号。
另一种是用DFT(FFT)对双音多频信号进行频谱分析,由信号的幅度谱,判断信号的两个频率,最后确定相应的数字或符号。
当检测的音频数目较少时,用滤波器组实现更合适。
FFT是DFT 的快速算法,但当DFT的变换区间较小时,FFT快速算法的效果并不明显,而且还要占用很多内存,因此不如直接用DFT合适。
下面介绍Goertzel算法,这种算法的实质是直接计算DFT的一种线性滤波方法。
这里略去Goertzel算法的介绍(请参考文献[19]),可以直接调用MATLAB信号处理工具箱中戈泽尔算法的函数Goertzel,计算N点DFT的几个感兴趣的频点的值。
3检测DTMF信号的DFT参数选择用DFT检测模拟DTMF信号所含有的两个音频频率,是一个用DFT对模拟信号进行频谱分析的问题。
根据第三章用DFT对模拟信号进行谱分析的理论,确定三个参数:(1)采样频率,(2)DFT的变换点数N,(3)需要对信号的观察时间的长度。
这三个参数不能随意选取,要根据对信号频谱分析的要求进行确定。
这里对信号频谱分析也有三个要求:(1)频率分辨率,(2)谱分析的频谱范围,(3)检测频率的准确性。
1.频谱分析的分辨率。
观察要检测的8个频率,相邻间隔最小的是第一和第二个频率,间隔是73Hz,要求DFT 最少能够分辨相隔73Hz的两个频率,即要求。
DFT的分辨率和对信号的观察时间有关,。
考虑到可靠性,留有富裕量,要求按键的时间大于40ms。
2. 频谱分析的频率范围要检测的信号频率范围是697~1633Hz,但考虑到存在语音干扰,除了检测这8个频率外,还要检测它们的二次倍频的幅度大小,波形正常且干扰小的正弦波的二次倍频是很小的,如果发现二次谐波很大,则不能确定这是DTMF信号。
这样频谱分析的频率范围为697~3266Hz。
按照采样定理,最高频率不能超过折叠频率,即,由此要求最小的采样频率应为7.24KHz。
因为数字电话总系统已经规定=8KHz,因此对频谱分析范围的要求是一定满足的。
按照,=8KHz,算出对信号最少的采样点数为。
3. 检测频率的准确性这是一个用DFT检测正弦波频率是否准确的问题。
序列的N点DFT是对序列频谱函数在0~区间的N点等间隔采样,如果是一个周期序列,截取周期序列的整数倍周期,进行DFT,其采样点刚好在周期信号的频率上,DFT的幅度最大处就是信号的准确频率。
分析这些DTMF 信号,不可能经过采样得到周期序列,因此存在检测频率的准确性问题。
DFT的频率采样点频率为(k=0,1,2,---,N-1),相应的模拟域采样点频率为(k=0,1,2,---,N-1),希望选择一个合适的N,使用该公式算出的能接近要检测的频率,或者用8个频率中的任一个频率代入公式中时,得到的k值最接近整数值,这样虽然用幅度最大点检测的频率有误差,但可以准确判断所对应的DTMF频率,即可以准确判断所对应的数字或符号。
经过分析研究认为N=205是最好的。
按照=8KHz,N=205,算出8个频率及其二次谐波对应k值,和k取整数时的频率误差见表10.6.2。
表10.6.2通过以上分析,确定=8KHz,N=205,。
4. DTMF信号的产生与识别仿真实验下面先介绍MATLAB工具箱函数goertzel,然后介绍DTMF信号的产生与识别仿真实验程序。
Goerztel函数的调用格式额为Xgk=goertzel(xn,K)xn是被变换的时域序列,用于DTMF信号检测时,xn就是DTMF信号的205个采样值。
K是要求计算的DFT[xn]的频点序号向量,用N表示xn的长度,则要求1≤K≤N。
由表10.2.2可知,如果只计算DTMF信号8个基频时,K=[18,20,22,24,31,34,38,42],如果同时计算8个基频及其二次谐波时,K=[18,20,22,24,31,34,35,38,39,42,43,47,61,67,74,82]。
Xgk是变换结果向量,其中存放的是由K指定的频率点的DFT[x(n)]的值。
设X(k)= DFT[x(n)],则。
DTMF信号的产生与识别仿真实验在MATLAB环境下进行,编写仿真程序,运行程序,送入6位电话号码,程序自动产生每一位号码数字相应的DTMF信号,并送出双频声音,再用DFT进行谱分析,显示每一位号码数字的DTMF信号的DFT幅度谱,安照幅度谱的最大值确定对应的频率,再安照频率确定每一位对应的号码数字,最后输出6位电话号码。
本实验程序较复杂,所以将仿真程序提供给读者,只要求读者读懂程序,直接运行程序仿真。
程序名为exp6。
程序分四段:第一段(2—7行)设置参数,并读入6位电话号码;第二段(9—20行)根据键入的6位电话号码产生时域离散DTMF信号,并连续发出6位号码对应的双音频声音;第三段(22—25行)对时域离散DTMF信号进行频率检测,画出幅度谱;第四段(26—33行)根据幅度谱的两个峰值,分别查找并确定输入6位电话号码。
根据程序中的注释很容易分析编程思想和处理算法。
程序清单如下:程序:《数字信号处理(第三版)》第十章实验6程序:exp6.m% DTMF双频拨号信号的生成和检测程序%clear all;clc;tm=[1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68]; % DTMF信号代表的16个数N=205;K=[18,20,22,24,31,34,38,42];f1=[697,770,852,941]; % 行频率向量f2=[1209,1336,1477,1633]; % 列频率向量TN=input('键入6位电话号码= '); % 输入6位数字TNr=0; %接收端电话号码初值为零for l=1:6;d=fix(TN/10^(6-l));TN=TN-d*10^(6-l);for p=1:4;for q=1:4;if tm(p,q)==abs(d); break,end % 检测码相符的列号qendif tm(p,q)==abs(d); break,end % 检测码相符的行号p endn=0:1023; % 为了发声,加长序列x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双频信号sound(x,8000); % 发出声音pause(0.1) % 接收检测端的程序X=goertzel(x(1:205),K+1); % 用Goertzel算法计算八点DFT 样本val=abs(X); % 列出八点DFT向量subplot(3,2,l);stem(K,val,'.');grid;xlabel('k');ylabel('|X(k)|') % 画出DFT(k)幅度axis([10 50 0 120])limit = 80; %for s=5:8;if val(s) > limit, break, end % 查找列号endfor r=1:4;if val(r) > limit, break, end % 查找行号 endTNr=TNr+tm(r,s-4)*10^(6-l);enddisp('接收端检测到的号码为:') % 显示接收到的字符disp(TNr)运行程序,根据提示键入6位电话号码123456,回车后可以听见6位电话号码对应的DTMF信号的声音,并输出相应的6幅频谱图如图10.10.1所示,左上角的第一个图在k=18和k=31两点出现峰值,所以对应第一位号码数字1。