任务
对抽样函数Sa(t)了解不多,对其积分公式进行推导,并用matlab进行计算与绘图
matlab绘制函数图像
%调整图表尺度
scale=0.1;%尺度
count=10;%范围
%自动调整
unit=pi;
range=count*unit;
index=1;
x=zeros(round(count*pi*2/scale),1);
y=zeros(round(count*pi*2/scale),1);
for t=-range:scale:range
x(index)=t;
y(index)=sin(t)/t;
index=index+1;
end
plot(x,y);
上面的代码已经可以绘制抽样函数的图像,但为得到更直观的信息,进行下面的图像注释,参考:
- MATLAB画图技巧:改变坐标轴刻度的显示数值
- 进行更改:matlab可用latex公式,因此用pi表示,并自动生成坐标轴范围
- Matlab保存图像的5种方法
- saveas(gca, filename, fileformat),其中的三个参数:
- gca:图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3;也可以直接用gcf获取当前窗口句柄。
- filename:单引号字符串,指定文件名
- fileformat:单引号字符串,指定存储格式
- 例子:
- saveas(gcf,’save.jpg’); %保存当前窗口的图像
- saveas(2,’save.jpg’); %保存Figure 2窗口的图像
- saveas(gca, filename, fileformat),其中的三个参数:
- 在Matlab里面如何实现字符串的拼接
- 定义字符串:string=””
- 拼接函数:strcat({‘hello ‘},{‘world’});
- 附:文档
%控制坐标范围
axis([-inf,inf,-0.5,1.5]);
%生成横坐标刻度
labels="";
index=1;
interval=count/5;
for tick = -count:interval:count
labels(index)=(strcat({num2str(tick)},{'pi'}));
index=index+1;
end
%设置图表标题/坐标刻度
rangeX=-range:pi*interval:range;
set(gca,'XTick',rangeX);
set(gca,'XTickLabel',labels);
title('Sampling Function');
xlabel('Radians');
ylabel('Function Value');
grid on;
%保存图片,以尺度与范围命名
filename=strcat('sampling-',num2str(scale),'-',num2str(count),'.png');
saveas(gca,filename);

当t=0时,Sa(t)=1;
当t=kpi(k<>0),Sa(t)=0

求积分
如何计算上述积分?两种方法:
(1)
(2)
- 利用引入收敛因子,求含参变量的积分
- 傅里叶变换求解
对两种方法分别整理如下
含参变量积分
整理自作业帮回答
求取(2)
(3)
(4)
(5)
对I(x)求微分:
(6)
利用分部积分公式求得:
(7)
整理得:
(8)
则有:
(9)
(10)
考虑时,对于式(4):
(11)
对于式(10)),则有:
(12)
(13)
代入式(10):
(14)
此时,代回最初的表达式(5),得到结果:
(15)
Laplace变换
(16)
(17)
求取F(s),利用频域微分性质
(18)
(19)
令
(20)
(21)
(22)
对于本式,有:
(23)
(24)
代入(22)得:
(25)
同上,将s->∞代入可得
(26)
代入式(25):
(27)
此时,代回最初的表达式(17),得到结果:
(28)
其他解法
可以通过傅里叶变换求解,分别求取sint与1/t的傅里叶变换,再进行卷积
(29)
(30)
利用复变函数的留数求解,但奇点在积分路径上,因此不寻常
参考: