\qquad以下列出的是产生两个门函数的matlab代码,式中主要运用了matlab的f=@(x) 函数句柄 ,它主要是包含了函数的路径、函数名、类型以及可能存在的重载方法。函数句柄必须通过专门的定义创建的,而一般的图像的句柄是自动建立的。使用该形式的函数的方法相比于.m函数文件的优点就是,因为在计算机开始执行运算的时候是需要在整个的matlab代码中去寻找是否存在该.m文件,我们也知道,matlab整个的文件数量是非常多的,所以直接调用.m文件是会耗费一些时间的,而如果我们直接采用 @ 的方式则会节省一部分时间。
clc
clear
%定义函数,该函数主要实现任意形式的门函数
high_1=1;
left_1=0;
right_1=1;
%定义要产生的窗函数的左右区间范围以及高度
f_1=@(x) (high_1)*(x>=left_1 & x<right_1);%0-1的阶跃 高1
f_2=@(x) (high_1+0.5)*(x>=left_1+2 & x<right_1+2);%0-1的阶跃 高1.5
x=-4:0.0006:4;
y_1=f_1(x);%得到对应的窗函数的y轴数据
y_2=f_2(x);
%开始画第一个图
figure(1)
hold on
plot(x,y_1,'b','LineWidth',2.5);
%加载x(t)图像
grid on;
axis([-1 5 0 2])%确定画图范围
plot(x,y_2,'r','linewidth',2.5);
%加载y(t)图像
%以下是坐标轴设置
xlabel('s/t')
ylabel('f(x)')
title('需要卷积的两个窗函数的时域图像')
legend('x(t)','h(t)');
hold off;