第13章_数字信号处理应用举例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26
数字信号处理应用举例2
13.2 数字信号处理在音乐信号处理 中的应用
时域处理 频域处理
✓ 一阶滤波器和斜坡滤波器 ✓ 二阶滤波器和均衡器 ✓ 图形均衡器
27
13.2.1 时域处理
在音乐厅中,听众接收的声音信号有三种
直达声:直接传播到听众的声音信号 早期反射:接下来收到的一些比较近的回音
if tm(p,q)==abs(d);break,end %检测与第m位号码相符的列号q
end
end
23
13.1.5 DTMF信号系统的模拟实验
n=0:1023;
%为了发声,加长序列
x=sin(2*pi*n*fl(p)/8000)+sin(2*pi*n*f2(q)/8000); %构成双音频信号
sound(x,8000);
18
13.1.4 检测DTMF信号的DFT参数选择
用DFT检测模拟DTMF信号所含有的两 个音频频率,要确定三个参数:
采样频率 Fs DFT的变换点数N 需要对信号的观察时间的长度 Tp
19
13.1.4 检测DTMF信号的DFT参数选择
这三个参数不能随意选取,要根据对信 号频谱分析要求确定
第三段(第22-25行)对时域离散DTMF信号进 行频率检测,画出幅度谱
第四段(第26-33行)根据幅度谱的两个峰值, 分别查找并确定所输入的6位电话号码
22
13.1.5 DTMF信号系统的模拟实验
根据程序中的注释很容易分析编程思想和处理 算法,程序清单如下:
%DTMF双音频拨号信号的生成和检测程序:ep1021m
假设长度为N的序列 x(n) 的N点DFT用X(k)
表示,因为
W kN N
1
,因此
N 1
X
(k
)
W kN N
X
(k
)
W kN N
x(m)WNkm
m0
N 1
x(m)WNk (N m) k 0,1, 2,
(13.1.1) , N 1
m0
定义序列
N 1
yk (n)
x(m)WNk (nm)
m0
(13.1.8) (13.1.9)
17
13.1.3戈泽尔算法
✓ 因为检测信号的两个频率时,只用它的幅度谱 因此只计算式(13.1.9)模的平方,得到
yk (N ) 2
vk2 (N ) vk2 (N
1)
2
cos
2 k N
vk
(
N
)vk
(
N
1)
(13.1.10)
按照图13.1.1所示的结构图,可以用软件
电话中的双音多频信号的作用
用拨号信号去控制交换机接通被叫的用户电 话机
控制电话机的各种动作,如播放留言、语音 信箱等
7
13.1.2双音多频信号的产生与检测
DTMF信号的产生与检测识别系统是一 个典型的小型信号处理系统,它要用 数字方法产生模拟信号并进行传输, 其中还用到了D/A变换器;在接收端 用A/D变换器将其转换成数字信号并 进行处理,包括DFT的应用
m=[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];
%8个基频对应的8个k值
f1=[697,770,852,941];
%行频率向量
f2=[1209,1336,1477,1633];
第13章
数字信号处理应用举例
数字信号处理应用举例
数字信号处理技术在通信系统、生物医
学、遥感系统、地质勘探、机械振动、交通
运输、宇宙航行、自动测量等方面都有广 泛的应用
本章介绍数字信号处理的两种典型应 用举例
数字信号处理在双音频多拨号系统中的应 用
数字信号处理在音乐信号处理中的应用
2
数字信号处理应用举例1
对信号频谱分析有以下三个要求
频谱分析的分辨率
观察要检测的8个频率,相邻间隔最小的是第一和 第二个频率,间隔是73Hz,要求DFT至少能够分辨 相隔73Hz的两个信号
频谱分析的频率范围(为697—3266Hz) 检测频率的准确性 经分析,确定 Fs 8kHz, N 205,Tp 40ms
8
13.1.2双音多频信号的产生与检测
采用数字方法产生DTMF信号
假设时间连续的DTMF信号用
x(t) sin(2 f1t) sin(2 f2t)
表示,式中 f1 ,f2 是按照表13.1.1选择的 两个频率 规定用8kHz对DTMF信号进行采样,采样后 得到时域离散信号为
x(n) sin(2 f1n / 8000) sin(2 f2n / 8000)
11
13.1.3戈泽尔算法
为了提高系统检测速度并降低成本, 开发出一种特殊的DFT算法,称为戈泽 尔(Goertzel)算法,这种算法既可以用 硬件实现,也可以用软件实现
戈泽尔算法利用DFT中的旋转因子 WNk 的周期性,将DFT的运算转换成一种线 性滤波运算
12
13.1.3戈泽尔算法
戈泽尔算法的计算公式和实现结构
end
disp(‘接收端检测到的号码为:’ )
disp(TNr)
%显示接收到的6位电话号码
运行程序,根据提示输入6位电话号码 123456,回车后可以听见6位电话号码对应的 DTMF信号的声音,并输出响应的6幅频谱图, 如图13.1.2所示
25
13.1.5 DTMF信号系统的模拟实验
图13.1.2 6位电话号码123456的DTMF信号在8个近似基频点的DFT幅度
实现,也可以用硬件实现
✓ 按照图13.1.1(a)用软件实现时,可以用递推 法进行,按式(13.1.6)写出它的递推方程为
yk (n) WNk yk (n 1) x(n) ,yk (1) 0
✓ 按照图13.1.1(b)用软件实现,用(13.1.8)、式 (13.1.10)进行递推运算,设定初始条件为零 状态,即 vk (1) vk (2) 0
8个频率形成16种不同的DTMF信号,具体DTMF拨号 的频率分配见下表
低频率 高 频 率
697Hz 770Hz 852Hz 942Hz
1209Hz 1 4 7 *
1336Hz 2 5 8 0
1447Hz 3 6 9 #
633Hz A B C D
表 13.1.1 DTMF拨号的频率分配
6
13.1.1电话系统中的双音多频信号
axis([10 50 0 120]);
1imit=80;
%基频检测门限为80
for s=5:8;
if val(s)>1imit,break,end
%查找列号
end
for i=1:4;
if val(s)>1imit,break,end
%查找行号
end
24
13.1.5 DTMF信号系统的模拟实验
TNr=TNr+tm(r,s-4)*10^(6-m); %将6位电话号码表示成一个6位数,以便显示
✓ 该一阶滤波器的结构图如图13.1.1(a)所示
戈泽尔算法的原理方框图如图13.1.1(c)所 示
15
13.1.3戈泽尔算法
图13.1.1 用戈泽尔算法实现DFT的滤波器结构
16
13.1.3戈泽尔算法
为了避免复数乘法,将一阶纯极点滤波器变 为二阶滤波器,推导如下
Hk (z)
1
1 WNk
z
1
1WNk z1 1WNk z1 1WNk z1
1WNk z1
1
2百度文库
cos
2 k
N
z 1
z 2
✓ 按上式画的结构图如13.1.1(b) (13.1.7)
✓ 按照结构图13.1.1(b),可以用两个差分程表示
该二阶滤波器,即
vk
(n)
2
cos
2 k N
vk
(n
1)
vk
(n
2)
x(n)
yk (n) vk (n) WNk vk (n 1)
双音多频信号不仅可以用在电话网络中, 还可以用于传输十进制数据的其它通讯 系统中,用于电子邮件和银行系统中
4
13.1.1电话系统中的双音多频信号
电话系统采用双音拨号的原理
所有的频率可分成高频带和低频带两组, 低频带和高频带各有四个频率
✓ 低频带四个频率:679Hz,770Hz,852Hz,941Hz ✓ 高频带四个频率:1209Hz,1336Hz,1447Hz,1633Hz
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
形成上述序列有两种方法,一种是计算 法,另一种是查表法
9
13.1.2双音多频信号的产生与检测
用计算法求正弦波的序列值容易,但实际中要 占用一些计算时间,影响运行速度
查表法是预先将正弦波的各序列值计算出来, 存放在存储器中,运行时只要按顺序和一定的 速度取出即可.这种方法要占用一定的存储空 间,但是速度快
Xgk是变换结果向量,其中存放的是由Κ指定的频率 点的DFT[x(n)]的值
21
13.1.5 DTMF信号系统的模拟实验
下面用MATLAB程序对该系统进行模拟, 程序名为ep1021,程序分四段
第一段(2-7行)设置参数,并读入6位电话号 码
第二段(第9-20行)根据输入的6位电话号码 产生时域离散DTMF信号,并连续发出6位号 码对应的双音频声音
%发出声音
pause(0.1);
%相邻号码响声之间加0.1s停顿
%接收检测端的程序
X=goertzel(x(1:N),K+1);
%用Goertzel算法计算8点DFT样本
val=abs(X);
%列出8点DFT的模
subplot(3,2,1);stem(K,val,‘.’);xlabel(‘k’);ylabel(‘|X(k)|’)%画出8点DFT的幅度
13.1 数字信号处理在双音频多拨号系统 中应用
电话系统中的双音多频信号 双音多频信号的产生与检测 戈泽尔算法 检测DTMF信号的DFT参数选择 DTMF信号系统的模拟实验
3
13.1.1电话系统中的双音多频信号
双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信号, 由美国AT&T贝尔公司实验室研制,并用 于电话网络中
每一位号码由两个不同的单音频组成, 即由一个低频带频率和一个高频带频率 叠加形成
✓ 例:十进制数字1用679Hz和1209Hz两个频率,对应 的DTMF信号用 sin(2 f1t) sin(2 f2t) 表示,其中
f1 697Hz, f2 1209Hz
5
13.1.1电话系统中的双音多频信号
因采样频率是8000HZ,因此要求每125ms输出一 个样本,得到的序列再送到D/A变换器,它的输 出经过平滑滤波便是连续时间的DTMF信号
DTMF信号通过电话线路再送到交换机
10
13.1.2双音多频信号的产生与检测
双音多频信号的检测
在接收端,要对收到的双音多频信号进行检测,即 检测两个正弦波的频率,以判断其对应的十进制数 字或者符号
(13.1.2)
x(n) *WNkn
13
13.1.3戈泽尔算法
令
hk
(n)
W kn N
(13.1.3)
则
yk (n) x(n) * hk (n)
(13.1.4)
将 yk (n) 看成是序列 x(n) 通过单位脉冲响应 为 hk (n) WNkn的滤波器的输出,对比式
(13.1.1)和(13.1.2),可得
X (k ) yk (n) nN
(13.1.5)
于是N点DFT就是这N个滤波器分别对序列
x(n) 的响应序列的第N点输出
14
13.1.3戈泽尔算法
对(13.1.3)进行Z变换,得到滤波器系统
函数
Hk
(
z)
1
1 WN k
z
1
(13.1.6)
✓ 该滤波器是一个一阶纯极点滤波器,极点 为 WNk e j2 k /N ,极点频率为 k 2 k / N
%列频率向量
TN=input(‘输入6位电话号码=1’);
%输入6位数字
TNr=0;
%接收端电话号码初值为零
for m=1:6
%分别对每位号码数字处理:产生信号,发声,检测
d=fix(TN/10^(6-m));
%计算出第m位号码数字
TN=TN-d*10^(6-m);
for p=1:4;
for q=1:4;
将收到的时间连续DTMF信号经过A/D变换,变成数 字信号再进行检测
检测的方法有两种 ✓ 用一组滤波器提取所关心的频率,判断对应的数 字或符号(当检测的频率数目较少时,用此法实现更合
适)
✓ 用DFT(FFT)对双音多频信号进行频谱分析,由信 号的幅度谱,判断信号的两个频率,最后确定对 应的数字或符号
数字信号处理应用举例2
13.2 数字信号处理在音乐信号处理 中的应用
时域处理 频域处理
✓ 一阶滤波器和斜坡滤波器 ✓ 二阶滤波器和均衡器 ✓ 图形均衡器
27
13.2.1 时域处理
在音乐厅中,听众接收的声音信号有三种
直达声:直接传播到听众的声音信号 早期反射:接下来收到的一些比较近的回音
if tm(p,q)==abs(d);break,end %检测与第m位号码相符的列号q
end
end
23
13.1.5 DTMF信号系统的模拟实验
n=0:1023;
%为了发声,加长序列
x=sin(2*pi*n*fl(p)/8000)+sin(2*pi*n*f2(q)/8000); %构成双音频信号
sound(x,8000);
18
13.1.4 检测DTMF信号的DFT参数选择
用DFT检测模拟DTMF信号所含有的两 个音频频率,要确定三个参数:
采样频率 Fs DFT的变换点数N 需要对信号的观察时间的长度 Tp
19
13.1.4 检测DTMF信号的DFT参数选择
这三个参数不能随意选取,要根据对信 号频谱分析要求确定
第三段(第22-25行)对时域离散DTMF信号进 行频率检测,画出幅度谱
第四段(第26-33行)根据幅度谱的两个峰值, 分别查找并确定所输入的6位电话号码
22
13.1.5 DTMF信号系统的模拟实验
根据程序中的注释很容易分析编程思想和处理 算法,程序清单如下:
%DTMF双音频拨号信号的生成和检测程序:ep1021m
假设长度为N的序列 x(n) 的N点DFT用X(k)
表示,因为
W kN N
1
,因此
N 1
X
(k
)
W kN N
X
(k
)
W kN N
x(m)WNkm
m0
N 1
x(m)WNk (N m) k 0,1, 2,
(13.1.1) , N 1
m0
定义序列
N 1
yk (n)
x(m)WNk (nm)
m0
(13.1.8) (13.1.9)
17
13.1.3戈泽尔算法
✓ 因为检测信号的两个频率时,只用它的幅度谱 因此只计算式(13.1.9)模的平方,得到
yk (N ) 2
vk2 (N ) vk2 (N
1)
2
cos
2 k N
vk
(
N
)vk
(
N
1)
(13.1.10)
按照图13.1.1所示的结构图,可以用软件
电话中的双音多频信号的作用
用拨号信号去控制交换机接通被叫的用户电 话机
控制电话机的各种动作,如播放留言、语音 信箱等
7
13.1.2双音多频信号的产生与检测
DTMF信号的产生与检测识别系统是一 个典型的小型信号处理系统,它要用 数字方法产生模拟信号并进行传输, 其中还用到了D/A变换器;在接收端 用A/D变换器将其转换成数字信号并 进行处理,包括DFT的应用
m=[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];
%8个基频对应的8个k值
f1=[697,770,852,941];
%行频率向量
f2=[1209,1336,1477,1633];
第13章
数字信号处理应用举例
数字信号处理应用举例
数字信号处理技术在通信系统、生物医
学、遥感系统、地质勘探、机械振动、交通
运输、宇宙航行、自动测量等方面都有广 泛的应用
本章介绍数字信号处理的两种典型应 用举例
数字信号处理在双音频多拨号系统中的应 用
数字信号处理在音乐信号处理中的应用
2
数字信号处理应用举例1
对信号频谱分析有以下三个要求
频谱分析的分辨率
观察要检测的8个频率,相邻间隔最小的是第一和 第二个频率,间隔是73Hz,要求DFT至少能够分辨 相隔73Hz的两个信号
频谱分析的频率范围(为697—3266Hz) 检测频率的准确性 经分析,确定 Fs 8kHz, N 205,Tp 40ms
8
13.1.2双音多频信号的产生与检测
采用数字方法产生DTMF信号
假设时间连续的DTMF信号用
x(t) sin(2 f1t) sin(2 f2t)
表示,式中 f1 ,f2 是按照表13.1.1选择的 两个频率 规定用8kHz对DTMF信号进行采样,采样后 得到时域离散信号为
x(n) sin(2 f1n / 8000) sin(2 f2n / 8000)
11
13.1.3戈泽尔算法
为了提高系统检测速度并降低成本, 开发出一种特殊的DFT算法,称为戈泽 尔(Goertzel)算法,这种算法既可以用 硬件实现,也可以用软件实现
戈泽尔算法利用DFT中的旋转因子 WNk 的周期性,将DFT的运算转换成一种线 性滤波运算
12
13.1.3戈泽尔算法
戈泽尔算法的计算公式和实现结构
end
disp(‘接收端检测到的号码为:’ )
disp(TNr)
%显示接收到的6位电话号码
运行程序,根据提示输入6位电话号码 123456,回车后可以听见6位电话号码对应的 DTMF信号的声音,并输出响应的6幅频谱图, 如图13.1.2所示
25
13.1.5 DTMF信号系统的模拟实验
图13.1.2 6位电话号码123456的DTMF信号在8个近似基频点的DFT幅度
实现,也可以用硬件实现
✓ 按照图13.1.1(a)用软件实现时,可以用递推 法进行,按式(13.1.6)写出它的递推方程为
yk (n) WNk yk (n 1) x(n) ,yk (1) 0
✓ 按照图13.1.1(b)用软件实现,用(13.1.8)、式 (13.1.10)进行递推运算,设定初始条件为零 状态,即 vk (1) vk (2) 0
8个频率形成16种不同的DTMF信号,具体DTMF拨号 的频率分配见下表
低频率 高 频 率
697Hz 770Hz 852Hz 942Hz
1209Hz 1 4 7 *
1336Hz 2 5 8 0
1447Hz 3 6 9 #
633Hz A B C D
表 13.1.1 DTMF拨号的频率分配
6
13.1.1电话系统中的双音多频信号
axis([10 50 0 120]);
1imit=80;
%基频检测门限为80
for s=5:8;
if val(s)>1imit,break,end
%查找列号
end
for i=1:4;
if val(s)>1imit,break,end
%查找行号
end
24
13.1.5 DTMF信号系统的模拟实验
TNr=TNr+tm(r,s-4)*10^(6-m); %将6位电话号码表示成一个6位数,以便显示
✓ 该一阶滤波器的结构图如图13.1.1(a)所示
戈泽尔算法的原理方框图如图13.1.1(c)所 示
15
13.1.3戈泽尔算法
图13.1.1 用戈泽尔算法实现DFT的滤波器结构
16
13.1.3戈泽尔算法
为了避免复数乘法,将一阶纯极点滤波器变 为二阶滤波器,推导如下
Hk (z)
1
1 WNk
z
1
1WNk z1 1WNk z1 1WNk z1
1WNk z1
1
2百度文库
cos
2 k
N
z 1
z 2
✓ 按上式画的结构图如13.1.1(b) (13.1.7)
✓ 按照结构图13.1.1(b),可以用两个差分程表示
该二阶滤波器,即
vk
(n)
2
cos
2 k N
vk
(n
1)
vk
(n
2)
x(n)
yk (n) vk (n) WNk vk (n 1)
双音多频信号不仅可以用在电话网络中, 还可以用于传输十进制数据的其它通讯 系统中,用于电子邮件和银行系统中
4
13.1.1电话系统中的双音多频信号
电话系统采用双音拨号的原理
所有的频率可分成高频带和低频带两组, 低频带和高频带各有四个频率
✓ 低频带四个频率:679Hz,770Hz,852Hz,941Hz ✓ 高频带四个频率:1209Hz,1336Hz,1447Hz,1633Hz
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
形成上述序列有两种方法,一种是计算 法,另一种是查表法
9
13.1.2双音多频信号的产生与检测
用计算法求正弦波的序列值容易,但实际中要 占用一些计算时间,影响运行速度
查表法是预先将正弦波的各序列值计算出来, 存放在存储器中,运行时只要按顺序和一定的 速度取出即可.这种方法要占用一定的存储空 间,但是速度快
Xgk是变换结果向量,其中存放的是由Κ指定的频率 点的DFT[x(n)]的值
21
13.1.5 DTMF信号系统的模拟实验
下面用MATLAB程序对该系统进行模拟, 程序名为ep1021,程序分四段
第一段(2-7行)设置参数,并读入6位电话号 码
第二段(第9-20行)根据输入的6位电话号码 产生时域离散DTMF信号,并连续发出6位号 码对应的双音频声音
%发出声音
pause(0.1);
%相邻号码响声之间加0.1s停顿
%接收检测端的程序
X=goertzel(x(1:N),K+1);
%用Goertzel算法计算8点DFT样本
val=abs(X);
%列出8点DFT的模
subplot(3,2,1);stem(K,val,‘.’);xlabel(‘k’);ylabel(‘|X(k)|’)%画出8点DFT的幅度
13.1 数字信号处理在双音频多拨号系统 中应用
电话系统中的双音多频信号 双音多频信号的产生与检测 戈泽尔算法 检测DTMF信号的DFT参数选择 DTMF信号系统的模拟实验
3
13.1.1电话系统中的双音多频信号
双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信号, 由美国AT&T贝尔公司实验室研制,并用 于电话网络中
每一位号码由两个不同的单音频组成, 即由一个低频带频率和一个高频带频率 叠加形成
✓ 例:十进制数字1用679Hz和1209Hz两个频率,对应 的DTMF信号用 sin(2 f1t) sin(2 f2t) 表示,其中
f1 697Hz, f2 1209Hz
5
13.1.1电话系统中的双音多频信号
因采样频率是8000HZ,因此要求每125ms输出一 个样本,得到的序列再送到D/A变换器,它的输 出经过平滑滤波便是连续时间的DTMF信号
DTMF信号通过电话线路再送到交换机
10
13.1.2双音多频信号的产生与检测
双音多频信号的检测
在接收端,要对收到的双音多频信号进行检测,即 检测两个正弦波的频率,以判断其对应的十进制数 字或者符号
(13.1.2)
x(n) *WNkn
13
13.1.3戈泽尔算法
令
hk
(n)
W kn N
(13.1.3)
则
yk (n) x(n) * hk (n)
(13.1.4)
将 yk (n) 看成是序列 x(n) 通过单位脉冲响应 为 hk (n) WNkn的滤波器的输出,对比式
(13.1.1)和(13.1.2),可得
X (k ) yk (n) nN
(13.1.5)
于是N点DFT就是这N个滤波器分别对序列
x(n) 的响应序列的第N点输出
14
13.1.3戈泽尔算法
对(13.1.3)进行Z变换,得到滤波器系统
函数
Hk
(
z)
1
1 WN k
z
1
(13.1.6)
✓ 该滤波器是一个一阶纯极点滤波器,极点 为 WNk e j2 k /N ,极点频率为 k 2 k / N
%列频率向量
TN=input(‘输入6位电话号码=1’);
%输入6位数字
TNr=0;
%接收端电话号码初值为零
for m=1:6
%分别对每位号码数字处理:产生信号,发声,检测
d=fix(TN/10^(6-m));
%计算出第m位号码数字
TN=TN-d*10^(6-m);
for p=1:4;
for q=1:4;
将收到的时间连续DTMF信号经过A/D变换,变成数 字信号再进行检测
检测的方法有两种 ✓ 用一组滤波器提取所关心的频率,判断对应的数 字或符号(当检测的频率数目较少时,用此法实现更合
适)
✓ 用DFT(FFT)对双音多频信号进行频谱分析,由信 号的幅度谱,判断信号的两个频率,最后确定对 应的数字或符号