Skip to content

Instantly share code, notes, and snippets.

@yuasatakayuki
Created July 14, 2016 12:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yuasatakayuki/9f95aa0f97ae2b899584b45a42005050 to your computer and use it in GitHub Desktop.
Save yuasatakayuki/9f95aa0f97ae2b899584b45a42005050 to your computer and use it in GitHub Desktop.
Numpy FFT sample (4-bit digitized sin function)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maximum-power bin : 1293\n",
"Maximum-power frequency : 1499580.084\n"
]
},
{
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x111fa46d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Constants\n",
"dataFile = \"sin.text\"\n",
"samplingFreq = 5.8e6\n",
"samplingPeriod = 1/samplingFreq\n",
"\n",
"# Read data\n",
"# 数字が文字として並んだテキストファイルを読み込む。\n",
"# sin.textは、sinを4ビットでサンプルした値が5000個並んだデータ。\n",
"dataString = open(dataFile).read()\n",
"n = len(dataString)\n",
"d = np.zeros(n)\n",
"for i in np.arange(n-1):\n",
" d[i]=int(dataString[i])\n",
"\n",
"# Subtract the DC component\n",
"d = d - np.mean(d)\n",
"\n",
"# FFT - X axis\n",
"fftfreq = np.fft.fftfreq(n, samplingPeriod)\n",
"\n",
"# FFT - Y axis\n",
"fft = np.fft.fft(d)[0:n/2]\n",
"fftmag = np.abs(fft)\n",
"\n",
"# FFT - Plot\n",
"fig, panel = plt.subplots(1,1)\n",
"panel.set_xlim(0, fftfreq[:len(fftmag)][-1])\n",
"# panel.set_ylim(1e-1,1e4)\n",
"# panel.set_yscale(\"log\")\n",
"panel.plot(fftfreq[:len(fftmag)], fftmag)\n",
"\n",
"# Save figure\n",
"fig.savefig(\"fft_sample.png\", dpi=200)\n",
"\n",
"# Maximum power bin and frequency\n",
"binIndexMaxPower = np.argmax(fftmag)\n",
"freqResolution = samplingFreq / n\n",
"freqMaxPower = binIndexMaxPower*freqResolution\n",
"print \"Maximum-power bin : {:d}\".format(binIndexMaxPower)\n",
"print \"Maximum-power frequency : {:.3f}\".format(freqMaxPower)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
23102310230033003300320132013202310231033003300330132013201310231023003300330032013201320231023103300330033013201320131023102300330033003201320132023102310330033003301320132013102310230033003300320132013202310231033003300330132013201310231023003300330032013201320231023103300330033013201320131023102300330033003201320132023102310330033003301320132013102310230033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003300320132013102310231033003300330132013202310231023003300330032013201310231023103300330033013201320231023102300330033003201320131023102310330033003301320132023102310230033003300320132013102310231033003300330132013202310231023003300330032013201310231023103300330033013201320231023102300330033003201320131023102310330033003301320132023102310230033003300320132013202310231033003300330132013201310231023003300330032013201320231023103300330033013201320131023102300330033003201320132023102310330033003301320132013102310230033003300320132013202310231033003300330132013201310231023003300330032013201320231023103300330033013201320131023102300330033003201320132023102310330033003301320132013102310230033003300320132013202310231033003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300320132013202310231023003300330132013201310231023103300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310231033003300330132013202310231023003300330032013201310231023103300330033013201320231023102300330033003201320131023102310330033003301320132023102310230033003300320132013102310231033003300330132013202310231023003300330032013201310231023103300330033013201320231023102300330033003201320131023102310330033003301320132023102310230033003300320132013102310231033003300330132013201310231023003300330032013201320231023103300330033013201320131023102300330033003201320132023102310330033003301320132013102310230033003300320132013202310231033003300330132013201310231023003300330032013201320231023103300330033013201320131023102300330033003201320132023102310330033003301320132013102310230033003300320132013202310231033003300330132013201310231023003300330032013201320231023102300330033013201320131023102310330033003201320132023102310230033003301320132013102310
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment