Filtre/Narrow band pass filter: Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
Riadok 38: | Riadok 38: | ||
=== Výpočet filtra === | === Výpočet filtra === | ||
− | Pre výpočet vlastností filtra použijeme jednoduchú tabeláciu prenosovej funkcie v jazyku Python. Vykreslenie charakteristiky je pomocou grafického balíku <ref name= "lit2"> [http://www.matplotlib.org], | + | Pre výpočet vlastností filtra použijeme jednoduchú tabeláciu prenosovej funkcie v jazyku Python. Vykreslenie charakteristiky je pomocou grafického balíku matplotlib<ref name= "lit2"> [http://www.matplotlib.org], Grafická knižnica matplotlib </ref>. |
<source lang="python" line> | <source lang="python" line> | ||
Riadok 46: | Riadok 46: | ||
# Vstupne hodnoty | # Vstupne hodnoty | ||
f=4000 | f=4000 | ||
− | R1=1928 | + | R1=1928; R2=101; R3=36644; R4=1928 |
− | R2=101 | + | C1=20.63e-9; C2=20.63e-9 |
− | R3=36644 | ||
− | R4= | ||
− | C1=20.63e-9 | ||
− | C2=20.63e-9 | ||
# Vypocet admitancii | # Vypocet admitancii | ||
− | Y1=1.0/R1 | + | Y1=1.0/R1; Y2=1.0/R2; Y34=1.0/(R3+R4) |
− | Y2=1.0/R2 | ||
− | Y34=1.0/(R3+R4) | ||
# Tabelacia prenosovej charakteristiky | # Tabelacia prenosovej charakteristiky | ||
− | ampl=[] | + | ampl=[]; freq=[] |
− | freq=[] | ||
for f in range(1000, 10000, 10): | for f in range(1000, 10000, 10): | ||
p=(2*pi*f)*1.0j | p=(2*pi*f)*1.0j | ||
K=-p*C2*Y1/(p*p*C1*C2 -( -(Y34)*( p*(C1+C2)+Y1+Y2 ) ) ) | K=-p*C2*Y1/(p*p*C1*C2 -( -(Y34)*( p*(C1+C2)+Y1+Y2 ) ) ) | ||
− | + | ampl.append(abs(K)) # Vypocet absolutnej hodnoty | |
freq.append(f) | freq.append(f) | ||
# Vykreslenie prenosovej charakteristiky | # Vykreslenie prenosovej charakteristiky | ||
− | plot(freq,ampl) | + | plot(freq,ampl); grid(); show() |
− | grid() | ||
− | show() | ||
</source> | </source> | ||
Riadok 77: | Riadok 68: | ||
<center> | <center> | ||
{|class="wikitable" | {|class="wikitable" | ||
− | | align="center" width=500 | [[Súbor:nbpf_02.png ]] | + | | align="center" width=500 | [[Súbor:nbpf_02.png | 400px]] |
|- | |- | ||
| align="center" width=500 | '''Prenosová charakteristika filtra''' | | align="center" width=500 | '''Prenosová charakteristika filtra''' |
Verzia zo dňa a času 07:17, 28. máj 2013
Zapojenie filtra
![]() |
Zapojenie filtra |
Analýza filtra
Analýzu vlastností filtra prevedieme pomocou zovšeobecnenej metódy uzlových napätí. [1]. Admitancie prvkov sú definované ako
- [math] Y_1=1/R_1 [/math]
- [math] Y_2=1/R_2 [/math]
- [math] Y_{34}=1/(R_3+R_4) [/math]
Admitančná matica filtra pri použití ideálneho operačného zosilňovača má tvar
- [math] \begin{bmatrix} Y_1 & -Y_1 & 0 & 0 \\ -Y_1 & p(C_1+C_2)+Y_1+Y_2 & -pC_2 & -pC_1 \\ 0 & -pC_2 & -Y_{34} & 0 \\ 0 & 0 & 1 & 0 \\ \end{bmatrix} [/math]
Komplexná napäťová prenosová funkcia filtra je určená pomerom subdeterminantov
- [math] K(p) = \frac{D_{14}}{D_{11}}=(-1)^{(1+4)} \frac{p C_2 Y_1}{p^2 C_1 C_2 + Y_{34}*(Y_1+Y_2+p C_1+ p C_2 ) } [/math]
Výpočet filtra
Pre výpočet vlastností filtra použijeme jednoduchú tabeláciu prenosovej funkcie v jazyku Python. Vykreslenie charakteristiky je pomocou grafického balíku matplotlib[2].
1 from scipy import *
2 from pylab import *
3
4 # Vstupne hodnoty
5 f=4000
6 R1=1928; R2=101; R3=36644; R4=1928
7 C1=20.63e-9; C2=20.63e-9
8
9 # Vypocet admitancii
10 Y1=1.0/R1; Y2=1.0/R2; Y34=1.0/(R3+R4)
11
12 # Tabelacia prenosovej charakteristiky
13 ampl=[]; freq=[]
14 for f in range(1000, 10000, 10):
15 p=(2*pi*f)*1.0j
16 K=-p*C2*Y1/(p*p*C1*C2 -( -(Y34)*( p*(C1+C2)+Y1+Y2 ) ) )
17 ampl.append(abs(K)) # Vypocet absolutnej hodnoty
18 freq.append(f)
19
20 # Vykreslenie prenosovej charakteristiky
21 plot(freq,ampl); grid(); show()
Výstup programu
![]() |
Prenosová charakteristika filtra |