Zaloguj się
Blog na Matlab.pl
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Filtr górnoprzepustowy [Matlab]
Forum MATLAB Strona Główna-> Przetwarzanie sygnałów
Post Wysłany: 2 Kwietnia 2016, Sob 12:45 pm Temat postu: Filtr górnoprzepustowy [Matlab] Odpowiedz z cytatem
 
AUTOR:
wblake66



Dołączył: 02 Kwi 2016
Posty: 1


Ogląda profil użytkownika Wyślij prywatną wiadomość
Zaprojektuj cyfrowy filtr górnoprzepustowy metodą transformacji biliniowej, na podstawie znanej transmitancji H(s) filtru analogowego.

Sprawdź poprawność programu na podstawie przykładowych danych

(Częstotliwość próbkowania fp=1kHz).

H(s) = (0.707s2 + 5.659s+ 1479) / (s2 - 2507s+ 1.07·107)

Na razie zrobiłem coś takiego:

fs=input('Częstotliwość próbkowania [Hz] = '); %czestotliwosc probkowania // 2000 - ponad 2 x wiecej niz maxymalna f. z tw. shannona
fpass=input('Podaj fpass = (np.400)'); %// 200 przykladowe wartosci
fstop=input('Podaj fstop = (np.350)'); %// 300

Rp=input('Max nieliniowosc w pasmie przepustowym [dB] = (np.3)'); %nieliniowosc w pasie przepustowym 3dB // 3
Rs=input('Minimalne tlumienie w pasmie zaporowym [dB] = (np.60)'); %minimalne tlumienie w zaporowym // 60

fpass = 2*fs*tan(pi*fpass/fs)/(2*pi); %transformacja f do metody biliniowej
fstop = 2*fs*tan(pi*fstop/fs)/(2*pi); %transformacja f do metody biliniowej

ws=(2*pi*fstop); %wektor pulsacji
wp=(2*pi*fpass);


w = fpass/fstop; % transformacja częstotliwo?ci: s=w0/s', w0=2*pi*fpass


bz = [ 0.707 5.659 1479 ]
az = [ 1 -2507 114.49 ]


[n,Wn] = buttord(wp,ws,Rp,Rs,'s');n %obliczenie rzedu

[z,p,k] = butter(n,wp,'high','s'); %zaprojektowanie filtru analogowego (w dziedzinie s)

[zz,pz,kz] = bilinear(z,p,k,fs); %dyskretyzacja metoda biliniowa (nie jest bezpośrednio na bz i az zeby uniknac bledow zaokraglen)


h=tf(bz,az,1/fs);h %transmitancja w postaci jawnej


fvtool(bz,az); %wyswietlanie w fvtool


Ale to nie jest chyba dobrze zrobione

Proszę o pokazanie ewentualnych błędów.
Z góry dziękuje.


 

Forum MATLAB Strona Główna-> Przetwarzanie sygnałów
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 36626055
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Przetwarzanie strumienia ASCII odebranego protokołem UDP  (24 Czerwca 2017, Sob 5:55 pm)
zamiennik funkcji smooth  (23 Czerwca 2017, Pią 1:30 pm)
Warto robić szkolenia?  (22 Czerwca 2017, Czw 8:40 am)
Rysowanie sygnałów Sygnały okresowe  (21 Czerwca 2017, Sro 6:52 pm)
Błąd przy inicjowaniu sieci LVQ  (21 Czerwca 2017, Sro 4:39 pm)
Czy wypada być z byłym chłopakiem przyjaciółki?  (21 Czerwca 2017, Sro 2:19 pm)
Artykuły o Matlab  (21 Czerwca 2017, Sro 9:46 am)
Czy wasz człowiek też jest dziwny?  (20 Czerwca 2017, Wto 1:59 pm)
Poprawianie matury to wstyd?  (20 Czerwca 2017, Wto 8:53 am)
Gdzie po szybką pożyczkę?  (17 Czerwca 2017, Sob 12:43 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum