我为什么要离开10倍?

时间:2013-12-02 10:14:35

标签: matlab plot sampling convolution

以下代码非常有用,除非输出关闭了10倍:

%// Part 3: Discrete-Time Signal Sampling and Recovery
%// Original and Sampling

W = -3:.1:3;
W_for_X = -30:30;
H = zeros(size(W));
H(23:37) = 4;
nA = -30:.1:30; 
xnA = cos(.1*pi*nA)-(4*sin(.2*pi*nA)); 
n = -30:30;
xn = zeros(size(n));
remB = rem(n,4)==0;
xn(remB) = cos(.1*pi*n(remB))-(4*sin(.2*pi*n(remB)));

我很确定问题不在编码的WW_for_X部分。但是我不确定如何检查。我试图重新缩放这两个值,但因为它们必须相互线性缩放(对矩阵乘法所需的相关性)我不认为问题在这里。

我感觉问题出在N = 4和n = -30:30之内。如果N保持在4会很好,因为将这个数字改为10可能无法解决问题。

由于HXw相乘,n必须与WW_for_X一致。

很明显,此代码的输出关闭了十倍,如下所示:

this image]![enter image description here

左边图表上的红色输出至少看起来与右边的图形相似(它确实如此)。问题是这个代码的哪一部分使输出变小了十倍,我该如何解决?

旁注:将值xn放入trapz函数,然后乘以H。然后将结果值放入另一个trapz函数中,然后显示。代码的这一部分或多或少是我编写的另一个代码的保留,我检查了这些部分,我很确定问题不存在。如果您认为可以随意说出来。

编辑/澄清 - 1

输入是左侧的蓝色图,即xnA。左边的红色虚线图是输入的样本xn。左侧的红色图是变量y给出的输出,原始代码中未包含该变量。

澄清左边的红色图应该类似于右边的蓝色图。虽然它有点尖锐但它具有相同的基本形状。

您必须查看图表X-axis上的数字才能看到差异。虽然看起来一样,它的频率为1:10(从左蓝色到右红色),也就是说它来自-30:30经文-3:3另一张红色输出图的图片这里显示的是蓝色输入:enter image description here

制作此图片的代码在这里:

figure(1);
subplot(1,2,1);plot(nA,xnA,n,xn,'r--o');
subplot(1,2,2);plot(nA,xnA,W,y,'r');

傅立叶变换在xn将其移至频域后执行,然后.*H执行,然后将其乘积逆傅立叶变换回时域并且绘制。有没有关于我绘制这个会缩小x轴的方式?

1 个答案:

答案 0 :(得分:1)

替换

W

通过

W_for_X

在行plot(nA,xnA,W,y,'r')行中。