Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中平滑绘图?

我在图表上绘制了9000个点:

[ 全分辨率 ]



实际上,情节并不像我想要的那样顺利。 有什么方法可以使图形平滑到所需程度?

还是某种形式的阈值处理,以便我可以选择性地平滑那些过于颠簸的部分?

我不确定,但是快速傅里叶变换可以提供帮助吗?


回答:
一种简单的(临时)方法是在每个点及其邻居处获取加权平均值(可通过alpha ):

data(2:n-1) = alpha*data(2:n-1) + (1-alpha)*0.5*(data(1:n-2)+data(3:n)) 或其一些变化。是的,要变得更加复杂,可以先进行傅立叶变换,然后切断高频。就像是:

f = fft(data) f(n/2+1-20:n/2+20) = zeros(40,1) smoothed = real(ifft(f)) 这样可以切出最高的20个频率。注意将它们对称地切掉,否则逆变换不再是真实的。您需要仔细选择截止频率以实现正确的平滑度。这是一种非常简单的滤波(频域中的盒式滤波),因此,如果失真不可接受,您可以尝试轻轻地衰减高阶频率。



更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 03:21


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.