Matlabでその周波数応答をプロットするフィルタがあります。MATLABの要素的な力 - どのように動作するのかわかりません。
フィルタ応答は次のとおりです。私に 'マトリックスの寸法が同意しなければなりません' の種類のエラーを与えて、動作していない
%Freqency_Response_of_wiener_filter
f = linspace(-1e3,1e3,1e5);
H = ((2*pi*f)^2+10^6)/(11*(2*pi*f)^2+10^6+10^4);
plot(f,H);
xlabel('f')
ylabel('H(f)')
私はそれをプロットすることを試みました。私も試してみました :)ちょうど私が望んでいないものを、この実際にプロット何かを
H = ((2*pi*f).^2+10^6)/(11*(2*pi*f).^2+10^6+10^4);
: 私はその後、私は必要なものに正確に合うように思わ「要素ごとのパワー」、約読み、にH
を変更しました
H = ((2*pi)^2*f.^2+10^6)/(11*(2*pi)^2*f.^2+10^6+10^4);
運がない。私はそれが働いてしまった 唯一の方法は次のとおりです。
%Freqency_Response_of_wiener_filter
f = linspace(-1e3,1e3,1e5);
for i=1:length(f)
H(i) = ((2*pi*f(i))^2+10^6)/(11*(2*pi*f(i))^2+10^6+10^4);
end
plot(f,H);
「要素ごとの消費電力は、」私のために働いていないのはなぜ?
それ以上のこと - 通常の操作と「要素ごとの操作」の違いは何ですか?例えば、ここではオーバーなので:この1
a = 0:.01:5;
b = cos(2*pi*a);
plot(a,b)
と::An Introduction to Matlab、そこにこのプロットだ
x = 2:.1:4;
y = 1./x;
plot(x,y)
xlabel('x');
ylabel('y');
と私はそれらの間の任意の違いを見分けることはできません。最初の1つでは、なぜ要素的な操作の必要はなかったのですが、2番目の要素には何がありましたか?
ありがとうございました。
簡単な経験則:要素の賢明な操作をしたいときは、 '/'、 '*'、 '^'の前にドットをチャックします。どちらもスカラーなので、 '2 * pi'は' 2 * pi'以外の何もしていませんが、少なくとも、これらの種類の見つけにくいエラーをデバッグする手間を省きます。 – Adriaan
私は2番目のアドリアンのコメントです。あなたはスカラーを行列で乗算する必要はありませんが、2つの行列( 'x、y')とスカラー(' k')を使ってデバッグの問題に遭遇するかもしれません: 'x * k'と'k * y'はどちらも動作しますが、' x * k * y'はエラーを引き起こします。ドット/ドットをどこに置くかを決める代わりに、単に 'x。* k。* y'の両方の場所に置くだけです。 –