解码算法简介
扫描二维码
随时随地手机看文章
对不同的信号通常有着不同的解码算法,日常生活中主要为DTMF信号与PDM信号。DTMF(Double Tone Multi Frequency ,双音多频)信令使用在按键式电话机上,因其提供更高的拨号速率,并具有很强的抗干扰能力,从而迅速取代了传统转盘式电话机使用的拨号脉冲信令。 近年来,DTMF 广泛应用于交互式控制中,如语言菜单、语言邮件、来电显示、电话银行和 ATM 终端等,用户可发送 DTMF 信号来选择菜单进行操作。 DTMF 编码器将数字按键信息转换成双音信号发送出去,解码时对接收到的 DTMF 信号进行检测,将其还原为数字键。
FFT算法FFT(快速傅里叶变换)是有限长序列离散傅里叶变换(DFT)的快速算法,其基本运算是蝶形算法,可使DFT计算时间缩短1~2个数量级,大大推动了数字信号处理技术的发展。解码过程如下:1.对接收到的DTMF信号做FFT,画频谱图,从中找出代表各信号的频率分量。FFT中要求序列长度N为2的E次幂(E为整数),所以N=28=256,由于频谱分辨率F=fs/N≈31.25Hz<73Hz,因此可在频谱图中分辨出各频率分量。DTMF信号的幅频谱只含两根谱线,谱线横坐标即该信号的两个频率分量点KL和KH。消除频谱泄漏。由于DTMF信号是有限长的,相当于对无限长的信号加矩形窗,因此在频谱图中必然会出现频谱泄漏现象,使信号能量散布到其他谱线位置。为此应选择一适当阈值,将出现在这两条谱线周围的幅度较小的谱线消除。2.将各DTMF信号还原为相应的数字键。
DFT 算法用FFT算法解码,每帧信号要做 N = 256 点FFT,而组成所有DTMF 信号的频率只有 8 个,于是可以只对每帧信号算 8 个最具有特征的特征点的DFT,以避开 FFT中许多无意义的计算。DFT 算法解码过程如下:1.对每帧 DTMF 信号在 8 个特定的频率上做DFT,画幅频谱图,从中找出代表各信号的特征字。2.将各 DTMF 信号还原为相应数字键。
频域滤波算法1.首先对信号分帧,考虑到频谱泄露等截断效应,用汉宁窗可得到更好的频谱特性。然后根据序列加窗后的频谱,从频域上滤波,即对带外频谱置零,得到输入序列理想化低通滤波后的频谱。2.由于此时带外频谱已置零,信号带宽减小,可直接将带内频谱进行拼接, 做傅里叶逆变换恢复时域波形,相当于抽取。3.最后除以汉宁窗系数,得到了解码后的序列。在滤波中除去汉宁窗系数时, 会放大序列两端的绝对误差。 对长序列分段解码时,需要采用重叠保留法,即分段时需要与前后少量重叠, 解码后丢弃前后重叠的部分, 保留中间绝对误差小的部分作为解码结果。此算法使用 DFT进行解码,分段的大小对解码效果也有重要的影响。对不同频率输入信号,采用频域滤波解码算法计算出来的信噪比,在分段较小时,信噪比随着频率的升高而下降。因为频谱分析时产生频谱泄露,在理想化滤波时被去除,导致由此恢复出的带内频谱失真。并且频率越高,泄露到带外的越多,从而失真越大,信噪比下降。 随着分段长度的增加,信噪比的损失逐渐减小。分段长度为 512×64,就可做到基本不损失信噪比,这是因为较大的分段可获得更细致的频谱, 减少频谱泄露到带外而引起的信噪比下降。