当前在数字信号处理类中,但需要帮助来重现此代码的结果,而无需在Matlab中使用符号数学,而是使用嵌套的for循环来生成X的值,作为Omega的函数。
到目前为止,我对DTFT使用了各种matlab思想:
N=8;
figure
upper = pi;
lower = -pi;
bw = 1000;
omega = linspace(-pi,pi,1000);
for k=0:bw
for n=0:N-1
Y = X(k+1) + x(n+1)*exp(-j*2*pi*n*k/N) ;
end
end
答案 0 :(得分:0)
关键是着眼于符号表达的这一部分
%X is the sum of all 8 functions 0 to 7
X = f2(1) + f2(2) + f2(3) + f2(4) + f2(5) + f2(6) + f2(7) + f2(8)
并尝试从中编写您自己的代码。
clear; clc;
figure
upper = pi
lower = -pi
bw = 1000
%w is in 1x1000
w =linspace(lower, upper, bw)
N=8
X=zeros(1, 1000)
for k=0:N
f2=exp(-j*w*k);
X = X + f2;
end
f4=X
subplot(2,1,1)
plot(linspace(lower, upper, bw), abs(f4), 'b');
因为我知道我们正在寻找n = 1:8的所有8个函数的和,所以我可以在一行代码中实现这一点,就像这里
X = X + f2;
这里的函数包含在向量f2中,
f2=exp(-j*w*k);
这将为您提供与参考代码子图相同的结果。