实验五下基于FFTIP核的十六按键DTMF信号的检测.doc
文本预览下载声明
实验五下 基于FFT IP核的十六按键DTMF信号的检测
本实验主要要完成利用Altera公司的FFT IP核来实现双音多频信号的检测。
主要内容包括:
1、现有十六按键DTMF信号发生器
2、调用FFT IP核,做信号频谱
3、状态机实现按键的检测
系统流程图:
Ⅰ、本实验的难点在于FFT IP核的使用,6.1版本的IP核
DTMF解码的方法这里已不再介绍,主要介绍如何用FFT IP核来检测,
操作包括两方面:
IP 核配置:
FFT点数的设置、输入信号比特数的设置、旋转因子比特数的设置;
本实验设置成1024点,输入信号设置为8位,旋转因子8位
FFT实现的结构,I/O数据流的方式;
实现时乘法器和加法器的配置等。
默认即可
IP 核外围信号设置:
关于此处的信号配置需要查看各信号的作用以及相互之间的时序关系
reset_n IP核复位信号,低电平有效,因此该模块工作至少应该在reset_n为高电平。
Sink_valid:告知IP核有信号输入,高电平有效
Sink_ready:IP核作为回应通知输入端,可以接收输入数据,因此只有当sink_ready为高电平时,才能接收输入的信号进行处理。当它为低时表明不能接收更多数据了,此时IP核转入计算,将前面输入的N点数据进行处理。
Sink_sop:输入数据包起始信号,当该脉冲信号过后,数据开始进入IP核缓冲区
Sink_eop: 输入数据包结束信号, Sink_sop---- Sink_eop应为N点数据。
Source_ready:输入源准备信号,置高就行
Sink_error:错误等级信号,表明有错误的信号存在,不符合Avalon_ST接口协议,这里直接将其置成无错误,即给0。
Sink_real:sink_imag:输入信号实部与虚部
因此最后该模块配置如下:
Ⅱ、FSM检测模块:
FFT模块输出的信号为:
source_valid;source_sop;fft_out
source_valid:该信号在输出数据包开始与结束信号间为高电平,因此可以用它来作为计数器使能信号。
source_sop:输出数据包起始信号,该信号作为计数器复位信号,另外我们还用了一个信号flag(按键信息),无按键情况下为低电平,取反后做为复位信号,让计数器清零。
在检测模块中主要有两部分:
计数器部分:source_valid信号置高后便开始记数,用以区分高频段或者低频段频谱出现的位置。
状态机部分:
这里的条件主要有:
1)高、低频段的最大幅值都必须大于某个门限值
按键译码
FSM实现DTMF检测
FFT IP核
DTMF信号发生器
按键
模块
显示全部