消除矩形波matlab中的噪音

时间:2015-07-09 17:13:15

标签: matlab filter noise

我有一些录音(从下午16:00到下午16:00),其中一些表示某种噪音,零点表示非常时刻。以下代码尝试复制这些录音。

dt = datenum('00:02:00','HH:MM:ss') - datenum('00:01:00','HH:MM:ss'); 
time_begin = datenum('00:00:00','HH:MM:ss');
time_end = datenum('24:00:00','HH:MM:ss');
time = repmat(cellstr(datestr(time_begin:dt:time_end,'HH:MM:ss')),2,1);

loudness = ones(1,numel(time));
quiet_start = [1489 1737];
quiet_end = [1603 1906];

for i = 1: numel(quiet_start)
   loudness(quiet_start(i):quiet_end(i))=0; 
end

time = time(961:2400);
loudness = loudness(961:2400);


figure
plot(loudness)
ylim([0 3])

enter image description here

我知道在下午16:00 - 下午16:00之间应该只有1"回合"零。在这里(如果您绘制loudness),您可以看到有2个零点。

我有两种可能性:

  1. 删除两个零点之一
  2. 删除中间的那些
  3. 我可以用任何措施来做出这个决定吗?即我将一个更大的错误转换为零或反之?

    由于录音中存在一些错误,有2个(或更多)的零点发生......但肯定只有一个。我想删除这些比赛,以便修改"系统越少越好。例如:在这种情况下,我会删除第一个零,因为它是最小的,但如果有超过2个回合该怎么办?是否有任何算法可以解决这类问题?

0 个答案:

没有答案