• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
清风醉明月 slp_art
博客园    首页    新随笔    联系   管理    订阅  订阅

线性卷积 matlab 实现

x1 = [1,2,2,1];
x2 = [1,-1,-1,1];
x3 = conv(x1,x2)

image

x1 = [1,2,2,1];
x2 = [1,-1,-1,1];
%x3 = conv(x1,x2)     %MATLAB 自带的函数
circonvt(x1,x2,9)        %前面一节刚写的函数

image

如果将X1 与X2 通过补零而成为N =(N1+N2-1)点序列,那么循环卷积就与线性卷积一样了。

差别在于循环移位和线性移位。

x1 = [1,2,2,1];
x2 = [1,-1,-1,1];
%x3 = conv(x1,x2)
circonvt(x1,x2,7)

image

x1 = [1,2,2,1];
x2 = [1,-1,-1,1];
%x3 = conv(x1,x2)
circonvt(x1,x2,5)

image

x1 = [1,2,2,1];
x2 = [1,-1,-1,1];
%x3 = conv(x1,x2)
circonvt(x1,x2,6)

image

实现中的N过大时会占用较多存储空间 当N选取的值比要求值小时就会引入误差

当选取N = max(N1,N2)做循环卷积时,前(M-1)个样本在误差中(即有别于线性卷积),这里M = min(N1,N2)。

posted @ 2011-07-06 16:14  清风醉明月 slp_art  阅读(1559)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3