问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

matlab中filter和conv函数有什么区别?

发布网友 发布时间:2022-04-23 03:32

我来回答

2个回答

热心网友 时间:2023-11-03 23:17

在MATLAB中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。
实现差分方程
先从简单的说起:
filter([1,2],1,[1,2,3,4,5])
实现 y[k]=x[k]+2*x[k-1]
y[1]=x[1]+2*0=1%(x[1]之前状态都用0)
y[2]=x[2]+2*x[1]=2+2*1=4

a. 下面程序是用来实现h和x的卷积得,分别用了filter和conv函数,两者函数得出的结果一样。
h = [3 2 1 -2 1 0 -4 0 3]; % impulse response
x = [1 -2 3 -4 3 2 1]; % input sequence
y = conv(h,x);
n = 0:14;
subplot(2,1,1);
stem(n,y);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Obtained by Convolution'); grid;
x1 = [x zeros(1,8)];
y1 = filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Generated by Filtering'); grid;
要实现下式的冲击响应和阶跃响应,可以分别采用三种方法。
y[n]+0.75y[n-1]+0.125y[n-2]=x[n]-x[n-1]。
b. 单位冲激响应:
(1)用filter函数
a1=[1,0.75,0.125];
b1=[1,-1];
n=0:20;
x1=[1 zeros(1,20)];
y1filter=filter(b1,a1,x1);
stem(n,y1filter);
title('y1filter');
xlabel('x');
ylabel('y');
(2)用conv函数
a1=[1,0.75,0.125];
b1=[1,-1];
x1=[1 zeros(1,10)];
[h]=impz(b1,a1,10);
y1conv=conv(h,x1);
n=0:19;
stem(n,y1conv,'filled')
(3)用impz函数
a1=[1,0.75,0.125];
b1=[1,-1];
impz(b1,a1,21);
c. 单位阶跃响应:
(1)用filter函数
a1=[1,0.75,0.125];
b1=[1,-1];
n=0:20;
x2=ones(1,21);
y1filter=filter(b1,a1,x2);
stem(n,y1filter);
title('y1filter_step');
xlabel('x');
ylabel('y');
(2)用conv函数
a1=[1,0.75,0.125];
b1=[1,-1];
x2=ones(1,21);
[h]=impz(b1,a1,20);
y1=conv(h,x2);
y1conv=y1(1:21); %为何y1conv要取y1中1:21的值,解释见
n1=0:20; %y2à单位阶跃响应à用conv函数中注释
stem(n1,y1conv,'filled');
title('y1conv');
xlabel('n');
ylabel('y1[n]');
(3)用impz函数
a=[1,0.75,0.125];
b=1;
impz(b,a)
即y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y的系数,p表示输入x的系数,而x表示输入序列。输出结果长度数等于x的长度。
而y=conv(x,h)是用来实现卷级的,对x序列和h序列进行卷积,输出的结果个数等于x的长度与h的长度之和减去1。
y=impz(p,d,N)是用来实现冲击响应的,d和p的定义见filter,N表示冲击响应输出的序列个数。

热心网友 时间:2023-11-03 23:17

conv 是卷积,比如说conv(a,b)就是说 a卷积b;
filter是设计滤波器的一种函数,y=filter(b,a,x)表示的是
y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 如何在matlab中建立和调用filter函数 filter函数的用法是什么? filter函数的用法 matlab中filter函数的用法 关于matlab filter这个函数到底怎么用? 家里有白蚁怎么办能除根吗 六个方法科学除蚁 江湖风云录怎么提高丹田修为上限? 江湖风云录必须主角学内功才能扩充丹田吗 江湖风云录胡休用什么内功好?目前九阳和莽牯二选一。 江湖风云录两仪玄元功给谁 江湖风云录阵容搭配一家怎么搭配阵容,有大神说说么 江湖风云录速升流武功怎么搭配 江湖风云录混元功搭配什么比较好 江湖风云录刀主学什么内功好 江湖风云录修炼内功,选择浑天真气好还是华山心法? 江湖风云录胡休武功内功怎么选 江湖风云录元宝人物内功推荐:什么内功最厉害 江湖风云录唐雨晨适合学什么功法?唐雨晨武功内功推荐 江湖风云录最新版本c级内功哪个好 江湖风云录侠客内功武功怎么选择 matlab filter函数使用的滤波器是什么滤波器? 关于MATLAB中filter2函数的原理 MATLAB中FILTER函数有关的问题(急) 求介绍一下matlab中用filter函数实现卷积 matlab中filter和conv函数的区别 关于matlab中的filter函数调用理解 关于matlab filter这个函数^^ 在MATLAB中利用filter函数在给定输入和差分方程时求差分方程的解。 matlab中filter和conv函数有什么区别 如何用matlab实现两个函数的卷积运算 新手求大神指点:matlab 里 y = filter(b,a,x);里的b,a,x是什么意思,a,b是控制什么的 matlab低通滤波程序,怎么用? 汽车保险可以过户吗? 机动车保险可以过户吗 车辆保险可以过户吗 二手车的保险可以过户吗 你好我买的二手车,保险可以过户吗 汽车保险可以在异地过户吗 万宝龙134055表示什么意思? 万宝龙149是什么意思