歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

基於Android的實時音頻頻譜儀

前一段實習,本來打算做c++,到了公司發現沒啥項目,於是乎轉行做了Android,寫的第一個程序竟然要我處理信號,咱可是一心搞計算機的,沒接觸過信號的東西,什麼都沒接觸過,於是乎, 找各種朋友,各種熟人,現在想想,專注語言是不對的,語言就是一工具,關鍵還是業務,算法。好了,廢話不多說,上程序,注釋都很詳細,應該能看懂。

分析聲音,其實很簡單,就是運用傅裡葉變換,將聲音信號由時域轉化到頻域(程序用的是快速傅裡葉變換,比較簡單),為啥要這樣,好處多多,不細講,公司裡的用處是為了檢測手機發出聲音的信號所在的頻率集中范圍。

基於Android的實時音頻頻譜儀源碼下載地址:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/1月/17/基於Android的實時音頻頻譜儀/

第一個類,復數的計算,用到加減乘,很簡單。

  1. package com.mobao360.sunshine;  
  2. //復數的加減乘運算  
  3. public class Complex {  
  4.     public double real;  
  5.     public double image;  
  6.       
  7.     //三個構造函數  
  8.     public Complex() {  
  9.         // TODO Auto-generated constructor stub  
  10.         this.real = 0;  
  11.         this.image = 0;  
  12.     }  
  13.   
  14.     public Complex(double real, double image){  
  15.         this.real = real;  
  16.         this.image = image;  
  17.     }  
  18.       
  19.     public Complex(int real, int image) {  
  20.         Integer integer = real;  
  21.         this.real = integer.floatValue();  
  22.         integer = image;  
  23.         this.image = integer.floatValue();  
  24.     }  
  25.       
  26.     public Complex(double real) {  
  27.         this.real = real;  
  28.         this.image = 0;  
  29.     }  
  30.     //乘法  
  31.     public Complex cc(Complex complex) {  
  32.         Complex tmpComplex = new Complex();  
  33.         tmpComplex.real = this.real * complex.real - this.image * complex.image;  
  34.         tmpComplex.image = this.real * complex.image + this.image * complex.real;  
  35.         return tmpComplex;  
  36.     }  
  37.     //加法  
  38.     public Complex sum(Complex complex) {  
  39.         Complex tmpComplex = new Complex();  
  40.         tmpComplex.real = this.real + complex.real;  
  41.         tmpComplex.image = this.image + complex.image;  
  42.         return tmpComplex;  
  43.     }  
  44.     //減法  
  45.     public Complex cut(Complex complex) {  
  46.         Complex tmpComplex = new Complex();  
  47.         tmpComplex.real = this.real - complex.real;  
  48.         tmpComplex.image = this.image - complex.image;  
  49.         return tmpComplex;  
  50.     }  
  51.     //獲得一個復數的值  
  52.     public int getIntValue(){  
  53.         int ret = 0;  
  54.         ret = (int) Math.round(Math.sqrt(this.real*this.real - this.image*this.image));  
  55.         return ret;  
  56.     }  
  57. }  
Copyright © Linux教程網 All Rights Reserved