资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
DTMF通信系统设计与仿真 信息科学与工程学院电子通信系1、任务、性质与意义 任务:综合运用通信原理、数字信号处理等课程所学 知识,设计实现双音多频(DTMF)信号传输过程的软件 仿真。 性质:通信原理、数字信号处理等课的综合实践环节 。 意义: 从理论上加深对有关通信、数字信号处理原理的综 合理解; 了解DTMF信号原理和用数字信号处理的方法实现 DTMF信号的产生、传输与检测的过程。 掌握一门新的计算机编程工具MATLAB。 2、基本原理 2.1 双音多频(DTMF)信号双音多频(DTMF)信号就是用两个不同频率 的音频信号的组合 。DTMF在电话通信系统中应用脉冲拨号方式: 开关控制二线电路的通与断 每个脉冲周期100ms 40%的占空时间 两个相继数字的时间间隔可以从0.5S到数秒之 间变化不等 发送一个10位长的号码大约需要7秒的时间DTMF拨号方式: 每一数字用一对音频表示 8个单音频分为两组,高频和低频同时传输 传送速率为每秒10个数字,或者每个数字 100ms。 100ms中,45ms-55ms有信号,其余为静音 允许有1.5%的频率偏移,不得超出3.5% 要求信噪比不低于15dB DTMF的拨号方式比双脉冲拨号方式可快至10倍 ,抗干扰能力大大高于脉冲拨号方式,避免占 用额外的信道应用 电话系统控制信令 测量 在话音信道上传送各类控制指令 实现电话控 制家用电器的启停,传送远方的状态监测信息 。 基于电话的信息服务 在实际系统中,首次拨 号由程控交换机识别,完成主叫与被叫之间的 接续;二次乃至多次拨号的识别以及操作由用 户系统自己完成。DTMF信号的硬件产生与检测 DTMF信号发送器电路原理 电路组成 晶体振荡器外接晶体(通常采用3.58MHz)与片内电 路构成振荡器、经分频产生参考信号 键控可变速率时钟产生电路它是一种可变分频比的 分频器,通常由n级移位寄存器与键控反馈逻辑单元组 成 正弦波产生电路它出正弦波编码器与DA变换器 构成。通常可变速时钟信号先经过5位移位寄存器,产 生组5位移位代码,再由可编程逻辑阵列(PLA)将其转 换成二进制代码,送到DA变换器转换成台阶形正弦 波 混合电路行、列信号相加、输出 附加功能单元,如含有单音抑制、输出控制(禁止)、双 键向按无输出等控制电路。 硬件接收DTMF信号的电路原理 DTMF接收器主要包括DTMF分组滤波器和DTMF译码器。DTMF接收信号先经高、低群带通滤波进行 fL/fH区分,然后过零检测、比较,得到相应于 DTMF的两路fL/fH信号输出。该两路信号经译 码、锁存、缓冲,恢复成对应于16种DTMF信 号音对的4比特二进制码(L1一L4)。 双音多频信号软件产生与检测 为了产生DTMF信号,DSP用软件产生两个正弦 波叠加在一起后发送,软件具体实现方式可以 有三种方法: (1)用软件模拟DSP的方式产生两个数字正弦 波振荡器并把输出合成起来,建立所希望的双 音频 (2)通过产生的某频率的方波后再附加滤波 器滤出二次以上的谐波,产生DTMF信号 (3)直接编程输出正弦信号组成数据表格, 查表输出产生DTMF信号软件检测 DTMF信号主要方法:(1)利用离散傅立叶变换(DFT)及其快速算法 (FFT),求取DTMF信号频谱的峰值点,进而利 用峰值点的频率判断发送的数字。缺点:计算 量大,不利于实时处理。 (2)由波形过零点确定低频信号的频率,而极 值点确定高频信号的频率。当采样频率为8K时 ,每个DTMF信号的持续40ms.采样160个点, 即20ms采样点全部落在40ms的发送范围内,对 采样的点进行6次求和取平均然后分别计算过 零点的数目a和极点的数目b,对应频率可以计 算为:软件检测 DTMF信号主要方法: 计算接收到的DTMF信号在8个既定频率的能量 ,进而确定是否有DTMF信号到达以及收到的 是哪一对信号,此外通过计算接收信号的总能 量来防止误判。采用Geortzel算法可进一步提 高计算效率,Goertzel算法实质是一个两极点 的IIR滤波器,对应每一个频点有一个匹配滤波 器,在抽样时刻检测。这种算法有利于用DSP 实现。在本次课程设计中要求使用这种方法。 2.4 数字正弦波振荡器原理 数字正弦波振荡器的功能是利用数字信号处理 的方法产生正弦波信号的抽样序列。设数字正 弦波振荡器要产生的波形为 则其Z变换为 y(n)可以看作是一个单位冲击函数激励了一个 线性系统的冲击响应。这个线性系统的传递函 数就是Y(z)。由Y(z)可以写出该线性系统的差 分方程:令输入x(n)为单位冲击函数,即 则可以得到下面的递推方程 当n2时, 式中 。实现时,先将每个频率常数存在一个表中,用来初始化振荡器;再迭代计算得到正弦序列的输出;将两个这样的输出叠加即可得到双音频的输出。每个数字输出的样本数取决于数字速率与采样速率。2.5 数字匹配滤波器原理 计算接收到的DTMF信号在8个既定频率的能量 ,进而 确定是否有DTMF信号到达以及收到的 是哪一对信号,此外通过计算接收信号的总能 量来防止误判。为满足检测8个DTMF频点(偏 差1.5%),需计算256点FFT,因只对8个频点 感兴趣,故可以直接计算8个频点附近的DFT Goertzel算法 Goertzel算法实质是一个两极点的IIR滤波器, 其算法原理框图如图 对应每一个频点有一个匹配滤波器,第k个频 率匹配滤波器的传递函数为其中对应的前、后向差分方程为: 后一个方程无需全部计算,只需要在n=N时刻 ,即最后的输出时刻计算 并令初始值为 在n=N时刻既可以得到所需要的X(k)。由于在DTMF检测中,输入的信号是实数序列,并不需要检测出8个行频/列频的相位,只需要计算出其幅度平方即可。因此计算|X(k)|2如下: 这里分别表示状态变量在N和N-1时刻的值。 2.6 仿真系统框图DTMF 信号的 产生DTMF 信号 检测电话信道判断输出高 斯 噪 声软件流程图(1) 输入键号 (2) 生成DTMF信号(时域、频域显示) (3) 加入高斯噪声(时域、频域显示) (4) 信道传输 (5) 接收端随机延迟(30个点以内) (6) DTMF信号到达检测 (7) DTMF采样 (8) DTMF 频谱分析(时域、频域显示) (9) DTMF键号识别3. 本课程设计的工作内容 1、设计计算正弦波数字振荡器、数字匹配滤 波器的参数; 2、用MATLAB语言设计一个利用DTMF信号传输 学号代码的仿真系统。观察下列信号的波形: 学号代码的非归零基带信号、DTMF信号、信道 加入噪声、接收信号、匹配滤波器输出、译码 判决结果; 3、对仿真系统进行抗干扰性能仿真分析。 4 本课程设计的要求 1、自学复习通信原理、数字信号处理的有关 内容,掌握算法原理; 2、自学MATLAB语言的使用; 3、完整实现仿真系统; 4、记录观察到的各种波形; 5、撰写课程设计报告。报告统一使用B5纸 ,统一封面,篇幅以3000字为宜。报告 中要有设计过程、仿真系统运行结果、 记录、波形的分析与讨论。正文手写, 图、程序可以打印作为附件。 5.编程工具MATLAB简介 5.1 基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入 提示号()之后,并按入Enter键即可。例如: (5*2+1.3-0.8)*10/25 ans = 4.2000 也可将上述运算式的结果设定给另一个变量x: x = (5*2+1.3-0.8)*102/25 x = 42 若不想让MATLAB每次都显示运算结果,只需在运算式最 後加上分号(;)即可。 5.1 基本运算与函数 变量也可用来存放向量或矩阵,并进行各种 运算,如下例的向量运算: x = 1 3 5 2; y = 2*x+1 y = 3 7 11 5 5.2 控制命令 5.2.1 for语句,其基本形式为: for 变量 = 矩阵; 运算式; end 其中变量的值会被依次设定为矩阵的每一行,来执行介 于for和end之间的运算式。因此,若无意外情况,运 算式执行的次数会等于矩阵的行数。 举例来说,下列命令会产生一个长度为6的调和数列: x = zeros(1,6); % x是一个1行6列的零矩阵 for i = 1:6, x(i) = 1/i; end 5.2.2 while语句 基本形式为: while 条件式; 运算式; end也就是说,只要条件示成立,运算式就会一再被执行 。例如先前产生调和数列的例子,我们可用while圈 改写如下: x = zeros(1,6); % x是一个16的零矩阵 i = 1; while i 0.5, disp(Given random number is greater than 0.5.); end 5.2.4 MATLAB文件 若要一次执行大量的MATLAB命令,可将这些命令 存放于一个扩展名为m的文件。包含MATLAB命令的文件 都以m为扩展名,因此通称m文件,只要直接键入文件 名,就可执行其所包含的命令。严格来说,m文件可再 细分为命令集(Scripts)及函数(Functions)。 命令集的效果和将命令逐一输入完全一样,因此 若在命令集可以直接使用工作空间的变量,而且在命 令集中设定的变量,也都在工作空间中看得到。 函数则需要用到输入参数和输出参数来传递变量 ,这就像是C语言的函数。在调用函数时,你只能经由 输入参数来控制函数的输入,经由输出参数来得到函 数的输出,但所有的暂时变量都会随着函数的结束而 消失。5.3 MATLAB常用的数学函数 abs(x):标量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 sign(x):符号函数。当x0时,sign(x)=1。 rem(x,y):求x除以y的余数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数ex pow2(x):2的指数 2x log(x):以e为底的对数,即自然对数ln(x) log2(x):以2为底的对数 log2(x) log10(x):以10为底的对数log10(x) sin(x):正弦函数 cos(x):余弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 sort(x): 对向量x的元素进行排序 length(x): 向量x的元素个数 sum(x): 向量x的元素总和 cumsum(x): 向量x的累计元素总和 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 5.4 MATLAB 绘图 plot是绘制一维曲线的基本函
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号