以下代码非常有用,除非输出关闭了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)));
我很确定问题不在编码的W
和W_for_X
部分。但是我不确定如何检查。我试图重新缩放这两个值,但因为它们必须相互线性缩放(对矩阵乘法所需的相关性)我不认为问题在这里。
我感觉问题出在N = 4
和n = -30:30
之内。如果N
保持在4会很好,因为将这个数字改为10可能无法解决问题。
由于H
和Xw
相乘,n
必须与W
和W_for_X
一致。
很明显,此代码的输出关闭了十倍,如下所示:
左边图表上的红色输出至少看起来与右边的图形相似(它确实如此)。问题是这个代码的哪一部分使输出变小了十倍,我该如何解决?
旁注:将值xn
放入trapz
函数,然后乘以H
。然后将结果值放入另一个trapz
函数中,然后显示。代码的这一部分或多或少是我编写的另一个代码的保留,我检查了这些部分,我很确定问题不存在。如果您认为可以随意说出来。
编辑/澄清 - 1
输入是左侧的蓝色图,即xnA
。左边的红色虚线图是输入的样本xn
。左侧的红色图是变量y
给出的输出,原始代码中未包含该变量。
澄清左边的红色图应该类似于右边的蓝色图。虽然它有点尖锐但它具有相同的基本形状。
您必须查看图表X-axis
上的数字才能看到差异。虽然看起来一样,它的频率为1:10(从左蓝色到右红色),也就是说它来自-30:30
经文-3:3
另一张红色输出图的图片这里显示的是蓝色输入:
制作此图片的代码在这里:
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轴的方式?
答案 0 :(得分:1)
替换
W
通过
W_for_X
在行plot(nA,xnA,W,y,'r')
行中。