C語言編程計算信噪比SNR理解學習
概念
這里面的信號指的是來自設備外部需要通過這臺設備進行處理的電子信號,噪聲是指經(jīng)過該設備后產(chǎn)生的原信號中并不存在的無規(guī)則的額外信號(或信息),并且該種信號并不隨原信號的變化而變化。
計算方法
信噪比的計量單位是dB,其計算方法是10lg(Ps/Pn),其中Ps和Pn分別代表信號與噪聲的有效功率,也可以換算成電壓幅值的比率關系:20Lg(Vs/Vn),Vs和Vn分別代表信號和噪聲電壓的“有效值”。
在音頻放大器中,我們希望的是該放大器除了放大信號外,不應該添加任何其它額外的東西。因此,信噪比應該越高越好。
相關認知
狹義來講是指放大器的輸出信號的功率與同時輸出的噪聲功率的比,常常用分貝數(shù)表示,設備的信噪比表明它產(chǎn)生的噪聲越少。
一般來說,信噪比越大,說明混在信號里的噪聲越小,聲音回放的音質(zhì)量越高,否則相反。
信噪比一般不應該低于70dB,高保真音響的信噪比應達到110dB以上。
Taprint中的信噪比
在登錄認證過程中,用戶需要先打開觸摸屏。當用戶在筆記本電腦鍵盤上打字或洗碗時,他/她可能無法打開智能手表的觸摸屏。
然而,在文本輸入過程中,在手背上打字時的一些動作(例如拿起物體或抓手)可能會觸發(fā)誤報。示例如圖6所示,它繪制了在5種類型的用戶活動期間檢測到的振動信號,這5種振動信號分別為:
- 抓手
- 握拳
- 拿起一個物體
- 輕輕敲擊
- 走路的時候敲擊
請注意,這些振動信號均由20Hz的Butterworth高通濾波器過濾。在上圖中,我們觀察到手指敲擊(即使是輕微敲擊)的信噪比(SNR)明顯高于其他動作。因此,當信號信噪比超過某一閾值(默認為20dB)時,我們可以簡單地分割出一個由敲擊引起的振動信號。
實例
clear all; clc; X = sqrt(2)*sin(0:pi/1000000:6*pi); % 產(chǎn)生正弦信號 Y = awgn(X, 14, 'measured'); % 加入信噪比為14db的噪聲,加入前預估信號的功率(強度) sigPower = sum(abs(X).^2) / length(X); % 求出信號功率 noisePower = sum(abs(Y - X).^2) / length(Y - X); % 求出噪聲功率 SNR_10 = 10*log10(sigPower/noisePower) % 由信噪比定義求出信噪比,單位為db b = snr(X, Y-X) % snr(a,b) : a是原始信號,b是噪聲信號
輸出:
SNR_10 = 14.0033 b = 14.0033
以上就是C語言編程信噪比SNR計算理解學習的詳細內(nèi)容,更多關于C語言信噪比SNR的資料請關注腳本之家其它相關文章!
相關文章
C語言數(shù)據(jù)結(jié)構(gòu)與算法之鏈表(二)
在這篇文章中,我們將拋開令人頭禿的指針和結(jié)構(gòu)體,我們將另外使用一種數(shù)組來實現(xiàn)的方式,叫做模擬鏈表。讓來跟隨小編一起學習學習吧2021-12-12C++一個函數(shù)如何調(diào)用其他.cpp文件中的函數(shù)
這篇文章主要介紹了C++一個函數(shù)如何調(diào)用其他.cpp文件中的函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02C語言實現(xiàn)數(shù)據(jù)結(jié)構(gòu)迷宮實驗
這篇文章主要為大家詳細介紹了C語言實現(xiàn)數(shù)據(jù)結(jié)構(gòu)迷宮實驗,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03