作业帮 > 综合 > 作业

下面的matlab代码该怎么理解?是求采样信号重构的函数

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/09 07:28:31
下面的matlab代码该怎么理解?是求采样信号重构的函数
t=0:0005:1;
T = 0.1; % sampling period
t=t';
n = (0:T:1)';
xs = cos(2*pi*f*n);
ya = sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')*xs;%ya的表达式该怎么理解?他是怎么做到对n进行无穷求和的?
有点眉目了,ya前面一堆sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')是1*n的矩阵,后面的xs是n*1的矩阵而*号是矩阵乘法,不是.*,所以最后得到1*1矩阵,根据矩阵乘法的定义,得到的值就是相乘的和,但还有一点不懂的是重构函数是对xs*sinc((t-nT)/T)求和,但是上面的表达式化简后好像是sinc(t/T-n/T),正确的应该是sinc(t/T-n),我哪里错了,那位高手回答一下!
下面的matlab代码该怎么理解?是求采样信号重构的函数
首先,这段代码是走不下去的.因为第5句的f 没有定义,Matlab是会有出错提示的.
其次,第3,4句的数组转置好像也没有必要.我试着把f 定义了一下,运算的结果是1 .
恐怕别人是无法理解这段代码的,要问原来编写的人了.
再问: 这是从一段代码里面截出来的,贴上来的时候忘了定义f了,第5句改成xs = cos(10*pi*n); 至于第3,4句的数组转置的必要性,我也不清楚。我是初学者,不能理解代码,应该有高手可以理解吧。。。
再答: 我对Matlab也不是很熟悉,以前我对看不明白的程序是一句一句地做下去,一般会知道每一句是干什么的。建议你对用来的程序也用这个办法试试,应当可以把他的思路找出来。
再问: 转置是必须的,ya前面一堆sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')是1*n的矩阵,后面的xs是n*1的矩阵而*号是矩阵乘法,不是.*,所以最后得到1*1矩阵,根据矩阵乘法的定义,得到的值就是相乘的和,但还有一点不懂的是重构函数是对xs*sinc((t-nT)/T)求和,但是上面的表达式化简后好像是sinc(t/T-n/T),正确的应该是sinc(t/T-n),我哪里理解错了?