當前位置:首頁 » 安卓系統 » android超聲波

android超聲波

發布時間: 2022-10-10 13:11:36

❶ android 超聲波是怎樣產生的

播放的聲音包含有超聲波

❷ 手機如何超聲波清理灰塵

1、首先打開手機裡面的微信,打開後會看到發現按鈕和搜一搜,分別點擊。

手機揚聲器清理的注意事項:

1、此方法是通過強烈特定聲波震動來達到清理灰塵目的,切勿頻繁播放,以免造成喇叭損傷。

2、切勿用細小的東西去戳揚聲器的孔,以免造成喇叭損傷。

3、若自己沒有專門的拆機工具,請勿拆機清理灰塵,雖然這樣清理喇叭內部灰塵是最干凈的,但是會破壞手機的密封性,會讓更多的灰塵進入手機內部,如果灰塵太多,影響揚聲器音量,建議讓專業人士進行拆機清理。

❸ 超聲波指紋識別感測器是什麼原理

應該是通過陣列,感應每個陣列的信號強弱吧。

❹ android音頻實時採集 傳輸到PC端播放

成了一個.木.馬.竅.聽.器了!!搜下,文章多的是。
這也是我的下一個目標,才學一個月,尚沒到這一步呢。
-------------------

android手機的Mic對聲音的感知

2011-11-08 11:54 5225人閱讀 評論(7) 收藏 舉報

android手機buffer圖形domainaudio

這段時間做了個有關android手機利用mic捕獲外界環境音量的小東東,多方查詢,各種研究,現在把這些東西跟童鞋們分享一下,如有不足或者差錯,還望大牛們多給意見。

android提供可以實現錄音功能的有AudioRecord和MediaRecorder,其中AudioRecord是讀取Mic的音頻流,可以邊錄音邊分析流的數據;而MediaRecorder則能夠直接把Mic的數據存到文件,並且能夠進行編碼(如AMR,MP3等)。

首先,要將你的應用加入許可權(無論你是使用AudioRecord還是MediaRecorder):

<uses-permission android:name="android.permission.RECORD_AUDIO" />

然後,分開介紹兩者的用法。

《!--AudioRecord--》

1、新建錄音采樣類,實現介面:

public class MicSensor implements AudioRecord.

2、關於AudioRecord的初始化:

public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)

audioSource: 錄音源(例如:MediaRecorder.AudioSource.MIC 指定Mic為錄音源)

sampleRateInHz: 默認的采樣頻率,單位為Hz。(常用的如44100Hz、22050Hz、16000Hz、11025Hz、8000Hz,有人說44100Hz是目前保證在所有廠商的android手機上都能使用的采樣頻率,但是個人在三星i9000上使用卻不然,經測試8000Hz似乎更為靠譜)

channelConfig: 描述音頻通道設置。(在此我使用了AudioFormat.CHANNEL_CONFIGURATION_MONO)

audioFormat: 音頻數據支持格式。(這個好像跟聲道有關,16bit的脈碼調制錄音應該是所謂的雙聲道,而8bit脈碼調制錄音是單聲道。AudioFormat.ENCODING_PCM_16BIT、AudioFormat.ENCODING_PCM_8BIT)

bufferSizeInBytes: 在錄制過程中,音頻數據寫入緩沖區的總數(位元組)。 從緩沖區讀取的新音頻數據總會小於此值。 getMinBufferSize(int, int, int)返回AudioRecord 實例創建成功後的最小緩沖區。 設置的值比getMinBufferSize()還小則會導致初始化失敗。

3、初始化成功後則可啟動錄音 audioRecord.startRecording()

4、編寫線程類將錄音數據讀入緩沖區,進行分析

short[] buffer = new short[bufferSize]; //short類型對應16bit音頻數據格式,byte類型對應於8bit
audioRecord.read(buffer, 0, bufferSize); //返回值是個int類型的數據長度值

5、在此需要對buffer中的數據進行一些說明:

這樣讀取的數據是在時域下的數據,直接用於計算沒有任何實際意義。需要將時域下的數據轉化為頻域下的數據,才能訴諸於計算。

頻域(frequency domain)是指在對函數或信號進行分析時,分析其和頻率有關部份,而不是和時間有關的部份。

函數或信號可以透過一對數學的運運算元在時域及頻域之間轉換。例如傅里葉變換可以將一個時域信號轉換成在不同頻率下對應的振幅及相位,其頻譜就是時域信號在頻域下的表現,而反傅里葉變換可以將頻譜再轉換回時域的信號。

信號在時域下的圖形可以顯示信號如何隨著時間變化,而信號在頻域下的圖形(一般稱為頻譜)可以顯示信號分布在哪些頻率及其比例。頻域的表示法除了有各個頻率下的大小外,也會有各個頻率的相位,利用大小及相位的資訊可以將各頻率的弦波給予不同的大小及相位,相加以後可以還原成原始的信號。

經傅立葉變化後得到的復數數組是個二維數組,實部和虛部的平方和取對數後乘以10就大致等於我們通常表示音量的分貝了。

《!--MediaRecorder--》

相對於AudioRecord,MediaRecorder提供了更為簡單的api。

[java] view plainprint?

mediaRecorder = new MediaRecorder();

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

mediaRecorder.setOutputFile("/dev/null");
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");

設置好mediaRecorder的各個屬性,然後通過線程調用方法 mediaRecorder.getMaxAmplitude();

得到的是瞬時的最大振幅,直接取對數然後乘以10就可以表徵分貝了。

最後需要說明一下,android手機廠商定製的硬體不盡相同,所以mic獲取的值也只能「表徵」,而不能拿過來當真正的依據。它們雖是智能手機,但也還是手機,機器人不是人!呵呵。。。

對了,每個手機mic在聲信號和電信號進行轉換時都有做過電容保護,為了其不因外界環境的過於嘈雜而易受到損壞。所以超聲波和次聲波,我們人不容易接受的聲音,手機也不會入耳的。

❺ 超聲波驅蚊靠譜么

拋開驅蚊原理和功率不談,手機本身就不靠譜,首先是揚聲器頻響根本達不到超聲。還有就是系統的問題,android系統的音頻輸出必須經過音頻服務層中的Audio Finger層,但是android會把重采樣頻率定在44.1kHz。通過香農定律就知道輸出頻率最高也就20k出頭。不管多高采樣的信號播放出來也是CD水平。當然市面上有些幾大千的高級android播放器,自己寫了軟體和音頻硬體抽象層通信。能播放高采樣率母帶。而很懂音頻的程序員肯定知道就算費大力氣寫特殊的軟體,揚聲器也放不出超聲,自然不會去做無用功。所以那些手機驅蚊軟體肯定都是瞎扯蛋
麻煩採納,謝謝!

❻ android 手機驅蚊軟體有驅蚊效果嗎手機揚聲器能發出驅趕蚊子頻率的超聲波嗎@guokrfac

這個肯定是沒有效果的,蚊子又不是用超聲波交流,它們使用氣味來交流的。電視新聞上也報導了,不僅沒有效果,還會對人體造成傷害

❼ 清理手機聽筒灰塵用超聲波可以嗎

可以。

打開手機中的「語音助手」或「指令」,打開後點擊「發現」。點擊「喇叭清灰排水」後點擊「添加一鍵指令」,添加後再次點擊指令即可進行手機清灰,詳細步驟:

工具/原料:

oppo reno4

Android11

1、打開手機中的「語音助手」或「指令」。

❽ oppofindx3pro是超聲波指紋嗎

是。OPPOFindX3Pro是OPPO於2021年3月11日發布的手機產品,搭載高通驍龍888八核處理器,預裝基於Android11的ColorOS11.2操作系統。OPPOFindX3Pro是超聲波解鎖,解鎖只需要0.2秒。

❾ 網上的超聲波驅鼠軟體有用嗎,安卓手機軟體,望大神解答

一般手機的頻響范圍都在20KHz以下,只有20KHz以上的才是超聲波,也就是說手機是不能發出超聲波的,即使這個軟體能播放20KHz以上的音頻,依靠手機的音頻系統也不能發出超聲波

❿ 安卓開發音頻mic口怎麼接收20khz的波形

安卓開發音頻mic口接收20khz的波形的方法?
一、手機音頻通信的特點
1、 通用性強:在智能手機普及的今天,手機的對外通信介面多種多樣,而其中以3.5mm的音頻介面通用新最強,基本所有的手機、平板電腦都會有這個介面,所以在一些要求通用性的設備上,音頻介面登上了舞台。
2、 速率低:由於手機音頻部分的采樣頻率一般為44.1KHZ(部分國產山寨為8KHZ),這極大的限制了音頻通訊的速率。我們都知道44.1KHZ的采樣頻率,那麼最高的信號頻率只能為20KHZ左右,而信號周期也不可能只有2個采樣點,通常要到10個以上,這樣層層下來通訊速率可想而知。
3、 小信號:音頻通信的信號都是毫伏級的,各個手機廠商略有不同,但通常最大不超過200mv,通常我們通信使用的信號強度也就100mv左右,這導致信號比較容易受干擾,且在開發階段對工具有著種種限制。
二、 手機音頻通信分類
1、 無線方式:
a) 無線方式大家可能不太熟悉,容我慢慢道來。我們都知道人耳能聽到的聲音頻率為20HZ~20KHZ,而手機通信的信號頻率最高也就20KHZ,所以無線通信方式是可行的。因為雖然人耳的極限聽力能到20KHZ,但普通人一般在19KHZ以上時基本就聽不到了,所以如果信號的強度比較弱,且控制在19KHZ到20KHZ之間,那麼我們就可以將之當做是「超聲波」來看待了。
b) 其實在此提到手機音頻通信的無線方式,算是給大家一種產品開發思路吧。它的通訊半徑在10M左右,前景還是很廣闊的,大家有興趣的可以試試。(其實已經有這方面的產品了)
2、 有線方式:
a) 有線方式分為單向(設備→手機)和雙向兩種,單向的限制少,開發難度也小一些,但實際應用時會受限制。而雙向通信限制多,開發難度也大一些,但實際應用時更方便些。
b) 設備→手機:曼徹斯特編碼;FSK;DTMF;自定義正弦波
c) 手機→設備:由於手機輸出的音頻信號很小,無法直接使用,要麼用運放發大到合適的范圍,要麼用電壓比較器轉換成TTL方波。
三、手機音頻通信硬體通信方式分類:手機音頻通信的硬體通信方式大體可分為方波和正弦波兩種。
1、 方波:方波通常使用的是曼徹斯特編碼方式(什麼是曼徹斯特編碼自己去查),它的好處是可以用單片機直接輸出方波,經過衰減後即可使用,方便簡單。缺點是兼容性不好,因為手機音頻部分有這樣一個特性,它只識別變化的電平信號,當麥克輸入的信號長時間保持在某一非零電平時,手機會將其視為零,而強行拉回零電位。這就是採用方波通訊方式的兼容性不好的最大原因了,並且方波也容易受干擾。
2、 正弦波:正弦波不會出現上面所說的方波的問題,故正弦波的兼容性和穩定性更好一些。通常採用方案有FSK、DTMF、信號發生器、或方波轉正弦波等。(後面會對以上方案逐一分析)
3、 通信信道分析
a) 我們知道音頻介面有4根線,MIC、地、左、右聲道。設備→手機用MIC,手機→設備用地、左、右聲道中的任意一個。這里說一下,實際產品中,有一些廠家會更換地線,即將原本左、有聲道中的一根改為地線來用,其實道理是一樣的。因為音頻通信的信號時交流信號,而地其實也是懸浮地,即便地線換了,最終的波形還是一樣的,因為最終手機解析信號時需要的是頻率和幅值。這樣還剩下一個聲道,通常被用來幫助設備進行上電識別,因為音頻通信的設備通常都是電池供電的。
b) 另外還要在MIC和地之間並聯一個4.99K的電阻,因為手機是通過檢測MIC和地之間的阻抗是否為4.99K(也有其他阻值的)來判斷是否有設備(耳機)插入,這一點要謹記。
四、各個通信方案對比分析
1、 設備→手機:
a) 曼徹斯特編碼:在諸多通信方式中,曼徹斯特編碼是最靈活簡便的一種方法,編碼信號可由單片機直接產生,經衰減電路衰減後便可直接使用。注意事項:曼徹斯特編碼信號的生成有兩種方式,一種是用PWM生成,一種是用定時器中斷翻轉IO,我個人比較傾向於定時器中斷方式。因為我們知道曼徹斯特編碼中有寬沿河窄沿之分,且寬沿和窄沿可能會靈活變化,而用PWM方式不容易精確控制寬沿、窄沿輸出的變化,而定時器中斷方式則非常靈活且容易控制。(後面會送上我自己寫的曼徹斯特編碼、解碼函數)
b) FSK、DTMF方式:FSK和DTMF兩種方式大同小異,使用時通常都是用集成的晶元來生成的,而這些晶元通常都是遵守固定的通信協議的的要求(FSK為Bell202或V.23協議,DTMF記不清名字了)。這兩種通信方式的優點是採用正弦波通信、穩定性好且使用簡便。但由於固定通信協議的限制導致通信速率、比特率也受到限制而缺乏靈活性。在這里跟他家推薦一款英國的通信晶元CMX系列,這個系列的晶元融合的FSK、DTMF的編碼、解碼,還是很不錯的,大家有興趣可以試試。(相關手冊在附件里)
c) 信號發生器、鎖相環方式:這種方式用信號發生器或者鎖相環來產生方波或正玄波,由單片機來控制波形的輸出,也可以實現音頻通信,且十分靈活。但缺點是電路較復雜,且不同頻率信號之間銜接不好掌握,用不好反而是麻煩。(相關手冊在附件里)
d) 在這里送上一種我個人認為比較好的方案:就是曼徹斯特編碼加低通濾波器,由單片機輸出曼徹斯特編碼,再經由低通濾波器將方波濾成正弦波後輸出。既解決了FSK、DTMF靈活性的問題,又解決了曼徹斯特編碼方波穩定性、通用性的問題。在低通濾波器方面我個人採用的是「集成低通開關電容濾波器」,它成本雖然高一些,但好處也是明顯的,電路簡單,使用方便,且佔用的空間亦很小。(相關手冊在附件里)
2、 手機→設備:
a) 放大電路方式:將手機輸出信號經放大電路放大到合適的幅值,然後有鎖相環或者結成FSK、DTMF晶元進行解析。該中方式難度最大,需要非常強的模擬電路功底,我個人水平有限,故採用的另一種方式。
b) 電壓比較器方式:將手機輸出的交流信號經電路強行拉到Vcc/2級別,然後加到電壓比較器一端,另一段接比較電壓Vcc/2,這樣交流信號即被轉化為TTL方波信號,此時再進行解析就變得很簡單了。
五、研發注意事項(通訊方案分析部分由於過長,放到最後來講)
1、 一個好手機錄音軟體是必須的,最好能在手機上直接看到波形的。
2、 建議用筆記本電腦進行開發,而非台式機。因為音頻信號很小,容易受干擾,而台式機干擾較大,筆記本還有一個好處是必要時可將外接電源拔掉,用電池供電。
3、 一個好錄音筆必不可少,有時需要得到純凈的音頻信號,方便更加准確的分析。
4、 做一個轉接板,一邊接音頻母座,一邊接音頻公頭,將MIC、地、左、右聲道4跟線用排陣引出,方便錄音。
5、 做一個信號衰減電路,可將設備電路產生的信號衰減至音頻介面能承受的范圍內。前期調試時,我們可以用該電路將信號錄進電腦進行信號分析。(推薦一個電腦音頻信號分析軟體:Goldwave)
6、 錄音用的音頻線切記不要太長,不然會給你帶來不少麻煩。最好自己做,用音頻裸頭、杜邦線、排陣即可製作,方便好用。

曼徹斯特編碼的編碼解碼函數如下:
/**********************************************************************

注釋:編碼函數都是採用定時器中斷的形式,以曼徹斯特編碼的窄沿作為定時器周期。

發送的數據包括1個起始位、8個數據位、1個奇偶校驗位、3個停止位。

***********************************************************************/

static void VIC_VECT_Fucton_00(void)//發送編碼數據中斷函數

{

TIMER0IS =0x0;

if((send_time%2==0) && (send_start==1))

{

switch(FSK_txState)

{

case STARTBIT:

if((GPIODATA&0x00000002)==0x00000000)//如果檢測到數據發送管腳為零

send_time++;

else

{

currentSym=0;

FSK_txState = BYTE;

}

break;

case BYTE:

if(txBit < 8)

{

currentSym = (send_byte >> txBit) & 0x01;

txBit++;

txParity += currentSym; //奇偶校驗位

}

else if (txBit == 8)

{

currentSym = txParity & 0x01; //發送奇偶校驗位

txBit++;

}

else if(txBit>8 && txBit<12)

{

// next bit is the stop bit

currentSym = 1; //發送停止位

txBit++;

}

else if(txBit == 12)

FSK_txState = STOPBIT;

break;

case STOPBIT :

txBit=0;

FSK_txState=IDLE;

send_start=0;

txParity=0;

send_byte=0;

break;

}

if(lastSym!=currentSym)

{

timer1_num++;

lastSym=currentSym;

}

}

if(timer1_num%2==0)

GPIODATA&=0xFFFFFFFD;//輸出管腳復位

else

GPIODATA|=0x00000002;//輸出管腳置位

timer1_num++;//用來控制IO口的電平翻轉

send_time++;//用來控制發送的位元組的每一位

Delay++;//Delay就是延時函數

}

/**********************************************************************

注釋:解碼函數採用外部IO中斷形式(上升沿或下降沿中斷,即電平電平跳變中斷),

用一個定時器作為時鍾,每次產生中斷時便從定時器見時間值取出,並和上一次的

記錄做差求出時間間隔,以此來判斷當前為寬沿還是窄沿。

***********************************************************************/

static void VIC_VECT_Fucton_04(void)//接受解碼數據中斷函數

{

GPIOIC|=0x00000001;//清楚上一次中斷內容

RX_time=TIMER1VALUE;

if(RX_lasttime>=RX_time)

RX_diff=RX_lasttime-RX_time; //lasttime初始值為0

else

RX_diff=65535-RX_time+RX_lasttime;

RX_lasttime=RX_time;

switch(RX_state) //啟動代碼時state已經被配置為STARTBIT

{

case STARTBIT_FALL:

if ((SHORTINTERVAL<RX_diff) && (RX_diff<LONGINTERVAL))

{

if(RX_ones<5) //ones初始值為0

{

RX_ones = 0;

}

else

{

RX_state = DECODE; //將狀態配置為解碼

}

}

else if(RX_diff < SHORTINTERVAL)

RX_ones++;

else

RX_ones=0;

break;

case DECODE:

/**************通過間隔長短來判定數據**************/

if ((SHORTINTERVAL<RX_diff) && (RX_diff<LONGINTERVAL))// 若間距在范圍內則當前數據位值和前一個相反

{

currentbit=(currentbit+1)&0x01;

RX_times+=2;

}

else if( RX_diff < SHORTINTERVAL)

{

currentbit=currentbit;

RX_times++;

}

else

RX_state = DATAINIT;

/****************接受數據位,從低位接起****************/

if(RX_times%2==0)

{

if(RX_bitcounter<8)

{

if (currentbit==1)

{

uartByteRx = (uartByteRx >> 1) + (1<<7);

rxParity++; //奇偶校驗位

RX_bitcounter++; //接受數據位數

}

else

{

uartByteRx = (uartByteRx >> 1);

RX_bitcounter++;

}

}

else

{

rxParity&=0x01; //進行奇偶校驗

if(rxParity==currentbit)

{

RX_bitcounter++;

RX_finish=1;

RX_state=DATAINIT;

}

else

RX_state=DATAINIT; //若奇偶校驗錯誤則,重新檢測

}

}

break;

case DATAINIT : //初始化參數狀態

RX_bitcounter=0;

RX_ones=0;

rxParity=0;

currentbit=0;

RX_state=STARTBIT_FALL;

RX_times=0;

break;

default:

break;

}

}

熱點內容
全本免費閱讀器在哪緩存 發布:2025-01-23 11:14:54 瀏覽:438
傳輸數據加密 發布:2025-01-23 11:03:20 瀏覽:253
win7文件夾沒有共享 發布:2025-01-23 10:55:43 瀏覽:140
php原鏈接 發布:2025-01-23 10:49:56 瀏覽:513
演講稿腳本需要哪些要素 發布:2025-01-23 10:49:55 瀏覽:383
傳奇日常腳本 發布:2025-01-23 10:45:04 瀏覽:40
刷華為的系統可以用方舟編譯器嗎 發布:2025-01-23 10:45:03 瀏覽:226
java數組反射 發布:2025-01-23 10:39:24 瀏覽:291
伺服器如何從導軌取下來 發布:2025-01-23 10:28:30 瀏覽:103
華為手機的密碼保險櫃在哪裡 發布:2025-01-23 10:27:02 瀏覽:633