\chapter{Měření}
\label{sec:meas}
Metody pro předzpracování a rekonstrukci signálu byly implementovány jako program pro zvolený \zk{zkMCU} (typ PIC32MX250F128D). Implementace byla doplněna o kmitočtovou demodulaci pomocí výpočtu komplexní obálky signálu, a proto \zk{zkMCU} zpracovával přímo vysokofrekvenční signál ze snímacího oscilátoru. Jednotlivé časové průběhy (budou uvedeny dále) signálů, s nimiž \zk{zkMCU} pracuje byly odeslány prostřednictví sériové linky (která je součástí rekonstrukčního obvodu).

Snímání proběhlo snímacím oscilátorem popsaným v \cite[kap.~6.1]{kadlcik-bbce}, jehož cívka je navinuta na válcovém feritovém jádře o průměru přibližně \qty{1{,}5}{mm}. Vzorky čárového kódu byly těsně zakryty tenkou hladkou plastovou fólií, aby se zjednodušilo vedení snímacího oscilátoru (které by jinak mohlo být komplikováno zvlněním a ohyby podkladového materiálu čárového kódu). Snímací oscilátor byl po povrchu fólie veden rukou rychlostí zhruba \qty{10}{cm{\cdot}s^{-1}}.

Snímací oscilátor byl úmyslně vystaven mírnému kolísání teploty, aby jím produkovaný signál byl doprovázen i stejnosměrným driftem (a tak byla otestována metoda pro jeho odstranění).

Pro detekci čárového kódu byla použita metoda nevydařené lineární aproximace (kap.~\ref{sec:prep:detection}). Zvolené parametry metody jsou uvedeny v tab.~\ref{tab:meas:detection-parameters}.

\begin{table}[!htbm]
	\begin{center}\begin{tabular}{|l||c|}
		\hline
		Parametr							& Nastavená hodnota			\\
		\hline
		\hline
		Posun								& $10$ vzorků				\\
		Podvzorkování $M$						& $10$ 					\\
		Délka prefixu							& $70$ vzorků				\\
		Délka sufixu							& $70$ vzorků				\\
		Práh minima energie odchylky $E_{\text{min}_\text{thr}}$	& $100$					\\
		Doba udržení							& $100$ vzorků				\\
		\hline
	\end{tabular}\end{center}
	\caption{Nastavené parametry detekce čárového kódu}
	\label{tab:meas:detection-parameters}
\end{table}

Dalším krokem bylo předzpracování. Stejnosměrný drift byl odstraněn postupem popsaným v kap.~\ref{sec:prep:drift-removal}. Stejnosměrný přenos $K_0$ \zk{zkPSF} byl odhadnut pomocí metody střední hodnoty (kap.~\ref{sec:prep:K-0-estimation:mean}) a signálu byl zesílen tak, aby byl stejnosměrný přenos nové \zk{zkPSF} roven hodnotě $1$. Šířka $\sigma$ \zk{zkPSF} byla přibližně nalezena metodou derivací (kap.~\ref{sec:prep:sigma-estimation}). Bylo předpokládáno, že \zk{zkPSF} je gaussovská.

K rekonstrukci signálu posloužila slepá dekonvoluce (kap.~\ref{sec:recon:blind-deconv}), založená na minimalizaci funkcionálu \eqref{eq:recon:alg:deconv:E} (regularizační parametr regularizace diferencí byl nastaven $\lambda_\text{dif} = 0{,}03$, pro regularizaci dvoujámovou funkcí byl nastaven parametr $\lambda_W = 0{,}05$).

Rekonstrukce byla zakončena binárním prahováním signálu dle předpisu \eqref{eq:recon:blind-deconv:bin}.

\clearpage
\section{První vzorek magnetického čárového kódu}
První vzorek (obr.~\ref{fig:meas:01:foto}) magnetického čárového kódu nese alfanumerický řetězec kódovaný symbolikou prokládaného kódu 2 z 5. U čárového kódu s touto symbolikou je očekáván výskyt pouze dvou různých šířek proužků a mezer.

\rasterfig{meas/01-foto}{10cm}{První vzorek magnetického čárového kódu}{fig:meas:01:foto}

Šířky proužků a mezer (obr.~\ref{fig:meas:01:dim}) čárového kódu vzorku jsou srovnatelné s průměrem feritového jádra, na němž je navinuta cívka snímacího oscilátoru. Proto lze očekávat relativně výrazné konvoluční zkreslení, což je vhodná příležitost pro otestování slepé dekonvoluce (popsané v kap.~\ref{sec:recon:blind-deconv}).

\vectorfig{meas/01-dim}{1}{Rozměry prvního vzorku magnetického čárového kódu}{fig:meas:01:dim}

Signál $y_\text{lf}[k]$ získaný demodulací (obr.~\ref{fig:meas:01}) signálu ze snímacího oscilátoru obsahuje jasně viditelný stejnosměrný drift. Detekce čárového kódu s uspokojivou přesností určila jeho vnitřní část (která by v ideálním případě měla být mírně užší). Předzpracováním je obdržen signál $y[k]$, v němž se stejnosměrný drift již nevyskytuje a jenž byl zesílen tak, aby celková \zk{zkPSF} vykazovala jednotkový stejnosměrný přenos.

Je důležité připomenout, že okamžitá hodnota demodulovaného signálu lineárně roste s kmitočtem generovaným snímacím oscilátorem. Jelikož feromagnetikum v proužcích čárového kódu působí pokles kmitočtu, projevují se proužky v demodulovaném signálu jako lokální minima, tj. polarita signálu je opačná ke konvenci zavedené na obr.~\ref{fig:theory:barcode-as-a-signal} (a stejnosměrný přenos příslušné \zk{zkPSF} je záporný, což ale předzpracováním automaticky napraveno).

Slepou dekonvolucí jsou v signálu zvýrazněny úzké proužky a mezery (signál $\hat{c}[k]$ na obr.~\ref{fig:meas:01}), které v původním předzpracovaném signálu (kvůli svému malému rozkmitu) téměř zanikají. Po binárním prahování je obdržen dvouúrovňový signál $\hat{c}_\text{bin}[k]$, který dobře koresponduje se strukturou přečteného čárového kódu na obr.~\ref{fig:meas:01:foto}.

\vectorfig{meas/01}{1}{Signály v jednotlivých krocích zpracování signálu při snímání prvního vzorku čárového kódu}{fig:meas:01}


\clearpage
\section{Druhý vzorek magnetického čárového kódu}
Druhý vzorek magnetického čárového kódu má podstatně jednodušší strukturu (obr.~\ref{fig:meas:02:foto}) než vzorek první.

\rasterfig{meas/02-foto}{5cm}{Druhý vzorek magnetického čárového kódu}{fig:meas:02:foto}

Na demodulovaném signálu $y_\text{lf}[k]$ (obr.~\ref{fig:meas:02:dim}) lze pozorovat výrazný (a téměř učebnicový, viz obr.~\ref{fig:theory:dc-drift}) stejnosměrný drift. Předzpracováním je drift odstraněn (signál $y[k]$ na obr.~\ref{fig:meas:02:dim}).

\vectorfig{meas/02-dim}{1}{Rozměry druhého vzorku magnetického čárového kódu}{fig:meas:02:dim}

Jelikož šířka proužků a mezer (obr.~\ref{fig:meas:02:dim}) výrazně převyšuje průměr jádra cívky snímacího oscilátoru, lze očekávat, že čitelnost čárového kódu nebude konvolučním zkreslením viditelné zhoršena. Slepou dekonvolucí se zde proto čitelnost čárového kódu v signálu pochopitelně příliš nezlepší (viz signál $\hat{c}[k]$ na obr.~\ref{fig:meas:02}). Binárním prahováním je získán signál $\hat{c}_\text{bin}[k]$, velmi blízký snímanému čárovému kódu.

\vectorfig{meas/02}{1}{Signály v jednotlivých krocích zpracování signálu při snímání druhého vzorku čárového kódu}{fig:meas:02}
