嵌入式audio基礎(七)分析
準備做自動化的測試,難點和影象的測試差不多都是在很多的評價都是基於主觀的感覺。這裡準備簡單的根據前面幾個音訊評價的客觀引數經行測試評價。
首先一個就是工具的選擇,首選就是matlab,優點明顯就是有很多可以即用的函式工具,比如很重要的傅立葉變換的函式fft().
然後就是選一個合適的引數進行驗證,音訊資料的錯誤基本都可以在頻率錯誤上得到反應,所以選擇了測頻譜的方法。
pc 用音訊軟體播放1khz的正弦波給板子,板子錄製成音訊檔案,matlab處理音訊檔案。
音訊檔案中的資料格式,
我的資料是32bit中的24bit 有效的,高位在後。第一個資料應該是0x306040
這裡貼出來所有的原始碼。cd /home/xuww/
fs=44100; %頻率44.1KHz
fid=fopen(‘test.dat’,’rt’);
N=50000; %資料樣本有50000多個
samp_time=1/fs; %0.0000226757;
n=0:samp_time:(samp_time*(N-1)); %橫座標時間
c= fread(fid,50001*4 ,’uint8’);
count =0;
a = zeros(1,50000*4);
for count=1:50000+1
%fprintf(‘data print start ###########\n’)
%fprintf(‘data is 1 %x \n’,c(count*4-3,1));
%fprintf(‘data is 2 %x \n’,c(count*4-2,1));
%fprintf(‘data is 3 %x \n’,c(count*4-1,1));
%fprintf(‘data is 4 %x \n’,c(count*4,1));
a(1,count)=c(count*4,1)*16*16*16*16*16*16+c(count*4-1,1)*16*16*16*16+c(count*4-2,1)*16*16+c(count*4-3,1);
%fprintf(‘data print end %x\n’,a(count));
end
subplot(3,1,1)
plot(n,a(1:50000)); %第一幅顯示波形
subplot(3,1,2)
sample_region_count = 1024;
sample_region_array =0:samp_time:samp_time*(sample_region_count-1);
sample_region =a(2000:(2000+sample_region_count-1));
plot(sample_region_array,sample_region); %顯示其中1000個點的sample
subplot(3,1,3)
FFT_Num=1024;
M=0:FFT_Num/2;
freq=M*fs/FFT_Num;
X =fft(sample_region,FFT_Num); % Compute its 16-point DFT%進行傅立葉變換
mag=abs(X(M+1)); %求得Fourier變換後的振幅
plot(freq,mag);
xlim([0 2500]); grid;
pause(20);%暫停防止圖片一閃而過
資料有需要的可以找我
相關文章
- 嵌入式audio基礎(六)音量
- 嵌入式audio基礎(一)介面
- 嵌入式audio基礎(八)主動降噪
- 嵌入式audio基礎(三)匯流排
- 嵌入式audio基礎(四)效能指標指標
- 嵌入式audio基礎(二)傳輸協議協議
- 嵌入式audio基礎(五)效能指標補遺指標
- Core Audio音訊基礎概述音訊
- 逆向基礎(七)
- 嵌入式基礎(2)---硬體基礎知識
- Web Audio API 第1章 基礎篇WebAPI
- 嵌入式開發基礎(3)
- 前端基礎(七):cookie操作前端Cookie
- Shell基礎教程七:Shell字串字串
- 第七章-類基礎
- Java基礎知識七——方法Java
- JavaSE基礎知識分享(七)Java
- 嵌入式系統程式設計基礎程式設計
- 零基礎嵌入式學習攻略
- 嵌入式開發的基礎知識
- 嵌入式系統基礎知識:瞭解嵌入式系統
- Redis基礎篇(七)哨兵機制Redis
- Django基礎之七(資料庫操作)Django資料庫
- Java基礎系列(七):物件與類(下)Java物件
- pytorch基礎七(矩陣運算)PyTorch矩陣
- Java基礎 第三節 第七課Java
- Util應用框架基礎(七) - 快取框架快取
- Java 基礎(七)集合原始碼解析 MapJava原始碼
- JS基礎入門篇(七)—運算子JS
- 《MySQL 基礎篇》七:資料型別MySql資料型別
- Binder基礎業務分析
- 詞法分析基礎詞法分析
- 零基礎轉行嵌入式——C語言C語言
- JS基礎學習第七天JS
- Python基礎語法(七:類與物件)Python物件
- Python基礎之七:編碼詳解Python
- mybatis入門基礎(七)----延遲載入MyBatis
- MySQL基礎架構分析MySql架構