【发布时间】:2012-10-02 02:01:59
【问题描述】:
我整个星期都在试图解决这个问题。我的主要问题是将声音与信号中的噪声分开(参见绘图示例:
在这些小噪音之间是 dtmf 音调。一旦我得到音调的起点和终点的索引,转换它们就很容易了。
我们应该如何准确地确定噪音是开始还是开始?每个噪音可以有不同的长度,并且在实际声音中会有很多突然下降。我理解取小块的概念,但是我们如何比较它们以确定声音中的噪音。我们可以通过比较索引的长度来消除沉默吗 连续低于一定数量?我不知道如何开始 问题。
function [phone_number,ERROR] = cjm274_dtmf_number(dtmf_signal,fs)
Input:
% dtmf_signal - samples of the input waveform
% fs - sampling frequency
% Output:
% phone_number - string of characters representing a phone number
% ERROR - set to zero if phone_number does not represent a valid
% phone number
【问题讨论】:
-
这是作业吗?你了解过频率变换吗?
-
执行此类操作的标准方法是过滤掉除 8 个感兴趣的 DTMF 频率之外的所有内容。看看使用Goertzel Algorithm。
标签: matlab signal-processing decoder dtmf noise-reduction