2017-10-08 8 views
1

私はこの質問をしてきましたが、どうしたらいいですか?Matlabを解決する "Matrix dimensions is agree"エラー

質問は

enter image description here

あなたは、要素ごとに乗算(0.2*cos(0.44*pi*nn))(exp(-1i*0.3*3.14*L2))でをしようとしている

bb = [1,1.18,1]; %-- Filter Coefficients 
nn = 1:150; 
L2 = 0:9; % M - 1(10-1 = 9) 

%1st at 0.3 
w1 = (0.2*cos(0.44*pi*nn)) .* (exp(-1i * 0.3 * 3.14 * L2)) ; 

%2nd at 0.44 
w2 = 0.2*cos(0.44*pi*nn) .* exp(-1i*0.44*3.14*L2); 

%3rd at 0.7 
w3 = 0.2*cos(0.44*pi*nn) .* exp(-1i*0.7*3.14*L2); 

wt = w1 + w2 + w3; 

HTOTAL = freqz(bb, 1, wt); 

H1 = freqz(bb, 1, w1); % 

H2 = freqz(bb, 1, w2); % 

H3 = freqz(bb, 1, w3); % 

%set the value of x to see the filter 
x = 1; 

subplot(2,1,1); plot(wx, abs(HH)) 
subplot(2,1,2); plot(wx, angle(HH)) 
xlabel('Normalized Radian Frequency') 

答えて

0

"行列の次元が同意しなければなりません" です。ここでの問題は、最初の配列にnn = 150要素が含まれ、2番目の配列にL2 = 10要素が含まれていることです。

元の質問を見て、あなたが10のフィルタ長(L2)を使用する必要がしているように見えますが、あなたのnn配列が1から代わりに必要な0から9まで

あなたの150の範囲であります「マトリックスの寸法に合致する」エラーを修正するには、(0.2*cos(0.44*pi*nn))の代わりに(0.2*cos(0.44*pi*L2))を使用する必要があります。

+1

ヒントは、チップのおかげで! それは理にかなっている、私は以前の質問から同じ範囲を保つことを意図していたと思っていた。 – lolcatsnin

+0

オプションは、文字ベクトルまたは実数値、スカラー値、またはベクトル値でなければならないという点でfreqzでエラーになっています。 私は仮定していますので、指数関数的には になります。申し訳ありませんが、それについてのヒントもありますか:/ – lolcatsnin

+0

あなたは間違った変数を 'freqz()'に渡しているようです。 3番目の引数は単一の値でなければなりませんが、ベクトル( 'wt/w1/w2/w3')を渡そうとしています。この質問に 'bb'を使用する必要がありますか?もしそうでなければ、 'freqz(wt、1);'( 'HTOTAL'もなく)を使った方がいいでしょう。 – frslm

関連する問題