0
我正在嘗試創建一個信號,然後通過對我首先創建的CT信號進行採樣來構建一個離散時間信號。直到最後一個for循環,事情運行良好,但我需要採用T分隔N個樣本。沒有if語句,我得到一個索引越界錯誤,我不得不在信號持續時間內限制採樣。出於某種原因,我的代碼一次只進入if語句,而對於調試,我打印出if和if之外的值。儘管邏輯操作在多次迭代中應該是正確的(打印語句將顯示值),但它不會在if語句內打印語句。這裏有什麼問題?在MATLAB中for循環中嵌套if語句是否有任何特殊規則?
function x = myA2D(b,w,p,T,N)
%MYA2D description: Takes in parameters to construct the CT-sampled DT signal
%b,w,p are Mx1 vectors and it returns Nx1 vector.
timeSpace = 0:0.001:3*pi;
xConstT = zeros(size(timeSpace));
%Construct Xc(t) signal
for k = 1:size(b,1)
temp = b(k) .* cos(w(k).*timeSpace + p(k));
xConstT = xConstT + temp;
end
plot(xConstT);
%Sampling CT-Signal to build DT-signal
disp(strcat('xConstT size',int2str(size(xConstT))));**strong text**
x = zeros(N,1);
sizeConstT = size(xConstT);
for i = 0:N-1
index = i .* T .* 1000 + 1;
disp(strcat('indexoo=',int2str(index)));
disp(strcat('xConstSizeeee',int2str(sizeConstT)));
if index <= sizeConstT
disp(strcat('idx=',int2str(index)));
disp(strcat('xSize',int2str(sizeConstT)));
%x(i+1,1) = xConstT(index);
end
end
end