有个matlab程序看不懂,请各位大神简单解释一下,本人没学过matble

subplot(2,1,1);plot(t,Dout);xlabel('时间');ylabel('幅度');title('滤波器输出信号时域波形')subplot(2,1... subplot(2,1,1);plot(t,Dout);xlabel('时间');ylabel('幅度');title ('滤波器输出信号时域波形')
subplot(2,1,2);plot(f,fftshift(abs(PDout)));xlabel('频率');ylabel('幅度');title ('滤波器输出信号幅频特性');
展开
 我来答
cmcctju
2018-04-21 · TA获得超过279个赞
知道小有建树答主
回答量:185
采纳率:91%
帮助的人:79.3万
展开全部
subplot(2,1,1);plot(t,Dout);xlabel('时间');ylabel('幅度');title ('滤波器输出信号时域波形')
subplot(2,1,1)指将一个这个图像画在两行一列的第一行,polt是画图,xlabel是横坐标名称,ylabel为纵坐标名称,title为整个图像的标题。
fftshift函数
作用:将零频点移到频谱的中间
用法:
Y=fftshift(X)
Y=fftshift(X,dim)
描述:fftshift移动零频点到频谱中间,重新排列fft,fft2和fftn的输出结果。将零频点放到频谱的中间对于观察傅立叶变换是有用的。
abs(PDout)是求PDout的绝对值。plot(f,fftshift(abs(PDout)))是以频率为横坐标以ftshift(abs(PDout))为总坐标画图。
追问
谢谢,再请问下面的程序
Dout=zeros (length(D),1);
for i=1:length(D)
if i <16
Dout(i) = D(i);
else
for j=1:16
Dout(i) = Dout(i)+D(i-16+j)*COEF(j);
追答
先创建一个和D长度相同行数,一列的零矩阵Dout。而后进入for循环,i从1到D的长度循环,而后判断如果i小于16的话,就将D的对应值赋值给Dout,否则Dout这样赋值Dout(i) = Dout(i)+D(i-16+j)*COEF(j);然后直到结束循环。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式