Skip to content

Instantly share code, notes, and snippets.

@dela3499
Created November 6, 2016 06:31
Show Gist options
  • Save dela3499/4a744ce510ad1683904f47de3627776b to your computer and use it in GitHub Desktop.
Save dela3499/4a744ce510ad1683904f47de3627776b to your computer and use it in GitHub Desktop.
Plotting a square wave in Python
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"from IPython.html.widgets import interact, fixed\n",
"import IPython.html.widgets as widgets\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"figsize = lambda w, h: plt.figure(figsize = (w, h))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Suppose you have samples from a square wave. "
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"np.random.seed(1002342)\n",
"nSamples = 10\n",
"sampleTimes = np.linspace(0,1,nSamples)\n",
"sampleValues = np.random.random(nSamples) > 0.3 # boolean values"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n2nKDMDOztv4/ZGliml73zWgAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdae67c3750>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(sampleTimes, sampleValues, '-ro')\n",
"plt.xlabel(\"Time\")\n",
"plt.ylabel(\"Sample Value\")\n",
"plt.ylim(-0.1, 1.1);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This doesn't look like a square wave. Here's a way to fix this. "
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def interpolateSquare(x,y,xInterp):\n",
" def getValue(x,y,xi):\n",
" try: \n",
" return y[x < xi][-1]\n",
" except: \n",
" return 0 \n",
" return [getValue(x,y,xi) for xi in xInterp] "
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"nInterpolatedSamples = 1000\n",
"newSampleTimes = np.linspace(0,1, nInterpolatedSamples)\n",
"newSampleValues = interpolateSquare(sampleTimes, sampleValues, newSampleTimes)"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdae6a26a10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(sampleTimes, sampleValues, 'ro')\n",
"plt.plot(newSampleTimes, newSampleValues, '-k')\n",
"plt.xlabel(\"Time\")\n",
"plt.ylabel(\"Sample Value\")\n",
"plt.ylim(-0.1, 1.1);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [Root]",
"language": "python",
"name": "Python [Root]"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment