Skip to content

Instantly share code, notes, and snippets.

@Adizlois
Created July 28, 2017 15:28
Show Gist options
  • Save Adizlois/0d2c2dc9147e75532c3feeaa6b235b8f to your computer and use it in GitHub Desktop.
Save Adizlois/0d2c2dc9147e75532c3feeaa6b235b8f to your computer and use it in GitHub Desktop.
Lowpass filter
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"512\n",
"2.06641460513\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xee90080>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"from scipy import signal\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"bpass = signal.remez(130,[0, 1./256, 1./64, 0.5], [2., 0])\n",
"freq, response = signal.freqz(bpass)\n",
"ampl = np.abs(response)\n",
"print len(ampl)\n",
"print max(ampl)\n",
"\n",
"\n",
"fig = plt.figure()\n",
"ax1 = fig.add_subplot(111)\n",
"ax1.semilogy(freq/(2*np.pi), ampl, 'b-') # freq in Hz\n",
"plt.axvline(x=1/256.)\n",
"plt.axvline(x=1/64.)\n",
"\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment