在MATLAB中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积。
(1)即y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y的系数,p表示输入x的系数,而x表示输入序列。输出结果长度数等于x的长度。
实现差分方程,先从简单的说起:
filter([1,2],1,[1,2,3,4,5]),实现y[k]=x[k]+2x[k-1]
y[1]=x[1]+20=1 (x[1]之前状态都用0)
y[2]=x[2]+2x[1]=2+21=4
(2)y=conv(x,h)是用来实现卷级的,对x序列和h序列进行卷积,输出的结果个数等于x的长度与h的长度之和减去1。
卷积公式:z(n)=x(n)y(n)= ∫x(m)y(n-m)dm
程序一:以下两个程序的结果一样
(1)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;
(2)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;
程序二:filter和conv的不同
x=[1,2,3,4,5];
h=[1,1,1];
y1=conv(h,x)
y2=filter(h,1,x)
y3=filter(x,1,h)
结果:y1 = 1 3 6 9 12 9 5
y2 = 1 3 6 9 12
y3 = 1 3 6
可见:filter函数y(n)是从n=1开始,认为所有n<1都为0;而conv是从卷积公式计算,包括n<1部分。
因此filter 和conv 的结果长短不同
yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)];
>> t=linspace(-4,4,length(yrec));
>> plot(t,yrec),8,
真的是爱你 举报
你好,里面的X3(t)函数图像怎么画啊?
举报 曲中
如果题目说的那个函数,对应于-4到4的数据是yrec 那么我这三句就画出了它的图像 不知道那个pi函数是什么函数
真的是爱你 举报
yrec我也会画,但那个不知道什么符号的电脑不会打出来当它pi吧!反正 X(t)=pi(t)=yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)]; 然后它要画出 X3(t)=pi(t-1) ; 的图像 麻烦了谢谢,刚刚学不会画啊!! 那我原来画的yret就是-4<=t<4时候pi(t)图像 现在画pi(t-1)只是原来的图像向右移动一个单位 yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)]; >> t=linspace(-4,4,length(yrec))+1; >> plot(t,yrec) 这样就可以了,MATLAB 菜鸟怎么用matlab画出这个函数的波形图像啊
yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)];
矩形波:
sys=tf([3,10],[1,10,40,100])
[u,t] = gensig('square',4,10);
lsim(sys,'k',u,t)
hold on;plot(t,u,'-')
三角波:
T = 10(1/50);
Fs = 1000;
dt = 1/Fs;
t = 0:dt:T-dt;
x = sawtooth(2pi50t);
plot(t,x)
扩展资料:
注意事项
产生一个三角形的单脉冲信号。有三个参数,三种调用形式:
1、y=tripuls(T) T是一个数组,表示信号时间。
2、y=tripuls(T, w) w是三角波的宽度。
3、y=tripuls(T, w, s) s是三角波是斜率(-1<s<1)。
y=tripuls(t)产生非周期的三角波信号,三角波宽度为时间轴的一半。
y=tripuls(t,w,s)制定三角波的宽度为w,斜率为s(-1<s<1)。s说是斜率,其实代表了最大值在w区间内出现的最大值,比如s=0,则最大值出现在对称点上,s=05,最大值出现在右半区间的中点处,s=1,则出现在右半区间的右边界点处,也即最大值为出现在距离对称点w/2s处。
以上就是关于怎么用matlab画出冲激函数与斜坡函数的卷积波形全部的内容,包括:怎么用matlab画出冲激函数与斜坡函数的卷积波形、MATLAB 菜鸟怎么用matlab画出这个函数的波形图像啊、用matlab怎么才能产生矩形波和三角波等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)