DTMF信号分析与仿真

本文介绍了DTMF信号的工作原理,包括其产生机制和频率分配,通过MATLAB进行DTMF信号的频谱分析,并展示了如何使用MATLAB和LabVIEW创建GUI界面进行DTMF信号的仿真。源代码和工程文件提供下载链接。
摘要由CSDN通过智能技术生成

一、什么是DTMF?

1.2 DTMF信号

双音多频信号(Dual-Tone Multi-Frequency,DTMF)是一种用于电话系统中的数字信号,它由两个频率组成,用于传输电话键盘上的数字、字母和特殊字符。

1.2 DTMF的产生

1.电话键盘产生信号:用户在电话键盘上按下数字或字符键时,电话终端会产生对应的DTMF信号。每个键都被分配一高一低两个频率,通过四个高频频率和四个低频频率最多可编码16个字符。

2.频率生成:电话终端使用特定的频率发生器来产生高频和低频信号。每组频率都对应一个数字或字符。

3.合成信号:高频和低频信号通过混合器进行合成,生成DTMF信号。混合器将两个频率信号相加,并输出合成后的信号。

1.3 DTMF的频率分配

DTMF的每一个数字(0-9)或字符由两个不同频率单音组成(每个单音用正弦信号表示),所用频率分为高频带和低频带两组,每个数字由高、低频带中各一个频率组成,例如数字9使用852Hz和1477Hz两个频率。

双频拨号的频率分配
1209133614471633
697123A
770456B
852789C
941*0#D

二、基于MATLAB进行信号分析

首先通过MATLAB编程观察DTMF信号的频率分布情况。以数字5为例,构建DTMF信号并进行频谱分析,然后通过椭圆带通滤波器分别滤出信号的低频和高频分量,然后绘制频谱图。

clc;clear
n=0:1023;
K=1024; %FFT点数
Fs=8000; %采样频率
f1=770; %低频频率
f2=1336; %高频频率
x=sin(2*pi*n*f1/Fs)+sin(2*pi*n*f2/Fs);%产生DTMF信号
F=Fs/K; %频率分辨率
k=0:F:F*1023;
soundsc(x,8000);
fig=figure;
subplot(3,2,1)
plot(x);
title('DTMF')
axis([0,100,-2,2]);
X=fft(x,K);
subplot(3,2,2)
absX=abs(X);
plot(k(1:512),absX(1:512));
title('DTMF频谱')
%利用椭圆带通滤波器滤出低频分量
fpl=700;fpu=800;
fsl=550;fsu=850;
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)
absY=abs(Y);
plot(k(1:512),absY(1:512));
title('DTMF低频分量频谱')
%利用椭圆带通滤波器滤出高频分量
fpl1=1300;fpu1=1500;
fsl1=1200;fsu1=1600;
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)
absY1=abs(Y1);
plot(k(1:512),absY1(1:512));
title('DTMF高频分量频谱')
suptitle('DTMF信号分析 以5为例');
%调整大小位置并保存图片
set(fig,'Position',[100,100,800,800])
saveas(gcf, 'DTMF信号分析 以5为例.jpg', 'jpeg');

可以观察到,数字5信号包含770Hz和1336Hz两个频率的分量,使用椭圆带通滤波器分别对信号进行滤波,得到了高频和低频分量。

三、GUI界面实现DTMF信号仿真 

使用matlab自带的guide进行图形化界面设计,实现了0-9的DTMF信号仿真,并绘制波形和频谱图。具有8位拨号功能(分别绘制八位数字的频谱)。

四、LabVIEW实现DTMF信号仿真

使用LabVIEW2023搭建了虚拟仪器界面仿真DTMF信号。

源代码和工程文件:http://pan.baidu.com/s/1ZoDWKUZwH7LcWT43kyZuIg

提取码:t1r7

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值