background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

1

Ćwiczenie 1 

Zadanie 1. (DSP02.PAAS) 
 Na 

przykładzie spróbkowanego sygnału 

( )

x t

e

t

t

( )

cos

=

β

ω

 przeanalizować 

jednoznaczność próbkowania. Uzasadnienia zilustrować wydrukami. 
Zadanie 2. (DSP04.PAS DSP09.PAS) 
 Dysponując strukturą układu dyskretnego wyznaczyć transmitancję, równanie różnicowe, 
reakcję impulsową, charakterystykę amplitudową i fazową dla podanego układu. Wykazać związek 
pomiędzy badanymi charakterystykami. 
 
Zadanie 3. (DSP17.PAW)
 
 Zbadać wpływ okna na charakterystykę filtru nierekursywnego. Uzasadnienie zilustrować 
wydrukami. Narysować strukturę układu na podstawie reakcji impulsowej. 
Zadanie 4. (DSP21.PAS) 
 Wyznaczyć transmitancję filtru z rodziny Butterworth’a i Chebyshev’a dla zadanych 
aproksymacji: 
charakterystyka dolnoprzepustowa 
charakterystyka górnoprzepustowa 
charakterystyka środkowoprzepustowa 
Narysować możliwe struktury filtru. Dołączyć wydruki charakterystyk amplitudowych. 

 
 
Zadanie 1. 

Program generuje sygnał spróbkowany zadany wzorem: 

(

)

( )

x t

N

t

( )

exp

cos

=

β

ω

0

gdzie: N – ilość próbek. 
a) 

β=0,01; ω=19 

Widać, że dla tak dobranych wartości poprawne odtworzenie sygnału nie sprawia żadnych problemów 
(obrys sygnału spróbkowanego wiernie odtworzy nam funkcję wejściową). 

 

 
 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

2

b) 

β=0,01; ω=32 

Dla takich wartości odtworzenie sygnału jest możliwe lecz nie jest już tak dokładne jak w podpunkcie 
a.

  

 

c) 

β=0,01; ω=27 

Dla takiej wartości pulsacji odtworzenie przebiegu jest niemożliwe 

 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

3

 

Przez próbkowanie rozumiemy pobieranie, w określonych odstępach czasu, rzędnych (próbek 

wartości) funkcji w taki sposób, aby ciąg próbek umożliwiał jak najwierniejsze odtworzenie (czyli 
interpolację) całego przebiegu funkcji. 
Innymi słowy, ma miejsce dyskretyzacja argumentu funkcji: 

t

nT n

n

N

=

,

, a ciąg próbek 

{x(nT)}

 stanowi dyskretną reprezentację sygnału, w której zawiera się prawie cała informacja 

przenoszona przez sygnał x(t). W analizie klasycznej zakłada się próbkowanie okresowe z odstępem 

T

; stałą 

f

T

p

=

1

 nazywamy częstością próbkowania. Model sygnału jest ściśle deterministyczny. 

Układ próbkowania idealnego ma dwa wejścia: sygnałowe i impulsowe (bramkowania punktowego). 
Wybieranie wartości funkcji realizuje ciąg impulsów delta, który interpretujemy jako nośną 
grzebieniową 

. Modulacja iloczynowa impulsu o numerze n wartością sygnału x(nT) 

wytwarza próbkę, której przypisujemy reprezentację dystrybucyjną: 

( )

δ

T

t

( )

( ) (

)

x

nT

x nT

t

nT

p

=

δ

 

Wartość próbki x(nT) określa nie amplitudę, lecz intensywność (wagę ze znakiem) odnośnego 
impulsu idealnego na wyjściu. Wobec tego sygnał spróbkowany zapisujemy jako: 

x t

x nT

t

nT

x t

t

p

T

n

( )

( )(

)

( ) ( )

=

=

= −∞

δ

δ

 

czyli jako sygnał z modulacją bipolarną intensywności impulsów idealnych delta. 
W celu odtworzenia oryginału z ciągu próbek należy wydzielić - w drodze idealnej filtracji 
dolnopasmowej - część główną widma X

p

(

ω) położoną w otoczeniu początku układu. Jest to możliwe 

tylko wówczas, gdy poszczególne segmenty widma nie zachodzą na siebie, czyli gdy: 

( )

ω

π

ω

p

g

T

=

2

2

 

Relacja ta jest podstawą twierdzenia o próbkowaniu Kotielnikowa-Shannona o następującej treści: 
Przebieg ściśle dolnopasmowy o częstotliwości granicznej f

g

 jest całkowicie określony przez swoje 

próbki pobierane w odstępach nie większych niż 

1

2

f

g

 sekund. 

 
 

Zadanie 2. 

W zadaniu drugim skorzystaliśmy z programu prezentującego odpowiedź procesora LTI na 
pobudzenie deltą Kroneckera. Po uruchomieniu programu należy podać trzy nierekursywne 
współczynniki (przyjęliśmy następujące wartości tych współczynników: 1.3,-0.85,0 i 1,0,0), 
które są podstawiane do wzoru: 

[ ]

[

]

[

]

[

]

[ ]

[

]

[

]

y n

a y n

a y n

a y n

b x n

b x n

b x n

=

+

+

+

+

+

1

2

3

0

1

2

1

2

3

1

2

Wart

ości, które przyjęliśmy są wykorzystane przez drugi program, który umożliwia obliczenie modułu oraz 
fazy transmitancji dla zadanego równania różnicowego. 
Po uzyskaniu części rzeczywistej oraz urojonej transmitancji program oblicza moduł i fazę oraz 
przedstawia wynik w postaci wykresu. 
 
– równanie różnicowe 

[ ]

[

]

[

]

[ ]

y n

y n

y n

x n

=

+

13

1

0 85

2

.

.

 

 
– transmitancja układu 

( )

H z

z

z

=

+

1

1

1 3

0 85

1

2

.

.

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

4

 
– reakcja impulsowa 

  

– charakterystyki : modułu i fazy 

  

 

 
 Odpowiedź impulsowa jest funkcją czasu wyrażającą odpowiedź obwodu na sygnał wejściowy 
o postaci impulsu jednostkowego, doprowadzonego w chwili t=0, tj. gdy x(t)=

δ(t). Funkcję 

przenoszenia otrzymamy z zależności: H(

ω) = F{h(t)} 

Krótko mówiąc, odpowiedź impulsowa obwodu i jego funkcja przenoszenia są parą transformat 
Fouriera. Ogólnie funkcja przenoszenia H(

ω) jest zespoloną funkcją częstotliwości i jest zwykle 

wyrażana w postaci: 

( )

( )

( )

H

H

e

j

ω

ω

ω

=

Θ

, gdzie 

( )

H

ω

– jest nazywane charakterystyką 

amplitudową obwodu, a 

– charakterystyką fazową. Charakterystyka amplitudowa jest parzystą 

funkcją częstotliwości a charakterystyka fazowa - nieparzystą funkcją częstotliwości. 

( )

Θ ω

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

5

Zadanie 3. 

 

Program przedstawia nierekursywny filtr dolno-, górno- i środkowoprzepustowy umieszczony 

w wybranym oknie (prostokątnym, van Hann’a oraz Hamminga). 
 
a) filtr dolnoprzepustowy 
- okno prostokątne

 

 

- okno von Hann’a 

 

 
- okno Hamminga 

  

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

6

b) filtr górnoprzepustowy 
- okno prostokątne 

 

- okno von Hann’a 

 

- okno Hamminga 

 

c) filtr środkowoprzepustowy 
- okno prostokątne 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

7

- okno von Hann’a 

 

- okno Hamminga 

  

 

 

 

Stosowanie okien ma na celu wyeliminowanie efektu Gibbsa oraz zwiększenia tłumienia w 

paśmie zaporowym. 
Jak można się przekonać na podstawie powyższych charakterystyk nie wszystkie okna w jednakowy 
sposób tłumią sygnał. Najgorszym oknem jest okno prostokątne, które słabo tłumi sygnał. Okno von 
Hann’a zapewnia nam bardzo duże tłumienie lecz pierwsza harmoniczna nie jest dostatecznie 
tłumiona. Okno Hamminga charakteryzuje się zaś tłumieniem wszystkich harmonicznych na 
jednakowym poziomie lecz nie tłumi ich do końca tak jak jest to przy zastosowaniu okna van Hann’a. 

 
 
Zadanie 4.
   

 

Celem tego zadania było wyznaczenie transmitancji filtru dla charakterystyk Butterworth’a i 

Chebyshev’a. Do wykonania tego zadania przewidziany był program napisany w Pascalu. My 
skorzystaliśmy z Matlaba, dlatego że oprócz przyjemniejszego shella niż ten z programu DSP21.PAS
można było wyrysować charakterystyki amplitudowe. Wszystkie transmitancje są postaci: 
 

H z

b

b z

b z

a z

a z

n

n

m

m

( )

...

...

=

+

+ +

+

+ +

0

1

1

1

1

1

 

 
Współczynniki podane są w kolejności rosnącej (a

1

, a

2

, ...,a

m

; b

0

, b

1

, ...,b

n

): 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

8

a) filtr dolnoprzepustowy 
- charakterystyka Butterworth’a 
A =  
1.0000   -7.1914   23.1362  -43.6819   53.3153  -43.6086   23.8956  -8.4560    1.7531   -0.1622 
B = 1.0e-005 * 
0.0025    0.0227    0.0909    0.2122    0.3183    0.3183    0.2122    0.0909    0.0227    0.0025

 

 

- charakterystyka Chebyshev’a 
A = 
1.0000   -3.1658    6.8714  -10.4858   12.3930  -11.4549    8.2837  -4.5605    1.7674   -0.4120 
B= 
0.0005    0.0042    0.0166    0.0388    0.0582    0.0582    0.0388  0.0166    0.0042    0.0005 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

9

b) filtr środkowoprzepustowy 
- charakterystyka Butterworth’a 
a = 
1.0000   -1.8654   -1.9397    4.4684    3.1799   -6.5624   -3.5077 
6.0629    2.9970   -3.8629   -1.8519    1.6716    0.8132   -0.4764 
-0.2381    0.0807    0.0418   -0.0062   -0.0033 
b = 
0.0576    0.0000   -0.5186    0.0000    2.0743    0.0000   -4.8401 
0.0000    7.2602    0.0000   -7.2602    0.0000    4.8401    0.0000 
-2.0743    0.0000    0.5186    0.0000   -0.0576 

 

 

- charakterystyka Chebyshev’a 
  a= 
1.0000   -2.6599    2.0782   -0.8633    3.4953   -6.2018    4.7226 
-3.6444    5.3823   -5.9853    4.6851   -3.7982    3.7364   -3.2953 
2.1253   -1.2255    1.1093   -0.8613    0.2894 
b = 
0.0131    0.0000   -0.1183    0.0000    0.4733    0.0000   -1.1044 
0.0000    1.6566    0.0000   -1.6566    0.0000    1.1044    0.0000 
-0.4733    0.0000    0.1183    0.0000   -0.0131 

 
 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

10

 

c) filtr górnoprzepustowy 
- charakterystyka Butterworth’a

 

A = 
1.0000   -7.1914   23.1362  -43.6819   53.3153  -43.6086   23.8956 
-8.4560    1.7531   -0.1622 
B = 
0.4027   -3.6246   14.4985  -33.8297   50.7446  -50.7446   33.8297 
-14.4985    3.6246   -0.4027

 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

11

- charakterystyka Chebyshev’a 
a = 
1.0000    3.1658    6.8714   10.4858   12.3930   11.4549    8.2837 
4.5605    1.7674    0.4120 
b = 
0.0005   -0.0042    0.0166   -0.0388    0.0582   -0.0582    0.0388 
-0.0166    0.0042   -0.0005 
 

 

 
Poniżej zamieszczamy schematy blokowe podstawowych struktur zaprojektowanych filtrów. Należy 
tylko podstawić odpowiednie wartości pod odpowiednie współczynniki, które zostały podane w 
tabelach. 
 
a) Struktura kontrolera 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

12

b) struktura obserwera 

 

 

 
 Całość ćwiczenia miała na celu zapoznanie nas z podstawowymi wiadomościami dotyczącymi 
cyfrowego przetwarzania sygnałów. W ćwiczeniu tym przypomnieliśmy sobie związki pomiędzy 
poszczególnymi charakterystykami układów, prawa rządzące próbkowaniem sygnałów oraz metody 
projektowania filtrów o zadanych gabarytach różnymi rodzajami aproksymacji. 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

13

Ćwiczenie 2 

Zadanie 1 
 Zbadać zależność szerokości widma amplitudowego i czasu trwania sygnałów. 
Zadanie 2 
 Stworzyć programowy 8-bitowy przetwornik stałopozycyjny A/C. Dokonać próbkowania 
dowolnego przebiegu wykorzystując pełną dynamikę przetwornika. Czy powstały błąd kwantyzacji 
może być uważany za sygnał generowany przez niezależne źródło szumu? 
Zadanie 3 
 

Estymacja funkcji autokorelacji (porównać wynik teoretyczny z wynikami estymacji dla 

ergodycznego sygnału sinusoidalnego). 
Zadanie 4 
 Generowanie 

sygnałów stacjonarnych o zadanym widmie mocy (przechodzenie widma przez 

system liniowy, wybielanie sygnałów). 
Zadanie 5 
 Wygenerować stacjonarny skorelowany przebieg x(t). Na podstawie fragmentu przebiegu 
zbudować estymator postaci ax(t) wykorzystując zasadę ortogonalności. Sprawdzić błąd estymacji 
całego x(t) i porównać z wynikami teoretycznymi. 

 
 
Zadanie 1 

Zawartość m-pliku: 
echo on 
%Badanie zależności szerokości widma 
amplitudowego i czasu trwania sygnału. 

echo off 
n=10; 
y=[ones([1 n]) zeros([1 1000-n])]; 
subplot(2,2,1); 
plot(y); 
pause 
subplot(2,2,2); 
plot(fftshift(abs(fft(y)))) 
pause 
n=100; 
y=[ones([1 n]) zeros([1 1000-n])]; 
subplot(2,2,3) 
plot(y) 
pause 
subplot(2,2,4) 
plot(fftshift(abs(fft(y)))) 

pause 
clf; 
n=300; 
y=[ones([1 n]) zeros([1 1000-n])]; 
subplot(2,2,1) 
plot(y) 
pause 
subplot(2,2,2) 
plot(fftshift(abs(fft(y)))) 
pause 
n=800; 
y=[ones([1 n]) zeros([1 1000-n])]; 
subplot(2,2,3) 
plot(y) 
pause 
subplot(2,2,4) 
plot(fftshift(abs(fft(y)))) 
pause 
clf 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

14

Sygnały o długościach 10, 100, 300, 800 i odpowiadające im widma. 

 

 

 
 

Z twierdzenia o zmianie skali wynika, że szerokość widma amplitudowego jest odwrotnie 

proporcjonalne do czasu trwania sygnału tzn. im krótszy jest sygnał energii tym szersze jest jego 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

15

widmo. Jest to bardzo ciekawe zjawisko, wykorzystywane szczególnie w telekomunikacji, gdzie dąży 
się do tego aby sygnał był jak najkrótszy, zaś jego widmo bardzo wąskie. Krótki czas trwania sygnału 
pozwala na szybkie przesyłanie informacji, zaś wąskie pasmo przesyłania jest bardziej odporne na 
zakłócenia. 
 Jak 

widać z rozważań teoretycznych i przeprowadzonych pomiarów nie da się przesłać sygnału 

krótkiego i zarazem o wąskim widmie. Pozostaje więc droga kompromisu: czy szybko przesłać sygnał, 
czy też przesłać sygnał odporny na zakłócenia. 
 

Zadanie 2

 

Zawartość m-pliku: 
x=0:0.001:2*pi; 
plot(x) 
pause 
y=(sin(x)*8); 
subplot(3,1,1),plot(y) 
pause 
z=round(y); 

subplot(3,1,2),plot(z) 
pause 
w=y-z; 
subplot(3,1,3),plot(w) 
pause 
clf

 
Sygnał wejściowy, skwantowany i błąd kwantyzacji. 

 

 

 

 Aby 

błąd kwantyzacji mógł być uznany za niezależne źródło szumu, różnica między 

sąsiednimi próbkami musi być znaczna w porównaniu z krokiem kwantowania (brak jest 
jakichkolwiek korelacji zarówno między próbkami szumu kwantowania, jak i między szumem i 
sygnałem). 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

16

Zadanie 3 

Zawartość m-pliku: 
echo on 
k=200; 
n=200; 
a=[1:0.1:100]; 
x=sin(a); 
subplot(2,1,1);plot(x); 
pause 
r=zeros(1,200); 

for i=1:k; 
for j=1:n; 
r(i)=r(i)+1/n*x(j)*x(j+i); 
end 
end 
subplot(2,1,2);plot(r); 
pause 

 

Wykres funkcji sinus i funkcji autokorelacji

 

 

 

Funkcja autokorelacji jest zgodna z wynikiem teoretycznym, to znaczy jest to funkcja 
parzysta o tym samym okresie co funkcja sin(t).   

 
Zadanie 4 

m-plik: 
 
[N,Wn]=buttord(0.1,0.3,1,80); 
[B,A]=butter(N,Wn); 
[h,w]=freqz(B,A,128); 
subplot(2,2,1);plot(abs(h).^2); 
pause; 
x=rand([1 128]); 
fx=fftshift(abs(fft(x))); 

subplot(2,2,1);plot(fx); 
pause; 
yy=filter(B,A,x); 
y=[yy zeros([1 128])]; 
subplot(2,2,2);plot(y); 
pause; 
n=128; 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

17

k=128;  
r=zeros(1,256); 
for i=1:k; 
for j=1:n; 
r(i)=r(i)+1/n*y(j)*y(j+i); 
end 

end 
subplot(2,2,3);plot(r); 
pause 
z=fftshift(abs(fft(r))); 
subplot(2,2,4);plot(z); 
pause;

 
 
Wykresy przedstawiają: widmo, sygnał na wyjściu systemu liniowego, autokorelacja sygnału 
wyjściowego, widmo gęstości mocy sygnału wyjściowego. 

 

 
Zadanie 5 

Zawartość m-pliku: 
 
echo on 
k=200; 
n=200; 
a=[0.1:0.1:20]; 
y=1/5*rand(size(a)); 
c=sin(a)+y; 
x=[c zeros([1 200])]; 
subplot(2,2,1);plot(x); 
pause 
subplot(2,2,2);plot(fftshift(abs(fft(c)))); 
pause 
r=zeros(1,200); 
for i=1:k; 

for j=1:n; 
r(i)=r(i)+1/n*x(j)*x(j+i); 
end 
end 
w=0; 
for i=1:n 
w=w+1/n*x(i)*x(i); 
end 
subplot(2,2,3);plot(r); 
pause 
for i=1:n 
aa(i)=r(i)/w; 
end 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

18

p=aa.*c; 
subplot(2,2,4);plot(p); 
pause 
clf 
subplot(2,2,1);plot(fftshift(abs(fft(p)))); 
pause 

for i=1:n 
e(i)=w-aa(i).*r(i); 
end 
subplot(2,2,2);plot(e) 
pause 
clf

 

 
 

Charakterystyki przedstawiają: zaszumiony przebieg sinusoidalny, jego widmo, autokorelację, 
przebieg prognozowany, jego widmo, błąd estymacji

 

 

 

 
 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

19

Ćwiczenie 3 

Zadanie 1.  
 Zaprojektować następujące filtry cyfrowe aproksymujące tę samą charakterystykę idealną: 
•  Butterworth’a 
•  Chebyshev’a 
•  Bessel’a 
•  FIR 
Zadanie 2. 

 

Zbadać położenie biegunów, widmo transmitancji, opóźnienie grupowe zaprojektowanych 

filtrów. 
Zadanie 3. 
 Zbudować fourierowski filtr cyfrowy pracujący wg. schematu blokowego poniżej, realizujący 
charakterystykę idealną założoną w zadaniu 1. Zbadać właściwości filtru. 
Zadanie 4. 
 Zbadać zdolność stworzonych filtrów cyfrowych do filtracji przebiegów harmonicznych z 
szumów. 
 

Zadanie 1, 2. 

 

Projekty filtrów cyfrowych (Butterworth’a, Chebyshev’a, Bessel’a oraz FIR), badanie 

położenia biegunów, widma transmitancji, opóźnienie grupowe wykonaliśmy za pomocą pakietu 
Matlab. 
Poniżej zamieszczamy ich charakterystyki amplitudowe, fazowe, opóźnienia grupowego oraz 
rozmieszczenie zer i biegunów. 
Poniższe charakterystyki przedstawiają kolejno: 
•  charakterystykę amplitudową; 
•  charakterystykę fazową; 
•  rozmieszczenie zer i biegunów; 
•  opóźnienie grupowe. 
 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

20

Dla filtru Butterworth’a: 

 

 

Dla filtru Chebyshev’a: 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

21

 
Dla filtru Bessel’a: 

 

Dla filtru FIR: 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

22

 

Opóźnienie grupowe zaprojektowanych filtrów: 

 

Charakterystyki amplitudowe wszystkich filtrów. 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

23

 

Charakterystyki fazowe: 

 

 
gdzie: 

1– dla filtru Butterworth’a 
2– dla filtru Chebyshev’a 
3– dla filtru Bessel’a 
4– dla filtru FIR

 

Poniżej zostały dołączone wydruki m-plików: 
 
1) 
echo on 
% Filtr Butterworth’a. 
% Hbutt - punkty do charakterystyki 
amplitudowej, 
% Gdbutt - punkty do opóźnienia grupowego. 
% Charakterystyka amplitudowa, zera i 
bieguny, opóźnienie grupowe. 
echo off 
[N,Wn]=buttord(0.4,0.7,4,40);  
[B,A]=butter(N,Wn);  

 

[Hbutt,W]=freqz(B,A,200);  
[Gdbutt,W] = grpdelay(B,A,200);   
f=W/pi; 
h1=abs(Hbutt); 
p1=angle(Hbutt); 
subplot(2,2,1); 

plot(f,h1); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Amplituda') 
subplot(2,2,2); 
p1=angle(Hbutt); 
plot(f,p1); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Faza') 
subplot(2,2,3); 
zplane(B,A); 
subplot(2,2,4); 
plot(f,Gdbutt); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Opoznienie grupowe') 
echo on 
pause 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

24

% Filtr Chebyshev’a. 
% Hczeb - punkty do charakterystyki 
amplitudowej, 
% Gdczeb - punkty do opóźnienia grupowego. 
% Charakterystyka amplitudowa, zera i 
bieguny, opóźnienie grupowe. 
echo off  
[N,Wn]=cheb1ord(0.4,0.7,4,40); 
[B,A]=cheby1(N,2,Wn); 
[Hczeb,W]=freqz(B,A,200); 
[Gdczeb,W] = grpdelay(B,A,200); 
f=W/pi; 
h2=abs(Hczeb); 
p2=angle(Hczeb); 
subplot(2,2,1); 
plot(f,h2); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Amplituda') 
subplot(2,2,2); 
p2=angle(Hczeb); 
plot(f,p2); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Faza') 
subplot(2,2,3); 
zplane(B,A); 
subplot(2,2,4); 
plot(f,Gdczeb); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Opoznienie grupowe') 
echo on 
pause 

% Filtr Bessel’a. 
% Hbes - punkty do charakterystyki 
amplitudowej, 
% Gdbes - punkty do opóźnienia grupowego. 
% Charakterystyka amplitudowa, zera i 
bieguny, opóźnienie grupowe. 
echo off 
[B,A]=besself(4,0.4); 
[NUMd,DENd]=bilinear(B,A,0.2);   % 
przekształcenie biliniowe dla Fs=0.1 
[Hbes,W]=freqz(NUMd,DENd,200); 
[Gdbes,W] = grpdelay(NUMd,DENd,200); 
f=W/pi; 
h3=abs(Hbes); 
p3=angle(Hbes); 
subplot(2,2,1); 
plot(f,h3); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Amplituda') 
subplot(2,2,2); 

p3=angle(Hbes); 
plot(f,p3); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Faza') 
subplot(2,2,3); 
zplane(B,A); 
subplot(2,2,4); 
plot(f,Gdbes); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Opoznienie grupowe') 
echo on 
pause 

% Filtr FIR. 
% Hfir - punkty do charakterystyki 
amplitudowej, 
% Gdfir - punkty do opóźnienia grupowego. 
% Charakterystyka amplitudowa, zera i 
bieguny, opóźnienie grupowe. 
echo off 
N=10; 

   

A=1;   

 

 

 

B = fir1(N,0.5); 
[Hfir,w]=freqz(B,1,200); 
[Gdfir,W] = grpdelay(B,A,200); 
f=w/pi; 
h4=abs(Hfir); 
p4=angle(Hfir); 
subplot(2,2,1); 
plot(f,h4); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Amplituda') 
subplot(2,2,2); 
p4=angle(Hfir); 
plot(f,p4); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Faza') 
subplot(2,2,3); 
zplane(B,A); 
subplot(2,2,4); 
plot(f,Gdfir); 
xlabel('Czestotliwosc znormalizowana') 
ylabel('Opoznienie grupowe') 
pause 
clf 
echo on 
% To już wszystko! 
echo off 
 
2) 
echo on 
% Wykresy zbiorowe filtrów. 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

25

echo off 
plot(f,h1,f,h2,f,h3,f,h4); 
xlabel('Czestotliwosc znormalizowana (Nyquist 
= 1)') 
ylabel('Amplituda') 
echo  
% Charakterystyki amplitudowe 
pause 
echo off 
plot(f,p1,f,p2,f,p3,f,p4); 
xlabel('Czestotliwosc znormalizowana (Nyquist 
= 1)') 
ylabel('Faza') 

echo on 
%Charakterystyki fazowe 
pause 
echo off 
plot(f,Gdbutt,f,Gdczeb,f,Gdbes,f,Gdfir); 
xlabel('Czestotliwosc znormalizowana (Nyquist 
== 1)') 
ylabel('Opoznienie grupowe (w probkach)') 
echo on 
% Opóźnienie grupowe 
pause 
echo off 
clf;

 
Zadanie 3. 

Wydruk m-pliku: 
t=[1:512]; 

     

%x=rand([1:512]); 

    

x=0.1*sin(2*pi*t/8)+sin(2*pi*t/64);  

 

plot(t,x)      
pause 
ny=512;    
st=512;    
d=[ones([1:512])]; %filtry 

HP 

d=[zeros([1:128]) ones([1:256])];  %filtry LP 
%d=[ones([1:128]) zeros([1:256])]; 
[md,nd]=size(d); 
%if nd<ny, nx=ny-nd, d=[d,ones([1:nx])]; end   
if nd<ny, nx=ny-nd, d=[d,zeros([1:nx])]; end 
%dls 

st=256 

   

pause 
kr=512/st-1; 

     

for i=0:kr, 

y1((i*st+1):(i*st+st))=fft(x((i*st+1):(i*st+st)));, 
z((i*st+1):(i*st+st))=y1((i*st+1):(i*st+st)).*d((i
*st+1):(i*st+st));,  
q((i*st+1):(i*st+st))=ifft(z((i*st+1):(i*st+st)));, 
pp((i*st+1):(i*st+st))=fft(q((i*st+1):(i*st+st)));, 
p=abs(pp); 

     

end 
plot(t,q)     
pause 
wsp=max(p); 
wspy1=max(abs(y1));    
f=([1:ny]/ny-0.5); 
plot(f,wspy1*d,f,abs(y1));  

 

pause 
plot(f,wsp*d,f,p); 

   

pause

 

Widmo szumu i funkcja filtrująca, wygląd po filtracji (filtr środkowo przepustowy)

 

 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

26

Widmo szumu i funkcja filtrująca, wygląd po filtracji (filtr środkowo zaporowy)

 

 

 
Zadanie 4.
 
 

Wykresy przedstawiają: funkcję sinus, szum, widmo szumu, sinus plus szum, sygnały po filtracji 
filtrem Butterworth’a, Chebyshev’a, Bessel’a, FIR.

 

 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

27

 

 

Wydruk z m-pliku: 
[N,Wn]=buttord(0.05,0.1,2,20);  
[B,A]=butter(N,Wn); %N=13 
D=B;C=A; 
[Hbutt,W]=freqz(B,A,512); 
[N,Wn]=cheb1ord(0.05,0.1,2,20); 
[B,A]=cheby1(N,0.5,Wn); 
F=B;E=A; 
[Hczeb,W]=freqz(B,A,512); 
[B,A]=besself(10,0.1);    
[NUMd,DENd]=bilinear(B,A,0.5); 
[Hbes,W]=freqz(NUMd,DENd,512); 
N=50; 

    

A=1; 
B = fir1(N,0.08); 
[Hfir,W]=freqz(B,1,512);  
Hbutt=abs(Hbutt); 
Hczeb=abs(Hczeb); 
Hbes=abs(Hbes); 
Hfir=abs(Hfir); 
f=W/pi; 
t = 0:0.01:5.12; 
x = sin(2*pi*2*t); 

subplot(2,2,1);plot(x); 
y = rand(size(t)); 

  

subplot(2,2,2);plot(y); 
fy=fft(y); 
subplot(2,2,3);plot(f,abs(fy(1:512))); 
pause 
z=x+y; 
subplot(2,2,4);plot(z(1:512))             
pause 
clf; 
Y=filter(D,C,z); %Butterworth 
subplot(2,2,1);plot(Y)                  
pause 
Y=filter(F,E,z); %Chebyschev 
subplot(2,2,2);plot(Y) 
Y=filter(B,A,z); %Bessel 
subplot(2,2,3);plot(Y) 
Y=filter(NUMd,DENd,z); %FIR 
subplot(2,2,4);plot(Y) 
pause 
clf

 

Wszystkie stworzone przez nas filtry nadają się do filtracji przebiegów harmonicznych z szumu. 
Jednak, który filtr zastosujemy zależy od konkretnego przypadku, potrzeby (wszystkie filtry mają 
zalety jak i wady).

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

28

Ćwiczenie TMS 
Zadanie 1 
 

Badanie przetwornika AC i CA. (CWI1.ASM) 

Określić parametry: 
 a) częstotliwość próbkowania wykorzystując 
 -czas 

opóźnienia próbek pomiędzy wejściem i wyjściem 

 -maksymalną częstotliwość wejściową 
 b) rodzaj zjawisk nieliniowych (arytmetyka, przepełnienie) 
Wyniki zilustrować rysunkami. 
 
Zadanie 2 
 

Filtr Cyfrowy FIR. (CWI8.ASM) 

Zaprojektować dowolny filtr cyfrowy FIR 21 rzędu. Utworzyć program realizujący zaprojektowany 
filtr (wykorzystując CWI8.ASM). Zbadać funkcje transmitancji filtru, porównać przebiegi z wynikami 
teoretycznymi. 
 
Zadanie 3
 
 Badanie 

filtru 

środkowo-przepustowego. (CWI5.HEX) 

Celem ćwiczenia było uruchomienie oraz przebadanie eliptycznego filtru środkowo-przepustowego 
5-go rzędu, którego pasmo zawiera się w granicach od 1.7 kHz do 2.3 kHZ.  

 
Zadanie 1

 

 

Ćwiczenie to polegało na zapoznaniu się z możliwościami przetworników AC i CA oraz 

określeniu właściwości takiego przetwornika.  
 Częstotliwość próbkowania określiliśmy na podstawie czasu opóźnienia próbek pomiędzy 
wejściem i wyjściem oraz na podstawie maksymalnej częstotliwości wejściowej: 
– czas opóźnienia próbek pomiędzy wejściem i wyjściem wynosił T=39

μs. Częstotliwość 

próbkowania wynosi więc około f

p

=25kHz. 

– maksymalna częstotliwość wejściowa przy której sygnał był poprawny wyniosła 12kHz. Wynika 

stąd, że f

p

=24kHz. 

Po przebadaniu przetwornika stwierdziliśmy, że jest to kwantyzer z obcięciem (jest jeszcze 
kwantyzacja z zaokrągleniem). Poniżej przedstawiamy charakterystykę przejściową oraz wykres 
obrazujący błąd kwantyzacji. 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

29

 

Z naszych spostrzeżeń wynika również, że mamy doczynienia z układem z nasyceniem, tzn. może 
nastąpić przepełnienie i sygnał wyjściowy będzie utrzymywał się na stałym poziomie. Poniżej 
zamieszczamy charakterystykę poziomów wyjściowych od wejściowych oraz charakterystykę błędów 
kwantyzera spowodowanych nasycenim. 

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

30

Zadanie 2

 

Załadowaliśmy filtr cyfrowy środkowo-przepustowy, podaliśmy z generatora na wejście sygnał 
sinusoidalny o amplitudzie 1,5V. Przy pomocy oscyloskopu zbadaliśmy charakterystykę amplitudową 
i fazową filtru. Wyniki pomiarów zamieszczamy w tabeli poniżej. 
 
f[kHz]  1,9 1,95  2  2,05 2,1 2,15

2,2 2,25

2,3 2,35 2,4 2,45 2,5 2,55

Up[V]  0,495 1,57 1,99 2,87 2,94

2,9  2,98 2,95 2,835 2,9  2,75 1,46 1,01 0,56

φ [deg]  -32,1  -75  -140 -260 -340 -409 -428 -472 -503 -551 -635 -800 -860 -975
 

Charakterystyka amplitudowa

0

0,5

1

1,5

2

2,5

3

1,9

1,95

2

2,05

2,1

2,15

2,2

2,25

2,3

2,35

2,4

2,45

2,5

2,55

f [kHz]

Up [V]

 

 

Charakterystyka fazowa

-1000

-900

-800

-700

-600

-500

-400

-300

-200

-100

0

1,

9

1,

95

2

2,

05

2,

1

2,

15

2,

2

2,

25

2,

3

2,

35

2,

4

2,

45

2,

5

2,

55

f [kHz]

faza [

deg]

 

 
Z wykresu charakterystyki amplitudowej wynika, że jest to filtr o dużej selektywności (duże 
nachylenie zboczy w paśmie przepustowym i małe zafalowania). Ponadto filtr ten wzmacnia sygnał 
ponad dwukrotnie w paśmie przenoszenia. Jego charakterystyka fazowa jest jednostajnie opadająca o 
bardzo dużym opóźnieniu fazowym.

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

31

Zadanie 3

 

Ćwiczenie było realizowane na procesorze sygnałowym TMS 320, który jest ukierunkowany na 
cyfrowe przetwarzanie sygnałów i na zastosowanie telekomunikacyjne. Ponadto jest on stosowany do 
przetwarzania sygnału mowy, w zagadnieniach analizy widmowej, korelacji, filtracji cyfrowej, 
kodowaniu liniowo-predykcyjnym, a także w algorytmach cyfrowego przetwarzania sygnałów w 
robotyce. TMS 320 jest nie tylko specjalizowanym układem do cyfrowego przetwarzania sygnałów, 
ale także kostką mikrokomputerową ogólnego stosowania z bardzo szybką 32-bitową jednostką 
arytmetyczno-logiczną i równoległym układem mnożącym 16x16 bitów. 
 
Analizowany filtr został zrealizowany przez procesor DSP w zestawie doświadczalnym TMS320 C15 
po załadowaniu do niego programu cwi5.hex. Do obsługi zestawu DSP wykorzystano program obsługi 
DSP Loader. 
 
W celu zbadania charakterystyk częstotliwościowych  załadowano do układu DSP program realizujący 
cyfrowy filtr dolnoprzepustowy oraz podano z generatora na wejście sygnał sinusoidalny o stałej 
amplitudzie równej U = 0.5 [V].  
Do pomiarów sygnałów wejściowych (z generatora) i wyjściowych (z procesora DSP) wykorzystano 
funkcje: CURSOR AMPLITUDE, CURSOR I/TIME i CURSOR TIME znajdujące się w 
oscyloskopie.  
 
Wyniki pomiarów zestawiono w tabeli: 
 

Częstotliwość 

wejściowa [Hz] 

Amplituda sygnału 

wyjściowego [V] 

Okres [s] 

Opóźnienie [s] 

100 0,925 8,83m 310µ 
500 0,845  2m  320µ 

1k 0,684 950µ 331µ 
2k 0,324 503µ 325µ 
3k 0,157 

319,4µ 

324µ 

4k 0,12 250µ 76µ 
5k 0,057 200µ 112µ 
8k 0,01 125µ 

125µ 

 
 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

32

Na podstawie wyników pomiarów zestawionych w tabeli wykonano  charakterystyki 
częstotliwościowe: 
•  amplitudową 

-1,0k

0,0

1,0k

2,0k

3,0k

4,0k

5,0k

6,0k

7,0k

8,0k

9,0k

-0,2

0,0

0,2

0,4

0,6

0,8

1,0

1,2

1,4

1,6

1,8

2,0

2,2

W

zm

oc

ni

eni

e [

V/

V]

Częstotliwość [Hz]

 

•  fazową 

0,0

1,0k

2,0k

3,0k

4,0k

5,0k

6,0k

7,0k

8,0k

9,0k

10,0k 11,0k

0,0

50,0

100,0

150,0

200,0

250,0

300,0

350,0

400,0

450,0

500,0

P

rz

es

uni

ęci

e f

az

ow

e [

 o 

]

Częstotliwość [Hz]

 

background image

CYFROWE PRZETWARZANIE SYGNAŁÓW 

33

 
Na podstawie pomiarów i wykreślonych charakterystyk możemy zauważyć, że badany układ jest 
filtrem 5-go rzędu o nieco przesuniętym paśmie  w stronę wyższych częstotliwości do 5 kHz. W 
założeniach pasmo filtru powinno się zawierać  w granicach 0 do 1 kHz, natomiast z pomiarów 
wynika, iż pasmo przepustowe mieści się w przedziale 0 do 5 kHz. Wynika to z niedokładności 
wykonanych pomiarów. Charakterystyka amplitudowa w paśmie zaporowym jest mało stroma. Filtr 
wzmacnia sygnał wejściowy w przybliżeniu dwukrotnie. Charakterystyka fazowa została 
aproksymowana liniowo i jest rosnący. W pasmie przepustowym opóźnienie fazowe wynosi od 75

° do 

250

o

 i rośnie ze wzrostem częstotliwości. Dla częstotliwości 1kHz wynosi ok. 117

o

.