フィルターのクリア

Script not producing the correct plot

1 回表示 (過去 30 日間)
José Carlos Ferreira
José Carlos Ferreira 2014 年 9 月 12 日
編集済み: José Carlos Ferreira 2014 年 9 月 13 日
Hi...
I need to simulate a signal in MatLab but I can't make my simple script to work properly.
The function is a Transfer Function of a given circuit.
The expression is the following
The script I'm trying to use to simulate this expression is:
if true
R1=100;
R2=1e3;
C=1e-6;
% fc=1/(2*pi*R*C);
f=1:1:1e4;
ter1=R2^2;
ter2=(2*pi.*f*C*R1*R2).^2;
ter3=(R1+R2).^2;
ter4=(2*2*pi.*f*C*R1*R2).^2;
mhf=(ter1+ter4)/(ter2+ter3);
mhf=power(mhf, 0.5);
% mod_hf=abs(hf);
% fase_hf=angle(hf);
figure(1);
subplot(2,1,1); plot(f,mhf); grid on;
title('Funcao de Transferencia do Filtro Passa-baixo RC')
xlabel('Frequencia (Hz)')
ylabel('|H(f)|')
% subplot(2,1,2); plot(f,fase_hf);grid on;
% xlabel('Frequency (Hz)')
% ylabel('arg[H(f)] (rad)')
end
I have calculated the result for a few frequencies in calculator and I fot the following values:
f=0Hz--> |H(f)| = 0.9091
f=50Hz--> |H(f)| = 0.9081
f=200Hz--> |H(f)| = 0.8932
f=500Hz--> |H(f)| = 0.8274
f=1000Hz--> |H(f)| = 0.7072
f=5000Hz--> |H(f)| = 0.5169
f=5MHz--> |H(f)| = 0.5
which matches an High-Pass Filter but I can't get the correct plot!!! Any help?

採用された回答

Star Strider
Star Strider 2014 年 9 月 12 日
Change:
mhf=(ter1+ter4)/(ter2+ter3);
to:
mhf=(ter1+ter4)./(ter2+ter3);
and it works. You need to do element-by-element division as well.
  5 件のコメント
Star Strider
Star Strider 2014 年 9 月 13 日
No matter how I analyse that circuit, I get a lowpass characteristic out of it. I can’t reproduce your result.
Stopping here.
José Carlos Ferreira
José Carlos Ferreira 2014 年 9 月 13 日
編集済み: José Carlos Ferreira 2014 年 9 月 13 日
If you try to calculate a few values for H(f) and for H(f) phase in a calculator, are your calcs consistent with MatLAb?

サインインしてコメントする。

その他の回答 (1 件)

José Carlos Ferreira
José Carlos Ferreira 2014 年 9 月 12 日
I've changed a little bit the script to use the original Transfer Function and let MatLab compute the Abosulte and Angle values for it but I can't understand why the results from MatLab are not consistent with my calculator results...
R=2.2e3;
C=0.33e-6;
fc=1/(2*pi*R*C);
f=1:1:1e5;
hf=(R2+j*2*pi.*f*C*R1*R2)./((R1+R2)+j*2*pi.*f*C*R1*R2);
mod_hf=abs(hf);
fase_hf=angle(hf);
figure(1);
subplot(2,1,1); plot(f,mod_hf); grid on;
title('Funcao de Transferencia do Filtro Passa-baixo RC')
xlabel('Frequencia (Hz)')
ylabel('|H(f)|')
subplot(2,1,2); plot(f,fase_hf);grid on;
xlabel('Frequency (Hz)')
ylabel('arg[H(f)] (rad)')
  2 件のコメント
José-Luis
José-Luis 2014 年 9 月 12 日
Please don't place a comment as a new answer.
José Carlos Ferreira
José Carlos Ferreira 2014 年 9 月 12 日
This was not a comment. Was actually a new reply... I'm not very used to this kind of forum! Sorry!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeFrequency Transformations についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by