tex: add batch 1, add related pics
Before Width: | Height: | Size: 19 KiB |
BIN
res/autocorrelation_u.png
Normal file
After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 19 KiB |
BIN
res/autocorrelation_y.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
res/impulse-response.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
res/impulse_func_estimate.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
res/impulse_func_estimate_comparison.png
Normal file
After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 23 KiB |
BIN
res/mutual_correlation_uy.png
Normal file
After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 23 KiB |
BIN
res/mutual_correlation_yu.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
res/signal_u.jpg
Before Width: | Height: | Size: 38 KiB |
BIN
res/signal_u.png
Normal file
After Width: | Height: | Size: 114 KiB |
BIN
res/signal_y.jpg
Before Width: | Height: | Size: 24 KiB |
BIN
res/signal_y.png
Normal file
After Width: | Height: | Size: 104 KiB |
115
solution.tex
@ -1,5 +1,5 @@
|
||||
Jazyky zvolené pre vypracovanie práce boli Go a Python. Pseudonáhodné dáta
|
||||
reprezentujúce signál boli vygenerované programom Matlab -
|
||||
Jazyky zvolené pre vypracovanie práce boli \href{https://go.dev/}{Go} a Python.
|
||||
Pseudonáhodné dáta reprezentujúce signál boli vygenerované programom Matlab -
|
||||
Simulink\footnotemark{}.
|
||||
\\
|
||||
\\
|
||||
@ -82,28 +82,34 @@ príkazmi:
|
||||
|
||||
Najskôr sme sa premiestnili do \texttt{<project location>}, následne sme si so
|
||||
zachytených vzoriek (jednorozmerné polia rovnakej dĺžky) vytvorili
|
||||
\textit{maticu}. Túto maticu sme nakoniec zapísali príkazom
|
||||
\textit{maticu}. Táto matica bola nakoniec zapísaná príkazom
|
||||
\texttt{writematrix} \footnote{V predošlom protokole sa vyskytovala chyba,
|
||||
keďže som poznamenal, že bol použitý príkaz \texttt{matrixwrite}} do želaného
|
||||
súboru.
|
||||
|
||||
Súbor bolo dodatočne potrebné manuálne upraviť - pridať mu CSV "hlavičku" s
|
||||
názvami stĺpcov, aby ho bolo možné za pomoci knižnice
|
||||
\href{https://pandas.pydata.org/}{\texttt{Pandas}} bez problémov spracovať.
|
||||
Súbor bolo dodatočne potrebné manuálne upraviť - pridať mu CSV ``hlavičku''
|
||||
s~názvami stĺpcov, aby ho bolo možné za pomoci knižnice
|
||||
\href{https://pandas.pydata.org/}{\texttt{Pandas}} ďalej bez problémov
|
||||
spracovávať.
|
||||
Go balíček \texttt{csv} zo štandardnej knižnice takýto nárok/problém nemá,
|
||||
takže bolo možné po \textit{odstránení} hlavičky dáta zo súbory v Go programe
|
||||
načítať a skonvertovať to natívnych typov (\texttt{[]float64}...) pomocou
|
||||
funkcionality balíčka štandardnej knižnice \texttt{strconv}. Pre referenciu viď
|
||||
súbor \texttt{p2/data.go}.
|
||||
|
||||
|
||||
\newpage
|
||||
\subsection{Získané signály}
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.77\textwidth]{res/signal_u}
|
||||
\includegraphics[width=.57\textwidth]{res/signal_u}
|
||||
\caption{Náhodne vygenerovaný signál pred aplikáciou filtra - u}
|
||||
\label{fig:signalorig}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.77\textwidth]{res/signal_y}
|
||||
\includegraphics[width=.57\textwidth]{res/signal_y}
|
||||
\caption{Náhodne vygenerovaný signál po aplikácii filtra - y}
|
||||
\label{fig:signalfiltered}
|
||||
\end{figure}
|
||||
@ -126,7 +132,7 @@ Vypočítali sme štatistické charakteristiky prvého a druhého rádu, ktorým
|
||||
\subsubsection{Autokorelačná funkcia u}
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.77\textwidth]{res/autocorrelation_u}
|
||||
\includegraphics[width=.57\textwidth]{res/autocorrelation_u}
|
||||
\caption{Autokorelačná funkcia u}
|
||||
\label{fig:autocorrelation-u}
|
||||
\end{figure}
|
||||
@ -134,7 +140,7 @@ Vypočítali sme štatistické charakteristiky prvého a druhého rádu, ktorým
|
||||
\subsubsection{Autokorelačná funkcia y}
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.77\textwidth]{res/autocorrelation_y}
|
||||
\includegraphics[width=.57\textwidth]{res/autocorrelation_y}
|
||||
\caption{Autokorelačná funkcia y}
|
||||
\label{fig:autocorrelation-y}
|
||||
\end{figure}
|
||||
@ -143,14 +149,14 @@ Vypočítali sme štatistické charakteristiky prvého a druhého rádu, ktorým
|
||||
\subsubsection{Vzájomne korelačná funkcia}
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.77\textwidth]{res/mutual_correlation_uy}
|
||||
\includegraphics[width=.57\textwidth]{res/mutual_correlation_uy}
|
||||
\caption{Vzájomne korelačná funkcia uy}
|
||||
\label{fig:mutualcorrelation-uy}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.77\textwidth]{res/mutual_correlation_yu}
|
||||
\includegraphics[width=.57\textwidth]{res/mutual_correlation_yu}
|
||||
\caption{Vzájomne korelačná funkcia yu}
|
||||
\label{fig:mutualcorrelation-yu}
|
||||
\end{figure}
|
||||
@ -164,8 +170,8 @@ Vypočítali sme štatistické charakteristiky prvého a druhého rádu, ktorým
|
||||
\begin{tabular}{r|cc}
|
||||
& \textbf{u} & \textbf{y} \\
|
||||
\hline
|
||||
\textbf{u} & 0.30774141 & -0.00436625 \\
|
||||
\textbf{y} & -0.00436625 & 0.01241115 \\
|
||||
\textbf{u} & 1.1583640130324268647 & 0.015851330298377188 \\
|
||||
\textbf{y} & 0.015851330298377188 & 0.0247634923750309523 \\
|
||||
\end{tabular}
|
||||
|
||||
\caption{Kovariančná matica}
|
||||
@ -175,7 +181,8 @@ Vypočítali sme štatistické charakteristiky prvého a druhého rádu, ktorým
|
||||
Zo zaznamenaných dát signálov sme spočítali odhady stredných hodnôt a
|
||||
rozptylov.
|
||||
V~tabuľke~\ref{table:stats} môžeme vidieť výrazné posuny signálu po prechode
|
||||
filtrom oproti pôvodnému signálu ako v strednej hodnote tak v rozptyle.
|
||||
filtrom oproti pôvodnému signálu hlavne v rozptyle, ale zmeny zachytila aj
|
||||
stredná hodnota.
|
||||
|
||||
|
||||
\begin{table}[!hbt]
|
||||
@ -183,20 +190,86 @@ filtrom oproti pôvodnému signálu ako v strednej hodnote tak v rozptyle.
|
||||
\begin{tabular}{r|cc}
|
||||
& \textbf{u} & \textbf{y} \\
|
||||
\hline
|
||||
\textbf{$\hat{\mu}_{u,y}$ (stredná hodnota)} & -0.0016865221052993265 & 0.0030596815877553443 \\
|
||||
\textbf{$\hat{\sigma}^{2}_{u,y}$ (rozptyl)} & 0.3077414110318535 & 0.012411153945455982 \\
|
||||
\textbf{$\hat{r}(U,Y)$ (koeficient korelácie)} & \multicolumn{2}{c}{-0.07064959453763188} \\
|
||||
\textbf{$\hat{\mu}_{u,y}$ (stredná hodnota)} & -0.0731240350331255062 & -0.0109705557504332952 \\
|
||||
\textbf{$\hat{\sigma}^{2}_{u,y}$ (rozptyl)} & 1.1583640130324268647 & 0.0247634923750309523 \\
|
||||
\textbf{$\hat{r}(U,Y)$ (koeficient korelácie)} & \multicolumn{2}{c}{0.09359167949834103} \\
|
||||
\end{tabular}
|
||||
|
||||
\caption{Súhrn štatistických charakteristík}
|
||||
\label{table:stats}
|
||||
\end{table}
|
||||
|
||||
Hodnota koeficientu korelácie je mierne záporná, čo znamená jemný náznak
|
||||
tvrdenia, že signály spolu nesúvisia, resp. vzhľadom na to ako blízko je
|
||||
daná záporná hodnota 0 ide skôr o preukázanie neexistencie súvisu.
|
||||
Hodnota koeficientu korelácie je mierne kladná, čo znamená jemný náznak
|
||||
tvrdenia, že signály spolu súvisia.
|
||||
|
||||
|
||||
\newpage
|
||||
\subsection{Impulzná odozva}
|
||||
Pomocou \textit{Control System Toolbox} (CST) a \textit{System Identification
|
||||
Toolbox} (SIT) sme vypočítali zo zadaného modelu \textbf{impulznú odozvu}.
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\begin{varwidth}{\linewidth}
|
||||
\begin{verbatim}
|
||||
>> % define a system from the transfer function
|
||||
>> sys = tf(1, [2 5 1])
|
||||
>> % get impulse response from CST
|
||||
>> ir = impulse(sys)
|
||||
>> % get impulse response from SIT
|
||||
>> ircra = cra(out.u, out.y)
|
||||
>>
|
||||
>> % save CST impulse response to file
|
||||
>> writematrix(ir, 'data/ir.csv')
|
||||
>> % save SIT impulse response to file
|
||||
>> writematrix(ircra, 'data/ircra.csv')
|
||||
\end{verbatim}
|
||||
\end{varwidth}
|
||||
\caption{Výpočet impulznej odozvy pomocou CST a SIT}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{Výpočet impulznej odozvy}
|
||||
Výpočet hodnôt impulznej odozvy pomocou korelačnej analýzy: hodnoty impulznej
|
||||
funkcie vypočítame diskretizáciou Wiener-Hopfovej rovnice.
|
||||
|
||||
Po dikretizácii Wiener-Hopfovej rovnice dostáváme:
|
||||
\begin{equation*}
|
||||
R_{uy} (\tau)=\sum_{i=1}^N R_{uu} (\tau - i\Delta t) g(i\Delta t) \Delta t
|
||||
\end{equation*}
|
||||
|
||||
Výslednú impulznú charakteristiku vykreslenú na základe odhadu impulznej
|
||||
funkcie je možné vidieť na obrázku~\ref{fig:imp-res}.
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.57\textwidth]{res/impulse_func_estimate}
|
||||
\caption{Impulzná charakteristika pomocou funkcie \texttt{gCustom}}
|
||||
\label{fig:imp-res}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
|
||||
\subsubsection{Porovnanie odhadov impulznej funkcie}
|
||||
Porovnanie odhadov impulznej funkcie \texttt{gCustom} s odhadom impulznej
|
||||
funkcie zo SIT (Matlab príkaz \texttt{cra(out.u, out.y)}) je možné vidieť na
|
||||
obrázku~\ref{fig:imp-res-comp}.
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.57\textwidth]{res/impulse_func_estimate_comparison}
|
||||
\caption{Porovnanie odhadov impulznej funkcie pomocou \texttt{gCustom} a
|
||||
\texttt{cra} zo SIT}
|
||||
\label{fig:imp-res-comp}
|
||||
\end{figure}
|
||||
|
||||
% \newpage
|
||||
Odhad impulznej funkcie podľa CST funkcie \texttt{impulse} je možné vidieť na
|
||||
obrázku~\ref{fig:imp-res-cst}.
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=.77\textwidth]{res/impulse-response}
|
||||
\caption{Impulzná charakteristika podľa \texttt{impulse} z CST}
|
||||
\label{fig:imp-res-cst}
|
||||
\end{figure}
|
||||
|
||||
Tento sa od odhadov pomocou \texttt{gCustom} a \texttt{gSIT} výrazne líši.
|
||||
|
||||
\newpage
|
||||
\section{Záver}
|
||||
|