【发布时间】:2013-06-16 14:36:30
【问题描述】:
我在互联网上找到了这个 Matlab 代码。它实际上是整个代码的一部分,可以在here 找到。有人可以逐行解释发生了什么。我真的很绝望……
% ------------- % This is code to make the edge detecting filter % ----%
function filter=gaussfilt(N)
% calculate alpha so the filter fills all N points
alpha=N;
first=-(1-N/2)*exp(-(1-N/2)^2/alpha);
count=0;
while first<.1*(-(1530/4000*N-N/2)*exp(-(1530/4000*N-N/2)^2/alpha))
count=count+1;
alpha=N*500*count;
first=-(1-N/2)*exp(-(1-N/2)^2/alpha);
end
for n=1:N
filter(n)=-(n-N/2)*exp(-(n-N/2)^2/alpha); % d/dt of a gaussian
end
filter=filter/sum(abs(filter)); % normalization
return
【问题讨论】:
-
您确定要知道吗?这真的是非常非常丑陋的代码……学习它只会学到坏习惯。
-
好吧,我正在尝试分析 matlab 中的钢琴录音(.wav 文件)。我最初分析它的想法有一些困难,所以我在这里发布了一个问题,但没有回答。这是链接stackoverflow.com/questions/17124614/… 那时我遇到了这个编码,它说我可以获取我的信号并使用高斯边缘检测滤波器进行快速卷积,所以我想我会尝试一下。但是,如果您可以查看我以前的问题并回答它,那也将非常有帮助。提前致谢。
-
无法回答这个问题,因为它已关闭。我不认为你能像现在这样打开它。你应该总是在你的问题中表现出一些努力,否则它可能会被关闭。只为我自己说:我通常不会回答这样的问题,因为这表明你没有付出任何努力。 (实际上我不确定这次我为什么例外 =P )但是您可以就代码的特定部分提出问题...
-
我很高兴你回答:) 很抱歉含糊其辞。我会尽量说得更清楚。我重新发布了我的问题,可以通过以下链接访问。 stackoverflow.com/questions/17143728/… 我希望它和你期望的一样清楚。
标签: matlab