Skip to content

Instantly share code, notes, and snippets.

@vinnitu
Created October 26, 2021 08:02
Show Gist options
  • Save vinnitu/9cdb196523a6a74b2d4dc73b401e0c1b to your computer and use it in GitHub Desktop.
Save vinnitu/9cdb196523a6a74b2d4dc73b401e0c1b to your computer and use it in GitHub Desktop.
450.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "450.ipynb",
"provenance": [],
"authorship_tag": "ABX9TyOTNEZI3B+YEsKEi7FyeKD/",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/vinnitu/9cdb196523a6a74b2d4dc73b401e0c1b/450.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "IU9mhtE5gEPJ"
},
"source": [
"SAMPLE_RATE = 8000\n",
"signal = [-1312, -4992, -7808, -9984, -10496, -9984, -8448, -5760, -2112, 1760, 4992, 7808, 9472, 10496, 9472, 7808, 4992, 1760, -2112, -5760, -8448, -9984, -10496, -9984, -7808, -4992, -1312, 2496, 5760, 8448, 9984, 10496, 9472, 7296, 4224, 1008, -2880, -6272, -8960, -10496, -10496, -9472, -7296, -4224, -528, 3264, 6528, 8960, 9984, 9984, 8960, 6784, 3776, -264, -3904, -7040, -9472, -10496, -10496, -8960, -6784, -3392, 504, 4032, 7040, 9472, 10496, 9984, 8448, 6016, 2752, -1056, -4480, -7552, -9472, -10496, -9984, -8448, -6016, -2624, 1248, 4736, 7552, 9472, 10496, 9984, 8064, 5504, 2016, -1824, -5248, -8064, -9984, -10496, -9984, -8064, -5248, -1824, 2016, 5504, 8064, 9984, 10496, 9472, 7552, 4736, 1248, -2624, -6016, -8448, -9984, -10496, -9472, -7552, -4480, -1056, 2752, 6016, 8448, 9984, 10496, 9472, 7040, 4032, 504, -3392, -6784, -8960, -10496, -10496, -9472, -7040, -3904, 248, 3776, 6784, 8960, 9984, 9984, 8960, 6528, 3264, -528, -4224, -7296, -9472, -10496, -10496, -8960, -6272, -2880, 1008, 4224, 7296, 9472, 10496, 9984, 8448, 5760, 2496, -1312, -4992, -7808, -9984, -10496, -9984, -8448, -5760, -2112, 1760, 4992, 7808, 9472, 10496, 9472, 7808, 4992, 1760, -2112, -5760, -8448, -9984, -10496, -9984, -7808, -4992, -1312, 2496, 5760, 8448, 9984, 10496, 9472, 7296, 4224, 1008, -2880, -6272, -8960, -10496, -10496, -9472, -7296, -4224, -528, 3264, 6528, 8960, 9984, 9984, 8960, 6784, 3776, -264, -3904, -7040, -9472, -10496, -10496, -8960, -6784, -3392, 504, 4032, 7040, 9472, 10496, 9984, 8448, 6016, 2752, -1056, -4480, -7552, -9472, -10496, -9984, -8448, -6016, -2624, 1248, 4736, 7552, 9472, 10496, 9984, 8064, 5504, 2016, -1824, -5248, -8064, -9984, -10496, -9984, -8064]\n"
],
"execution_count": 46,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "k8dFf72CiqWT"
},
"source": [
"import numpy as np\n",
"from numpy.fft import fft, ifft\n",
"import matplotlib.pyplot as plt\n"
],
"execution_count": 47,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "q2Nq-xyxivyR",
"outputId": "b48d450e-8626-4b9f-c3ff-4a40dd0a4933"
},
"source": [
"plt.plot(signal)\n",
"plt.show()"
],
"execution_count": 48,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "3JEjcGANi9tQ"
},
"source": [
"signal = signal * np.hamming(len(signal))"
],
"execution_count": 49,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "L_u8tuEMjSOf"
},
"source": [
"corr = np.real(ifft(np.abs(fft(signal)**2)))"
],
"execution_count": 50,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "cctwA3qhlaEP"
},
"source": [
"corr = corr[:len(corr) // 2]"
],
"execution_count": 52,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 276
},
"id": "MxUemqwnlg1r",
"outputId": "3aa60687-ab31-4d87-ec0b-4151fd6ee837"
},
"source": [
"plt.plot(corr)\n",
"plt.show()"
],
"execution_count": 53,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "-I9yb8jWl2yK"
},
"source": [
"first_min_index = np.argmin(corr)\n",
"second_max_index = np.argmax(corr[first_min_index:])\n",
"period = 2 * second_max_index / SAMPLE_RATE\n",
"frequency = 1 / period\n"
],
"execution_count": 56,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "GektwBC8mor3",
"outputId": "7e59fddd-35ae-45e2-f188-78e0dae73f91"
},
"source": [
"frequency"
],
"execution_count": 57,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"444.44444444444446"
]
},
"metadata": {},
"execution_count": 57
}
]
}
]
}
@vinnitu
Copy link
Author

vinnitu commented Oct 26, 2021

image

here value the same peak is 450Hz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment