feat: added spd and sdm2

This commit is contained in:
Krzysztof kuhy Rudnicki 2025-01-26 20:05:03 +01:00
parent 99ab0106b7
commit 0fbb57cca2
55 changed files with 877 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

View File

@ -0,0 +1,332 @@
\documentclass{beamer}
\usepackage[fontsize=20pt]{fontsize}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{changepage} % Add to your preamble
\usepackage{svg}
\usepackage[polish]{babel}
\graphicspath{ {./images/} }
\usetheme{Warsaw}
%Information to be included in the title page:
% Custom title page layout adjustments
\title{\large Porównanie wydajności i możliwości współczesnych silników do gier komputerowych}
\author{Krzysztof Rudnicki}
\institute{
\textbf{Promotor} \\
dr inż. Michał Chwesiuk
}
\date{\scriptsize \today} % Adjust the font size here
\setbeamertemplate{footline}[frame number]{}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{headline}{}
\begin{document}
\begin{frame}
\vspace{-0.5cm} % Adjust vertical space above title
\maketitle
% Alternatively, use a completely custom layout:
%\begin{center}
% {\Large\inserttitle\par}
% \vskip1em
% {\insertauthor\par}
% \vskip1em
% {\insertinstitute\par}
% \vskip1em
% {\insertdate\par}
%\end{center}
\end{frame}
\begin{frame}
\frametitle{Plan prezentacji}
\tableofcontents
\end{frame}
\section{Definicje}
\begin{frame}
\frametitle{Gra komputerowa}
\large Aplikacja dostępna na platformie "Steam" oznaczona typem "Game"
\end{frame}
\begin{frame}
\frametitle{Silnik do gier}
\large Oprogramowanie zaprojektowane i stworzone do kreacji gier komputerowych
\end{frame}
\begin{frame}
\frametitle{Nowoczesne}
\large Ponad 1000 gier w tej dekadzie na platformie "Steam"
\end{frame}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_main.png}}
\begin{frame}
\end{frame}
}
{
\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_filter.drawio.pdf}}
\begin{frame}
\end{frame}
}
\begin{frame}
\frametitle{Wybrane silniki - start}
\begin{center}
\includegraphics[width=0.8\paperwidth, height=0.8\paperheight]{usedEngines.pdf}
\end{center}
\end{frame}
\begin{frame}
\frametitle{Wybrane silniki}
\begin{itemize}
\item Wyeliminowanie nie generycznych - Ren'Py, RPGMaker
\item Wybór najpopularniejszych - Unity, Unreal
% Prawie 25k i ponad 7.5k
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Wydajność silnika}
\begin{itemize}
\item Klatki na sekundę (FPS)
\item Zużycie CPU, GPU, RAM i VRAM
\item Liczba draw calls
\item Czas ładowania assetów
\item Czas odpowiedzi na interakcję gracza
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Możliwości Silnika}
\begin{itemize}
\item Renderowanie grafiki
% Ray tracing, HDR lighting, dynamic shadows, particle systems, animacja
\item Silnik Fizyczny
\item Multiplatformowość (VR)
% Linux, Windows, MacOS, Android, IOs, Xbox, PlayStation, Nintendo, VR
\item Skryptowanie logiki gier (AI)
\item Gry online
\item Sklepy z assetami
\end{itemize}
\end{frame}
\section{Narzędzia}
\frametitle{Unity Profiler}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{unity_profiler.png}}
\begin{frame}
\end{frame}
}
\frametitle{Unreal Profiler}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{unreal_profiler.jpg}}
\begin{frame}
\end{frame}
}
\frametitle{Nvidia nsight}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{nvida_nsighty.jpg}}
\begin{frame}
\end{frame}
}
\begin{frame}
\frametitle{Nsight - Analiza FPS}
\center
\includegraphics[width=1\textwidth]{fps_overview.png}
% Ile klatek pokazaliśmy na ile
% ile trwała średnio klatka
% Ile trwała najkrótsza klatka
% Ile trwała najdłuższa klatka
% Przeciętne klatki na sekundę dla pokazanego wycinka
% Tyle lub mniej czasu trwało 99% klatek
\end{frame}
\begin{frame}
\frametitle{Nsight - Analiza FPS}
\center
\includegraphics[width=1\textwidth]{stutter_row.png}
% Wykrywanie "zawieszek"
% Wykrywamy klatki których długość
% jest znacznie dłuższa od długości mediany pobliskich 19 klatek
% zawieszka musi być dłuższa niż 4 milisekundy
\end{frame}
\begin{frame}
\frametitle{Nsight - Analiza FPS}
\center
\includegraphics[width=1\textwidth]{dx12_frame_health.png}
% Możemy sprawdzić jaka klatka miała zawieszkę
% I jaka metoda w api tę zawieszkę spowodowała
\end{frame}
\begin{frame}
\frametitle{Nsight - Zużycie VRAM}
\center
\includegraphics[width=1\textwidth]{memory_utilization_gpu_vram.png}
% Zielony -> ile pamięci mamy dostępnej
% Pomarańczowy -> ile pamięci zużyliśmy
% VidMm Device Suspension -> okresy czasku kiedy przetransferowano
% Jeden duży zasób pamięci
% Demoted Memory -> w GPU mamy local memory (szybsze) i global memory
% (wolniejsze) to może nam mówić o "wyciekach" pamięci
% źle zooptymalizowanej pamięci itd.
% Allokacja pamięci -> zielone aplikacja, szare -> system
\end{frame}
\begin{frame}
\frametitle{Nsight - Zużycie VRAM}
\center
\includegraphics[width=1\textwidth]{memory_utilization_resource_migrations.png}
% W kolejności co najwięcej zużyło zasobów
% Konkretnie ile i kiedy
\end{frame}
\begin{frame}
\frametitle{Nsight - Zużycie VRAM}
\center
\includegraphics[width=1\textwidth]{memory_utilization_memory_transfer.png}
% W kolejności co najwięcej zużyło zasobów
% Konkretnie ile i kiedy
\end{frame}
\begin{frame}
\frametitle{Jak porównywać?}
\begin{itemize}
\item Stworzenie gry na obu
\item Porównywanie istniejących gier
\item Porównanie samych edytorów
\end{itemize}
\end{frame}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{maxresdefault (1).jpg}}
\begin{frame}
\end{frame}
}
\begin{frame}
\frametitle{Wybór gatunku}
FPS:
\begin{itemize}
\item Wystarczająco skomplikowany
\item Grafika
\item Fizyka
\item Klasyczny benchmark
% Wolfenstein, Doom, Quake, Crysis
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Problem}
Inklinacja Silnika \\
\begin{itemize}
\item $ \frac{2478}{39713} \approx 6\% $ gier Unity to FPS \\
\item $ \frac{1765}{11158} \approx 15\% $ gier Unreal to FPS \\
\end{itemize}
Źródło: steamdb.info
\end{frame}
\begin{frame}
\frametitle{Wybór gatunku}
Bullet hell:
\begin{itemize}
\item Wystarczająco skomplikowany
\item Grafika
\item Czas jest ważny
% W Bullet hell czas jest ważny, gra musi być płynna
\end{itemize}
\end{frame}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{maxresdefault.jpg}}
\begin{frame}
\end{frame}
}
\begin{frame}
\frametitle{Wyzwania}
\begin{itemize}
\item Sprzęt
% Ten sam, jeden i ten sam komputer użyty w procesie kreacji obu
\item Umiejętności
% Nie mam
\item Podobne wersje silnika
% Użyje ostatniego LTS
\item Inklinacja Silnika \\ (3\% Unity, 2.4\% Unreal)
% ??? Ch
% 1577 FPS UNITY, 271 FPS UNREAL
% 39713 Total Unity, 11158 Total Unreal (proporcjonalnie 2 razy więcej :<)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Ocena łatwości użycia}
\begin{itemize}
\item Dokumentacja
\item Intuicyjność
\item Materiały
\item Zasoby (Assety)
\item Dostępne funkcje
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Po stworzeniu}
Przejść obie gry, monitorując przy użyciu Nvidia Nsight i porównać wyniki
\end{frame}
\section{Źródła}
\begin{frame}
\frametitle{Źródła}
\begin{itemize}
\item \href{https://steamdb.info/}{https://steamdb.info/}
\item \href{https://docs.nvidia.com/nsight-systems}{https://docs.nvidia.com/nsight-systems}
\item An Overview Study of Game Engines, Faizi Noor Ahmad
\item Game Engine Architecture, Jason Gregory
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Źródła obrazów}
\begin{itemize}
\item Crysis - kanał youtube \href{https://www.youtube.com/watch?v=vGjOALIrL_U}{Thronefull}
\item BulletHell - kanał youtube \href{https://www.youtube.com/watch?app=desktop&v=h-wr6LoETA0}{Beat that boss}
\end{itemize}
\end{frame}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,15 @@
Dzień dobry państwu, nazywam się Krzysztof Rudnicki i chciałbym opowiedzieć o mojej pracy magisterskiej pod promotorstwem Pana doktora Michała Chwesiuka, o tytule Porównanie wydajnośći i możliwości współczesnych silników gier komputerowych
Jeżeli pojawią się jakieś pytania to można je jak najbardziej zadawać w trakcie
Plan prezentacji wygląda następująco, najpierw omówię krótko co
rozumiem pod pojęciem silnika do gier,
jakie są współczesne silniki do gier,
które z nich będę porównywał,
czym są możliwości i wydajności tych silników
i jak zamierzam je porównywać
Chciałbym aby po tej prezentacji wiedzieli Państwo więcej o tym jak można
porównywać silniki graficzne niż przed nią

View File

@ -0,0 +1,15 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" version="26.0.6">
<diagram name="Page-1" id="2vE6dni7qVpCWZpP-CNm">
<mxGraphModel dx="983" dy="1268" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<UserObject label="&lt;b style=&quot;font-weight:normal;&quot; id=&quot;docs-internal-guid-ff2c5e07-7fff-3fae-fed4-b0fa37caed6b&quot;&gt;&lt;span style=&quot;font-size:20pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;border:none;display:inline-block;overflow:hidden;width:624px;height:432px;&quot;&gt;&lt;img src=&quot;https://lh7-rt.googleusercontent.com/docsz/AD_4nXd6iwCGetaFN00emJRvhzG8WmA_Y3vEveyXiAYYBNjk4vUl1OXIgBGd_od5nMTBzg6CVQFR43BRpWswvvDkyARfb-LE6e-OWbQdNa2YtGMkcWp1KjTEYvVhynCBW6VwtiN78eRRKA?key=UzfVxNH8I7wCxe0FnKorOi_b&quot; width=&quot;624&quot; height=&quot;432&quot; style=&quot;margin-left:0px;margin-top:0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;" link="&lt;b style=&quot;font-weight:normal;&quot; id=&quot;docs-internal-guid-ff2c5e07-7fff-3fae-fed4-b0fa37caed6b&quot;&gt;&lt;span style=&quot;font-size:20pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;border:none;display:inline-block;overflow:hidden;width:624px;height:432px;&quot;&gt;&lt;img src=&quot;https://lh7-rt.googleusercontent.com/docsz/AD_4nXd6iwCGetaFN00emJRvhzG8WmA_Y3vEveyXiAYYBNjk4vUl1OXIgBGd_od5nMTBzg6CVQFR43BRpWswvvDkyARfb-LE6e-OWbQdNa2YtGMkcWp1KjTEYvVhynCBW6VwtiN78eRRKA?key=UzfVxNH8I7wCxe0FnKorOi_b&quot; width=&quot;624&quot; height=&quot;432&quot; style=&quot;margin-left:0px;margin-top:0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;" id="PGaHsMgPPGA8kvKqBguw-1">
<mxCell style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="90" y="530" width="560" height="460" as="geometry" />
</mxCell>
</UserObject>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1 @@
<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,128 @@
import matplotlib.pyplot as plt
# Prepare the datasets
datasets_200Hz = []
datasets_400Hz = []
# Dataset 1: Wieloton 200 Hz, 7 (1400 Hz), 3 składowe
# Starting x value is 1400 Hz
datasets_200Hz.append({
'name': '200 Hz, 7 (1400 Hz), 3 składowe',
'x': [1400 + 0, 1400 + 50, 1400 + 100, 1400 + 150],
'y': [200, 200, 215, 230]
})
# Dataset 2: Wieloton 200 Hz, 7 (1400 Hz), 7 składowych
datasets_200Hz.append({
'name': '200 Hz, 7 (1400 Hz), 7 składowych',
'x': [1400 + 0, 1400 + 50, 1400 + 100, 1400 + 150],
'y': [190, 190, 200, 195]
})
# Dataset 3: Wieloton 200 Hz, 10 (2000 Hz), 3 składowe
# Starting x value is 2000 Hz
datasets_200Hz.append({
'name': '200 Hz, 10 (2000 Hz), 3 składowe',
'x': [2000 + 0, 2000 + 50, 2000 + 100, 2000 + 150],
'y': [225, 215, 220, 265]
})
# Dataset 4: Wieloton 200 Hz, 10 (2000 Hz), 7 składowych
datasets_200Hz.append({
'name': '200 Hz, 10 (2000 Hz), 7 składowych',
'x': [2000 + 0, 2000 + 50, 2000 + 100, 2000 + 150],
'y': [190, 205, 205, 210]
})
# Dataset 4: Wieloton 200 Hz, 10 (2000 Hz), 7 składowych
datasets_200Hz.append({
'name': 'Shouten - 7',
'x': [1400 + 0, 1400 + 50, 1400 + 100, 1400 + 150],
'y': [200, 207.5, 214, 222]
})
# Dataset 4: Wieloton 200 Hz, 10 (2000 Hz), 7 składowych
datasets_200Hz.append({
'name': 'Shouten - 10',
'x': [2000 + 0, 2000 + 50, 2000 + 100, 2000 + 150],
'y': [200, 205, 210, 215]
})
# Dataset 5: Wieloton 400 Hz, 7 (2800 Hz), 3 składowe
# Starting x value is 2800 Hz
datasets_400Hz.append({
'name': '400 Hz, 7 (2800 Hz), 3 składowe',
'x': [2800 + 0, 2800 + 100, 2800 + 200, 2800 + 300],
'y': [405, 410, 410, 405]
})
# Dataset 6: Wieloton 400 Hz, 7 (2800 Hz), 7 składowych
datasets_400Hz.append({
'name': '400 Hz, 7 (2800 Hz), 7 składowych',
'x': [2800 + 0, 2800 + 100, 2800 + 200, 2800 + 300],
'y': [410, 420, 420, 425]
})
# Dataset 7: Wieloton 400 Hz, 10 (4000 Hz), 3 składowe
# Starting x value is 4000 Hz
datasets_400Hz.append({
'name': '400 Hz, 10 (4000 Hz), 3 składowe',
'x': [4000 + 0, 4000 + 100, 4000 + 200, 4000 + 300],
'y': [407, 419, 425, 425]
})
# Dataset 8: Wieloton 400 Hz, 10 (4000 Hz), 7 składowych
# Note: The last two 'Wynik [Hz]' values seem inconsistent.
# They are much lower than expected based on prior values.
# Assuming there might be typos, and they should be 2200 and 2400
# instead of 220 and 240.
datasets_400Hz.append({
'name': '400 Hz, 10 (4000 Hz), 7 składowych',
'x': [4000 + 0, 4000 + 100, 4000 + 200, 4000 + 300],
'y': [405, 410, 415, 415] # Original data
})
datasets_400Hz.append({
'name': 'Shouten - 7',
'x': [2800 + 0, 2800 + 100, 2800 + 200, 2800 + 300],
'y': [400, 414, 428, 443]
})
datasets_400Hz.append({
'name': 'Shouten - 10',
'x': [4000 + 0, 4000 + 100, 4000 + 200, 4000 + 300],
'y': [400, 410, 420, 430] # Original data
})
# Plot the data for 200 Hz
plt.figure(figsize=(12, 8))
for dataset in datasets_200Hz:
if 'Shouten' in dataset['name']:
plt.plot(dataset['x'], dataset['y'], marker='s', color='red', label=dataset['name']) # Shouten datasets
else:
plt.plot(dataset['x'], dataset['y'], marker='o', label=dataset['name']) # Other datasets
plt.xlabel('Frequency [Hz]')
plt.ylabel('Result [Hz]')
plt.title('Combined Graph of Results for 200 Hz')
plt.legend()
plt.grid(True)
plt.savefig('results_200Hz.png') # Save the plot
plt.show()
# Plot the data for 400 Hz
plt.figure(figsize=(12, 8))
for dataset in datasets_400Hz:
if 'Shouten' in dataset['name']:
plt.plot(dataset['x'], dataset['y'], marker='s', color='red', label=dataset['name']) # Shouten datasets
else:
plt.plot(dataset['x'], dataset['y'], marker='o', label=dataset['name']) # Other datasets
plt.xlabel('Frequency [Hz]')
plt.ylabel('Result [Hz]')
plt.title('Combined Graph of Results for 400 Hz')
plt.legend()
plt.grid(True)
plt.savefig('results_400Hz.png') # Save the plot
plt.show()

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View File

@ -0,0 +1,136 @@
import matplotlib.pyplot as plt
# Values 1
x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
y1 = [33.2, 35.48, 27.67, 19.41, 15.3, 15.44, 13.59]
# Values 2
x2 = [0.4, 0.5, 0.6, 0.7]
y2 = [13.29, 11.25, 12.55, 13.26]
# Values 3
x3 = [0.4, 0.5, 0.6, 0.7]
y3 = [22.06, 15.48, 18.74, 17.71]
# Create the plot
plt.figure(figsize=(10, 6))
# Plot each line with different styles
plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='symetrycznie 500 Hz')
plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='asymetrycznie 550 Hz')
plt.plot(x3, y3, marker='^', linestyle='-.', color='red', label='asymetrycznie 450 Hz')
# Add labels and title
plt.xlabel('parametr g', fontsize=40)
plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40)
plt.title('500 Hz', fontsize=48)
# Add a legend
plt.legend(fontsize=32)
# Optional: Add gridlines
plt.grid(True)
plt.xticks(fontsize=32)
plt.yticks(fontsize=32)
# Display the plot
plt.show()
# Values 1
x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
y1 = [33.06, 35.28, 23.33, 17.14, 14.33, 10.01, 4.43]
# Values 2
x2 = [0.4, 0.5, 0.6, 0.7]
y2 = [15.22, 8.16, 6.45, 6.27]
# Values 3
x3 = [0.4, 0.5, 0.6, 0.7]
y3 = [13.0, 13.06, 7.8, 1.7]
# Create the plot
plt.figure(figsize=(10, 6))
# Plot each line with different styles
plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='symetrycznie 1500 Hz')
plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='asymetrycznie 1650 Hz')
plt.plot(x3, y3, marker='^', linestyle='-.', color='red', label='asymetrycznie 1350 Hz')
# Add labels and title
plt.xlabel('parametr g', fontsize=40)
plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40)
plt.title('1500 Hz', fontsize=48)
# Add a legend
plt.legend(fontsize=32)
# Optional: Add gridlines
plt.grid(True)
plt.xticks(fontsize=32)
plt.yticks(fontsize=32)
# Display the plot
plt.show()
# Values 1
x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
y1 = [33.2, 35.48, 27.67, 19.41, 15.3, 15.44, 13.59]
# Values 2
x2 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
y2 = [33.06, 35.28, 23.33, 17.14, 14.33, 10.01, 4.43]
# Create the plot
plt.figure(figsize=(10, 6))
# Plot each line with different styles
plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='symetrycznie 500 Hz')
plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='symetrycznie 1500 Hz')
# Add labels and title
plt.xlabel('parametr g', fontsize=40)
plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40)
plt.title('500 Hz vs 1500 Hz', fontsize=48)
# Add a legend
plt.legend(fontsize=32)
# Optional: Add gridlines
plt.grid(True)
plt.xticks(fontsize=32)
plt.yticks(fontsize=32)
# Display the plot
plt.show()
# Values 1
x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
y1 = [33.2, 35.48, 27.67, 19.41, 15.3, 15.44, 13.59]
# Values 2
x2 = [0.005, 0.01, 0.02, 0.05, 0.1, 0.3]
y2 = [81.59, 60.08, 68.48, 58.77, 53.6, 55.46]
# Create the plot
plt.figure(figsize=(10, 6))
# Plot each line with different styles
plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='pasmowy 500 Hz')
plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='pasmowo-zaporowy 500 Hz')
# Add labels and title
plt.xlabel('parametr g', fontsize=40)
plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40)
plt.title('Porownanie szum pasmowy vs szum pasmowo zaporowy dla 500 Hz', fontsize=48)
# Add a legend
plt.legend(fontsize=32)
# Optional: Add gridlines
plt.grid(True)
plt.xticks(fontsize=32)
plt.yticks(fontsize=32)
# Display the plot
plt.show()

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

View File

@ -0,0 +1,42 @@
import matplotlib.pyplot as plt
import numpy as np
# Data
delta_t = np.array([500, 200, 100, 50, 20, 10, 5, 3])
ton_60_db = [60, 60, 59, 58, 50, 46, 42, 39]
szum_20_db_per_hz = [20, 19, 18, 16, 12, 11, 8, 8]
ton_60_db_minus = [ton - 60 for ton in ton_60_db]
szum_20_db_per_hz_minus = [szum - 20 for szum in szum_20_db_per_hz]
# Theoretical lines
delta_t_line = np.logspace(np.log10(3), np.log10(500), 100)
log_delta_t_line = np.log10(delta_t_line)
# Equations in terms of log(delta_t)
# For Broadband Noise: y = 10 * log10(delta_t) - 25
y_broadband_line = 10 * log_delta_t_line - 25
# For Pure Tone: y = 9 * log10(delta_t) - 19
y_pure_tone_line = 9 * log_delta_t_line - 19
# Plotting
plt.figure(figsize=(10, 6))
# Plot the experimental data
plt.semilogx(delta_t, ton_60_db_minus, 'o', label='Ton eksperymentalny 60 dB')
plt.semilogx(delta_t, szum_20_db_per_hz_minus, 's', label='Szum eksperymentalny 20 dB/Hz')
# Plot the theoretical lines
plt.semilogx(delta_t_line, y_pure_tone_line, label='Ton - krzywa teoretyczna')
plt.semilogx(delta_t_line, y_broadband_line, label='Szum - krzywa teoereyczna')
plt.xlabel('Czas trwania sygnału [ms]', fontsize=40)
plt.ylabel('Poziom względny głośności [dB]', fontsize=40)
plt.title('Głośnośc vs czas', fontsize=48)
plt.legend(fontsize=32)
plt.grid(True, which="both", ls="--")
plt.xticks(fontsize=32)
plt.yticks(fontsize=32)
plt.show()

View File

@ -0,0 +1,24 @@
import matplotlib.pyplot as plt
import numpy as np
# Data (decreasing values)
bandwidth = np.array([40, 100, 160, 300, 600, 1000])
detection_threshold_600Hz = np.array([50, 30, 20, 12, 10, 8])
detection_threshold_2200Hz = np.array([40, 25, 18, 10, 8, 7])
detection_threshold_4400Hz = np.array([35, 22, 15, 9, 7, 6])
# Plot
plt.figure(figsize=(10, 6))
plt.xscale('log')
plt.scatter(bandwidth, detection_threshold_600Hz, label='600 Hz', marker='o')
plt.scatter(bandwidth, detection_threshold_2200Hz, label='2200 Hz', marker='^')
plt.scatter(bandwidth, detection_threshold_4400Hz, label='4400 Hz', marker='s')
plt.xlabel('Szerokość pasma [Hz]')
plt.ylabel('Próg detekcji interwału ciszy [ms]')
plt.title('Górna częstotliwość odcięcia (GCO)')
plt.legend(title='GCO')
plt.grid(True)
plt.show()

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>