MATLAB中conv和filter函数的区别

news/2024/6/17 13:35:27 标签: matlab, 卷积, 滤波

文章目录

  • 1.函数简介
    • w = conv(u,v)
    • y=filter(b,a,x)
    • 讨论情况
  • 2.先说结论
  • 3.代码验证

1.函数简介

w = conv(u,v)

w = conv(u,v) 返回向量 uv卷积结果,卷积运算是对信号的移位加权求和。

y=filter(b,a,x)

使用由分子和分母系数 b 和 a 定义的有理传递函数对输入数据 x 进行滤波。要将 filter 函数与来自 FIR 滤波器的 b 系数结合使用,请使用 y = filter(b,1,x)

有理传递函数:Z 变换域中这种 filter 运算的输入-输出说明是一种有理传递函数。有理传递函数采用如下形式:
Y ( z ) = b ( 1 ) + b ( 2 ) z − 1 + . . . + b ( n b + 1 ) z − n b 1 + a ( 2 ) z − 1 + . . . + a ( n a + 1 ) z − n a X ( z ) Y(z)=\frac{b(1)+b(2)z^{-1}+...+b(n_b+1)z^{-n_b}}{1+a(2)z^{-1}+...+a(n_a+1)z^{-n_a}}X(z) Y(z)=1+a(2)z1+...+a(na+1)znab(1)+b(2)z1+...+b(nb+1)znbX(z)
可同时处理 FIR 和 IIR 滤波器 。na 是反馈滤波器阶数,nb 是前馈滤波器阶数。

讨论情况

由于conv(u,v)与filter(b,1,x)运算类似,本文只讨论这两种的区别。

2.先说结论

filter(b,1,x)运算的结果可以简单理解为:将conv运算后的结果取前面x向量的长度。

3.代码验证

MATLAB代码:

matlab">clear all;close all;clc; %清理工作区,关闭所有窗口,清空文本
% 数据
M=[1,2,3,4,5,6,7,8,9,10];  
N=[1,2,3,4];  
N_long = [N,zeros(1,4)];%N后面加4个0,长度为8

% 卷积滤波
N_conv_M = conv(N,M)
M_conv_N = conv(M,N)

N_filter_M=filter(N,1,M) 
M_filter_N=filter(M,1,N)  

M_filter_N_long=filter(M,1,N_long)  

%长度
disp(['N_conv_M长度为M+N-1=', num2str(length(N_conv_M))]);
disp(['M_conv_N长度为M+N-1=', num2str(length(M_conv_N))]);
disp(['N_filter_M长度为M=', num2str(length(N_filter_M))]);
disp(['N_filter_M长度为N=', num2str(length(M_filter_N))]);
disp(['N_filter_M长度为N_long=', num2str(length(M_filter_N_long))]);

命令行打印结果:

N_conv_M =

     1     4    10    20    30    40    50    60    70    80    79    66    40


M_conv_N =

     1     4    10    20    30    40    50    60    70    80    79    66    40


N_filter_M =

     1     4    10    20    30    40    50    60    70    80


M_filter_N =

     1     4    10    20


M_filter_N_long =

     1     4    10    20    30    40    50    60

N_conv_M长度为M+N-1=13
M_conv_N长度为M+N-1=13
N_filter_M长度为M=10
N_filter_M长度为N=4
N_filter_M长度为N_long=8

http://www.niftyadmin.cn/n/5348583.html

相关文章

Linux中断 -- 中断路由、优先级、数据和标识

目录 1.中断路由 2.中断优先级 3.中断平衡 4.Linux内核中重要的数据结构 5.中断标识 承前文,本文从中断路由、优先级、数据结构和标识意义等方面对Linux内核中断进行一步的解析。 1.中断路由 Aset affinity flow GIC文中有提到SPI类型中断的路由控制器寄存器为…

洛谷C++简单题练习day7—P2524 Uim的情人节礼物

day7--P2524 Uim的情人节礼物--1.27 习题概述 Uim 成功地按照顺序将礼物送到了 N 个同学的手里并维持她们的和谐。 现在 Uim 现在想知道,他最终选择的顺序是所有给 N 个同学送礼顺序中,字典序 第几小的。送礼顺序可以看作1,2,⋯,N 的一个排列。 输入…

力扣每日一题 ---- 1039. 多边形三角剖分的最低得分

这题的难点在哪部分呢,其实是怎么思考。这道题如果之前没做过类似的话,还是很难看出一些性质的,这题原本的话是没有图片把用例显示的这么详细的。这题中有个很隐晦的点没有说出来 剖出来的三角形是否有交叉,这题中如果加一个三角…

js原型模式克隆

原型模式的实现关键,是语言本身是否提供了clone方法。ECMAScript 5提供了Object.create方法,可以用来克隆对象 var Plane function(){this.blood 100;this.attackLevel 1;this.defenseLevel 1;};var plane new Plane();plane.blood 500;plane.atta…

专业120+总分400+海南大学838信号与系统考研高分经验海大电子信息与通信

今年专业838信号与系统120,总分400,顺利上岸海南大学,这一年的复习起起伏伏,但是最后还是坚持下来的,吃过的苦都是值得,总结一下自己的复习经历,希望对大家复习有帮助。首先我想先强调一下专业课…

Java聚类分析

聚类 聚类1 解决什么问题KMean聚类Kmedoids聚类2 java实现计算二维点的聚类案例KMean实现输出 K-medoids实现输出 聚类 1 解决什么问题 假设二维坐标轴上有一些点,现在让你把这些点分个类。于是对我们来说,这个分类似乎就是把距离相近的点画到一类中去。…

03-Redis缓存高可用集群

文章目录 1、Redis集群方案比较2、Redis高可用集群搭建redis集群搭建Java操作redis集群 4、Redis集群原理分析槽位定位算法跳转重定位Redis集群节点间的通信机制gossip通信的10000端口网络抖动 Redis集群选举原理分析集群脑裂数据丢失问题集群是否完整才能对外提供服务Redis集群…

程序员该懂的一些测试(一)

基础概念 等价类划分,边界值分析(黑盒测试) 初级测试工程师 1.输入已注册的用户名和正确的密码,验证是否登录成功; 2.输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确&a…