【问题标题】:How to get rid of noise in a signal?如何去除信号中的噪声?
【发布时间】: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


【解决方案1】:

由于您对所需信号的了解比对噪声的了解更多,因此通常认为更容易过滤和传递所需信号,并在将其从噪声中滤除后确定该信号的开始和停止。例如,您可以尝试一组窄带滤波器,每个滤波器都围绕一个 DTMF 频率。

【讨论】:

    猜你喜欢
    • 2011-10-15
    • 2018-07-18
    • 2012-11-14
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多