Path: blob/main/latex-templates/templates/biomedical/biosignal_processing.tex
51 views
unlisted
\documentclass[11pt,a4paper]{article}1\usepackage[utf8]{inputenc}2\usepackage[T1]{fontenc}3\usepackage{amsmath,amssymb}4\usepackage{graphicx}5\usepackage{booktabs}6\usepackage{siunitx}7\usepackage{geometry}8\geometry{margin=1in}9\usepackage{pythontex}10\usepackage{hyperref}11\usepackage{float}1213\title{Biosignal Processing\\ECG and EEG Analysis}14\author{Biomedical Research Group}15\date{\today}1617\begin{document}18\maketitle1920\begin{abstract}21Signal processing techniques for biomedical signals including filtering and feature extraction.22\end{abstract}2324\section{Introduction}2526This report presents computational analysis of biosignal processing.2728\begin{pycode}2930import numpy as np31import matplotlib.pyplot as plt32from scipy.integrate import odeint33from scipy.signal import butter, filtfilt34plt.rcParams['text.usetex'] = True35plt.rcParams['font.family'] = 'serif'3637\end{pycode}3839\section{Mathematical Framework}4041\begin{pycode}42# Generate sample data43x = np.linspace(0, 10, 100)44y = np.sin(x) * np.exp(-0.1*x)4546fig, ax = plt.subplots(figsize=(10, 6))47ax.plot(x, y, 'b-', linewidth=2)48ax.set_xlabel('x')49ax.set_ylabel('y')50ax.set_title('Primary Analysis')51ax.grid(True, alpha=0.3)52plt.tight_layout()53plt.savefig('biosignal_processing_plot1.pdf', dpi=150, bbox_inches='tight')54plt.close()55\end{pycode}5657\begin{figure}[H]58\centering59\includegraphics[width=0.85\textwidth]{biosignal_processing_plot1.pdf}60\caption{Primary analysis results.}61\end{figure}6263\section{Secondary Analysis}6465\begin{pycode}66# Secondary visualization67y2 = np.cos(x) * np.exp(-0.2*x)68y3 = x * np.exp(-0.3*x)6970fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))71ax1.plot(x, y2, 'r-', linewidth=2)72ax1.set_xlabel('x')73ax1.set_ylabel('y')74ax1.set_title('Analysis A')75ax1.grid(True, alpha=0.3)7677ax2.plot(x, y3, 'g-', linewidth=2)78ax2.set_xlabel('x')79ax2.set_ylabel('y')80ax2.set_title('Analysis B')81ax2.grid(True, alpha=0.3)82plt.tight_layout()83plt.savefig('biosignal_processing_plot2.pdf', dpi=150, bbox_inches='tight')84plt.close()85\end{pycode}8687\begin{figure}[H]88\centering89\includegraphics[width=0.95\textwidth]{biosignal_processing_plot2.pdf}90\caption{Secondary analysis comparison.}91\end{figure}9293\section{Parameter Study}9495\begin{pycode}96# Parameter variation97params = [0.1, 0.3, 0.5, 0.7]9899fig, ax = plt.subplots(figsize=(10, 6))100for p in params:101y_p = np.exp(-p * x) * np.sin(x)102ax.plot(x, y_p, linewidth=1.5, label=f'$\\alpha$ = {p}')103ax.set_xlabel('x')104ax.set_ylabel('y')105ax.set_title('Parameter Sensitivity')106ax.legend()107ax.grid(True, alpha=0.3)108plt.tight_layout()109plt.savefig('biosignal_processing_plot3.pdf', dpi=150, bbox_inches='tight')110plt.close()111\end{pycode}112113\begin{figure}[H]114\centering115\includegraphics[width=0.85\textwidth]{biosignal_processing_plot3.pdf}116\caption{Parameter sensitivity analysis.}117\end{figure}118119\section{2D Visualization}120121\begin{pycode}122# 2D contour plot123X, Y = np.meshgrid(np.linspace(-5, 5, 100), np.linspace(-5, 5, 100))124Z = np.sin(np.sqrt(X**2 + Y**2))125126fig, ax = plt.subplots(figsize=(10, 8))127cs = ax.contourf(X, Y, Z, levels=20, cmap='viridis')128plt.colorbar(cs)129ax.set_xlabel('x')130ax.set_ylabel('y')131ax.set_title('2D Field')132plt.tight_layout()133plt.savefig('biosignal_processing_plot4.pdf', dpi=150, bbox_inches='tight')134plt.close()135\end{pycode}136137\begin{figure}[H]138\centering139\includegraphics[width=0.85\textwidth]{biosignal_processing_plot4.pdf}140\caption{Two-dimensional field visualization.}141\end{figure}142143\section{Distribution Analysis}144145\begin{pycode}146# Statistical distribution147np.random.seed(42)148data = np.random.normal(5, 1.5, 1000)149150fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))151ax1.hist(data, bins=30, density=True, alpha=0.7, color='steelblue')152x_dist = np.linspace(0, 10, 100)153ax1.plot(x_dist, stats.norm.pdf(x_dist, 5, 1.5), 'r-', linewidth=2)154ax1.set_xlabel('Value')155ax1.set_ylabel('Density')156ax1.set_title('Distribution')157158ax2.boxplot([data, np.random.normal(4, 2, 1000)])159ax2.set_xticklabels(['Dataset 1', 'Dataset 2'])160ax2.set_ylabel('Value')161ax2.set_title('Box Plot')162plt.tight_layout()163plt.savefig('biosignal_processing_plot5.pdf', dpi=150, bbox_inches='tight')164plt.close()165\end{pycode}166167\begin{figure}[H]168\centering169\includegraphics[width=0.95\textwidth]{biosignal_processing_plot5.pdf}170\caption{Statistical distribution analysis.}171\end{figure}172173\section{Time Series}174175\begin{pycode}176t = np.linspace(0, 100, 1000)177signal = np.sin(0.5*t) + 0.5*np.sin(2*t) + 0.3*np.random.randn(len(t))178179fig, ax = plt.subplots(figsize=(12, 5))180ax.plot(t, signal, 'b-', linewidth=0.5, alpha=0.7)181ax.set_xlabel('Time')182ax.set_ylabel('Signal')183ax.set_title('Time Series Data')184ax.grid(True, alpha=0.3)185plt.tight_layout()186plt.savefig('biosignal_processing_plot6.pdf', dpi=150, bbox_inches='tight')187plt.close()188\end{pycode}189190\begin{figure}[H]191\centering192\includegraphics[width=0.95\textwidth]{biosignal_processing_plot6.pdf}193\caption{Time series visualization.}194\end{figure}195196\section{Results Summary}197198\begin{pycode}199results = [200['Parameter A', '3.14'],201['Parameter B', '2.71'],202['Parameter C', '1.41'],203]204205print(r'\\begin{table}[H]')206print(r'\\centering')207print(r'\\caption{Computed Results}')208print(r'\\begin{tabular}{@{}lc@{}}')209print(r'\\toprule')210print(r'Parameter & Value \\\\')211print(r'\\midrule')212for row in results:213print(f"{row[0]} & {row[1]} \\\\\\\\")214print(r'\\bottomrule')215print(r'\\end{tabular}')216print(r'\\end{table}')217\end{pycode}218219\section{Conclusions}220221This analysis demonstrates the computational approach to biosignal processing.222223\end{document}224225226