C語言 PCM音訊資料處理 降低取樣率

2021-07-10 00:16:13 字數 680 閱讀 4671

用一麥克風錄製的pcm資料,為16bit、48khz、單聲道,而我希望得到的是16khz取樣率的pcm資料,那就通過降低取樣率的方法,去實現48000hz到16000hz取樣率的轉換。

轉換原理比較簡單,48000hz降到16000hz,實際上降了3倍,同一時間的單位區間內,48000hz取樣了3個點,16000hz則取樣了1個點,即從48000hz的檔案中每讀取3個資料,就要根據這3個資料去推算得到1個資料,而這個資料對應的就是16000hz檔案中的乙個資料。

具體實現如下

c語言實現

#define old_file_path "file.pcm"

#define down_file_path "downsample.pcm"

void pcm_downsample(void)}}

fclose(fp);

fclose(fp_down);

}

這裡我將3個點轉換成1個點的演算法,是求取平均值的演算法,你可以利用其他演算法去轉換也可以,如果想降低成其他取樣率的,只要按照對應的比例去取樣,即可。

參考資料

1.pcm資料格式

C語言 PCM音訊資料處理 音量增大或減小

c語言實現 define old file path file.pcm define vol file path vol.pcm int volume adjust short in buf,short out buf,float in vol void pcm volume control int...

音訊資料處理的基本框架 基於ADSP SC589

簡單的回顧一下使用dsp處理音訊資料所需要的基本配置。dsp 的實時處理的實現能夠將採集到的資料先儲存到sdram 中,在需要處理的時候利用edma 實現ping pong 緩衝,將待處理的資料分批搬運到片記憶體儲器,結合快取記憶體和片內記憶體設計合適的資料結構,並將資料對齊,這樣大大減小了資料搬移...

視音訊資料處理入門 RGB YUV畫素資料處理

分離yuv420p畫素資料中的y u v分量 分離yuv444p畫素資料中的y u v分量 將yuv420p畫素資料去掉顏色 變成灰度圖 將yuv420p畫素資料的亮度減半 將yuv420p畫素資料的周圍加上邊框 生成yuv420p格式的灰階測試圖 計算兩個yuv420p畫素資料的psnr 分離rg...