用步进正弦激励法测量计算机声卡输出输入幅值频响函数
一. 實驗目的
(1) 通過對計算機聲卡系統的實測加深對頻響函數的理解;
(2) 對聲音振動及測量有直觀了解;
(3) 對計算機聲卡系統的頻響特性有直觀的認識。
二. 實驗內容
(1) 用聲卡發出的步進正弦輸出信號再由聲卡通過音頻線直接采集為輸入信號,由此分析聲卡的幅值的頻率特性曲線
三. 實驗步驟
(1) 將計算機聲卡的麥克風輸入口和耳機或音箱輸出口用音頻線連上,如圖1。聲卡類型如圖2。
(2) 利用MatLab控制聲卡發出正弦信號,信號幅值為0.4,同時利用matlab進行錄音,記錄此正弦信號。然后利用傅里葉變換,計算出記錄信號的幅值。
(3) 保持正弦信號輸出的幅值不變,改變正弦信號的頻率,重復以上過程。考慮到計算機與外設之間速度的不匹配,需要加入延時,詳細設置見Matlab程序。
圖 1音頻線連接輸入和輸出口
圖 2聲卡類型
maltab代碼:
fs = 22050; %采樣頻率 bits = 16; %量化位數 chan = 1; %單通道 tf = 5; %播音時間rec = audiorecorder(fs, bits, chan); %設置錄音器t = 1/fs : 1/fs : tf; M = [10:1:40, 41:10:201, 202:100:3002, 3003:500:8003, 8003:100:11000]; %正弦信號的頻率rlt = zeros(size(M)); i = 0;for f = Mi = i + 1;y = 0.4 * sin(2 * pi * f * t);sound(y, fs, bits); %播音,非阻塞函數,(f為聲音的頻率,fs為采樣頻率)record(rec, tf); %錄音,非阻塞函數pause(tf * 2); %延時同步mydat = getaudiodata(rec); %獲取波形數據mydat1 = mydat(end - fs + 1 : end); %從波形數據中取后1s中的數據mydat1 = abs(fft(mydat1)) ./ length(mydat1); %進行傅里葉變換rlt(i) = max(mydat1) * 2; %獲取記錄波形的幅值 endplot(M, rlt)就會顯示幅頻響應曲線
四. 結論
對于采樣頻率為22050Hz,16位量化單通道的設置,從測試的結果來看,在10Hz~8000Hz,幅頻特性曲線平坦,這是從幅值上考慮聲音不失真的條件。由于采樣頻率22050Hz,根據采樣定律,理論上最多能夠覆蓋11025Hz以下的頻率,而該聲卡在8000Hz以下都能保持平坦的幅頻特性,從這個角度考慮,該聲卡應該算不錯了(聲卡的評價指標很多,除了幅頻特性外,還有相頻特性,總諧波失真和互調失真等等,幅頻好不代表聲卡好,但是好的聲卡一定有好的幅頻特性)。
總結
以上是生活随笔為你收集整理的用步进正弦激励法测量计算机声卡输出输入幅值频响函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对matlab中colormap的解释及
- 下一篇: 关于matlab中pcolor显示图片时