Signálový processing a procesory
Anotace
- Zpracování signálů.
- Systémy reálného času.
- Univerzální a signálový procesor.
- Procesory dSPACE a LabView.
- Tvorba programu pro zpracování signálu, RTW.
- Signál, druhy signálů, popis diskrétního signálu a diskrétního systému, obecný postup zpracování signálu.
- Shannon-Kotělnikovův vzorkovací teorém.
- Fitrace, druhy filtrů a jejich popis.
- Tradiční spojité filtry.
- Návrh nerekurzivních filtrů.
- Návrh rekurzivních filtrů.
- Nestandardní filtrace, zpracování signálů, antialiasing.
- Umělé vidění, pořízení obrazů, zpracování obrazů, reprezentace obrazů.
- Předzpracování obrazů.
- Základy rozpoznávání obrazů.
- Čidla založená na umělém vidění.
Zpracování signálů
- Zpracování signálů.
- Shannon-Kotělnikovův vzorkovací teorém
- Signál, druhy signálů, popis diskrétního signálu a diskrétního systému, obecný postup zpracování signálu.
Real-time
- Systémy reálného času.
- Univerzální a signálový procesor.
- Procesory dSPACE a LabView.
- Tvorba programu pro zpracování signálu, RTW.
Filtrace
- Fitrace, druhy filtrů a jejich popis.
- Tradiční spojité filtry.
- Návrh nerekurzivních filtrů.
- Návrh rekurzivních filtrů.
- Nestandardní filtrace, zpracování signálů, antialiasing.
Zpracování obrazu
- Umělé vidění, pořízení obrazů, zpracování obrazů, reprezentace obrazů.
- Předzpracování obrazů.
- Základy rozpoznávání obrazů.
- Čidla založená na umělém vidění.
Filtry
- elektrické obvody měnící spektrum vstupních signálů,
- napěťový přenos:
, - amplitudová charakteristika:

- mezní kmitočet:
... pokles o 3 dB
Spojité filtry
Elektronika.
Pasivní analogový
doc. Papežová -- Elektronika pro aplikovanou mechaniku
Dolní propust:
přenos
, amplitudová charakteristika 
fázová charakteristika 
Horní propust
přenos
, amplitudová charakteristika 
fázová charakteristika 
Filtry vyšších řádů
- Vyšší strmost,
- složitější obvody
Aktivní filtry
Využití operační zesilovačů:
- usnadňují návrh a praktickou realizaci účinných filtrů,
- kompenzují útlum způsobený pasivními součástkami,
- umožňují dokonalé oddělení vstupu a výstupu filtru,
- umožňují impedanční přizpůsobení,
- lze je řadit do kaskády,
- realizace filtru bez použití indukčnosti
Dolní propust (lowpass)
Horní propust (hipass)
Návrh filtru
Analog vs Digital
Analogové
- Levné,
- rychlé,
- velký dynamický rozsah.
- nevhodné pro nízké frekvence,
- nepřesné,
- závislé na vlivech okolí (teplota, ...)
Digitální
- Přesné,
- univerzální,
- vhodné i pro nízké frekvence,
- stabilní.
Digitální filtry
FIR (Finite Impulse Response)
Zaručená stabilita, výstup závislý pouze na vstupech do filtru.
Výstup zpožděn o skupinové zpoždění filtru
, lineární fázová charakteristika.
IIR (Infinite Impulse Response)
Nemají zaručenou stabilitu, výstup závislý na vstupech a minulých výstupech.
Dosahují stejných vlastností jako FIR při nižších řádech, tedy
- nižší výpočetní složitost,
- kratší zpoždění mezi vstupem a výstupem.
Nelineární fáze, obecný návrh je složitější oproti FIR.
Citlivé na numerickou přenost.
Příklady
Diskrétní integrátor:
Obdélníkové pravidlo: 
Lichoběžníkovo pravidlo: 
Diskrétní derivátor:
Praktická aplikace
Offline použití
Použiju nejlepší, jaký mám -- možno použít nekauzální filtr.
Online použití
🤷🏻♂️🤷🏻♂️
Podle aplikace.
Adaptivní filtr
Koeficienty filtru se mění na základě optimalizačního kritéria za běhu procesu.
Aplikace
Použití HONU/LNU (high order neural unit / linear neural unit) k identifikaci kmitavého systému
Systém
plant = tf(50000*[0.6106 0.0753e3],[1 204.21 15278 4.1545e+05 5.8866e+05]);
"Měření"
u = .5*square(t*2*pi); % 2*pi*t = 1 Hz
u(fix(numel(u)/2):end) = .4*u(fix(numel(u)/2):end)+0.3*square(t(fix(numel(u)/2):end)*2*pi*3.468135);
tiledlayout(2,1,"Padding","compact","TileSpacing","compact")
plot(t,u,"LineWidth",1.3)
plot(t,[y],"LineWidth",1.3)
Parametry neuronu
wLNUinit = 0*randn(1,1+2*LNUmaxN);
wBuff = zeros(2*LNUmaxN+1);
wChange = zeros(size(y));
yLNUhist = zeros(size(y));
SSEHist = zeros(size(y));
rhoHist = zeros(size(y));
eHistTemp = zeros(LNUmaxN,1);
Simulace online běhu
k0 = max([find(t>1,1),LNUmaxN+1]);
SSEHist(k0) = sum(y(k0-LNUmaxN:k0).^2);
uVec(1:Kdx) = u(Kdx:-1:1);
yVec(1:Kdx) = y(Kdx:-1:1);
uVec = u(Kdx:-1:Kdx-LNUmaxN+1); % u up to k
yVec = y(Kdx:-1:Kdx-LNUmaxN+1); % y up to k-1, (otherwise might lead to yLNU(k) = y(k))
[yLNUhist(Kdx),wPrev,rhoHist(Kdx),muHist(Kdx)] = LNUfcn(1,uVec,yVec,nU,nY,muHist(Kdx-1),epsilon,wPrev,SSEHist(Kdx-1),LNUmaxN);
wBuff = circshift(wBuff,1,1);
wChange(Kdx) = mean(abs(wBuff(2,:)-wBuff(1,:)));
eHist(Kdx) = y(Kdx) - yLNUhist(Kdx);
eHistTemp(1:Kdx) = eHist(1:Kdx);
eHistTemp(Kdx+1:end) = max(abs(eHist));
SSEHist(Kdx) = sum(eHistTemp.^2);
SSEHist(Kdx) = sum(eHist(Kdx-LNUmaxN:Kdx).^2);
SSEHist(1:10)=SSEHist(11);
tiledlayout(4,1,"Padding","compact","TileSpacing","compact")
plot(t,[yLNUhist],"LineWidth",1.3)
plot(t,[y],'--',"LineWidth",1.3)
title(sprintf("n_u = %i, n_y = %i, mu = %.3g, SSE_{min} = %.2g",nU,nY,muHist(end),min(SSEHist)))
semilogy(t,SSEHist,"LineWidth",1.3)
Funkce zajišťující adaptaci neuronu
function [yLNU,w,rho,mu] = LNUfcn(learn,uVec,yVec,nU,nY,mu,epsilon,wPrev,SSE,maxN)
colX = zeros(1,1+2*maxN);
yLNU=yLNU+wPrev(idx+1)*uVec(idx);
yLNU=yLNU+wPrev(idx+1+LNUmaxN)*yVec(idx+1); %y(k) is only for e(k)
colX(idx+1+LNUmaxN)=yVec(idx);
mun = mu/(epsilon+norm(colX.*colX));
rho = StabEval(colX([1 2:nU+1 LNUmaxN+1+1:LNUmaxN+1+nY]),mun);
% if learning is disabled
function rho = StabEval(x,mun)
Amat = eye(numel(x))-mun*(x'*x);
rho = norm(Amat,2); % frobenius norm
rhoS = max(abs(eig(Amat))); % spectral radius
sprintf("spectral radius: %f, L2 norm: %f",rhoS,rho);