无法在 MATLAB 中生成系数矩阵
Unable to generate coefficient matrix in MATLAB
我有以下代码,我正在尝试计算系数矩阵,a_k
来求解线性系统以获得 h[n]
,脉冲响应。我正在使用快速傅里叶逆变换。
N = 9; % period is chosen to be 16
n = 0:N-1; %vector for x must start at n = 0
for k = 1:9
y3 = zeros(1,9);
y3(k+1) = N/2;
y3(N - k + 1) = N/2;
end
x3 = ifft(y3);
figure;
subplot(2,2,1);stem(n,real(x3));xlabel('n'); //line 52
ylabel('real(x3)');axis([0 N-1 -1 1]);
subplot(2,2,2);stem(n,imag(x3));xlabel('n');
ylabel('imag(x3)');axis([0 N-1 -1 1]);
subplot(2,2,3);stem(n,real(y3)/N);xlabel('k');
ylabel('real(a_k)');axis([0 N-1 -1 1]);
subplot(2,2,4);stem(n,imag(y3)/N);xlabel('k');
ylabel('imag(a_k)');axis([0 N-1 -1 1]);
但是,当我 运行 这段代码时,出现以下错误:
Error using stem (line 43)
X must be same length as Y.
Error in fft_examples (line 52)
subplot(2,2,1);stem(n,real(x3));xlabel('n');
我不确定我错在哪里。我知道 k
的矩阵是从 1 到 9。因此,我做了一个 for
循环。 y 值变得不匹配。
size(real(x3)) % --> 1 10
size(n) % --> 1 9
所以它们的大小不一样。您正在 y3(k+1) = N/2;
中增加 y3 的大小
此外,为什么要在每次迭代中创建矩阵 y3:y3 = zeros(1,9);
我有以下代码,我正在尝试计算系数矩阵,a_k
来求解线性系统以获得 h[n]
,脉冲响应。我正在使用快速傅里叶逆变换。
N = 9; % period is chosen to be 16
n = 0:N-1; %vector for x must start at n = 0
for k = 1:9
y3 = zeros(1,9);
y3(k+1) = N/2;
y3(N - k + 1) = N/2;
end
x3 = ifft(y3);
figure;
subplot(2,2,1);stem(n,real(x3));xlabel('n'); //line 52
ylabel('real(x3)');axis([0 N-1 -1 1]);
subplot(2,2,2);stem(n,imag(x3));xlabel('n');
ylabel('imag(x3)');axis([0 N-1 -1 1]);
subplot(2,2,3);stem(n,real(y3)/N);xlabel('k');
ylabel('real(a_k)');axis([0 N-1 -1 1]);
subplot(2,2,4);stem(n,imag(y3)/N);xlabel('k');
ylabel('imag(a_k)');axis([0 N-1 -1 1]);
但是,当我 运行 这段代码时,出现以下错误:
Error using stem (line 43)
X must be same length as Y.
Error in fft_examples (line 52)
subplot(2,2,1);stem(n,real(x3));xlabel('n');
我不确定我错在哪里。我知道 k
的矩阵是从 1 到 9。因此,我做了一个 for
循环。 y 值变得不匹配。
size(real(x3)) % --> 1 10
size(n) % --> 1 9
所以它们的大小不一样。您正在 y3(k+1) = N/2;
此外,为什么要在每次迭代中创建矩阵 y3:y3 = zeros(1,9);