Exercises
ex-sp-ch19-01
EasyCreate a Pandas DataFrame from a dictionary of BER results for
3 modulations at 5 SNR values. Display head(), describe(),
and dtypes.
ex-sp-ch19-02
EasyUse groupby to compute the mean and standard deviation of BER
grouped by modulation type.
ex-sp-ch19-03
EasyCreate a pivot table showing BER as a function of modulation (rows) and SNR (columns).
ex-sp-ch19-04
EasyUse %timeit to compare the speed of vectorized operations
vs. apply vs. iterrows on a 10000-row DataFrame.
ex-sp-ch19-05
EasyCreate an ipywidgets slider that controls the frequency of a plotted sinusoid and updates the plot interactively.
ex-sp-ch19-06
MediumLoad a CSV of simulation results, clean the data (handle NaN, convert types), filter to SNR > 5 dB, and create a summary table grouped by modulation and channel.
ex-sp-ch19-07
MediumMerge a results DataFrame with a configuration DataFrame on
a shared config_id column. Group by antenna count and
modulation to find the best BER configuration.
ex-sp-ch19-08
MediumSet up jupytext pairing for a notebook. Demonstrate that
editing the .py file updates the .ipynb and vice versa.
ex-sp-ch19-09
MediumUse papermill to run a BER analysis notebook with 5 different SNR values, collecting results from each execution.
ex-sp-ch19-10
MediumCreate a well-structured analysis notebook following the analysis notebook pattern: title, imports, config, data loading, 3 analysis sections, and conclusions.
ex-sp-ch19-11
HardBuild an interactive dashboard in a notebook using ipywidgets that lets users select modulation, SNR range, and channel model, then displays BER curves, constellation diagrams, and throughput.
ex-sp-ch19-12
HardCreate a Pandas pipeline that reads multiple CSV files from a simulation sweep (one per seed), concatenates them, computes confidence intervals, and exports a publication-ready LaTeX table.
ex-sp-ch19-13
HardExtract reusable functions from a messy 200-line notebook into a proper Python module. Refactor the notebook to import from the module and test that it runs cleanly with "Restart & Run All."
ex-sp-ch19-14
ChallengeBuild a complete analysis pipeline: generate BER data for 5 modulations x 4 channels x 10 seeds using papermill, concatenate results with Pandas, generate publication figures and LaTeX tables, and produce a final HTML report with nbconvert.
ex-sp-ch19-15
ChallengeSet up a GitHub Actions CI pipeline that runs your analysis notebook with papermill, checks that all cells execute without error, and publishes the HTML output as an artifact.