使用C語言實現pcm格式音訊的聲道分離
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
//開闢緩衝區用於迴圈讀寫資料
char* pzTest = (char*)malloc(4);
//開啟檔案
FILE* fp = fopen("music_test.pcm","rb+");//原始檔案
FILE* fp_L = fopen("music_test_L.pcm","wb+");//新建檔案,將寫入左聲道資料
FILE* fp_R = fopen("music_test_R.pcm","wb+");//新建檔案,將寫入右聲道資料
//判斷檔案讀取狀態
while (!feof(fp))
{
fread(pzTest,1,4,fp);
fwrite(pzTest,1,2,fp_L);//music_test_L
fwrite(pzTest+2,1,2,fp_R);//music_test_R,注意+2
}
//操作完成,釋放記憶體並關閉檔案
free(pzTest);
fclose(fp);
fclose(fp_L);
fclose(fp_R);
return 0;
}
相關推薦
使用C語言實現pcm格式音訊的聲道分離
//Time:2016/08/03 PM14:46 #include <stdio.h> #include <stdlib.h> int main (void) {//開闢緩衝區用於迴圈讀寫資料char* pzTest = (char*)malloc
PCM WAVE格式詳解及用C語言實現wave檔案的讀取
1.PCM Wave格式詳解 WAVE檔案格式是微軟RIFF(Resource Interchange File Format,資源交換檔案標準)的一種,是針對於多媒體檔案儲存的一種檔案格式和標準。 一般而言,RIFF檔案由檔案頭和資料兩部分組成,一個WAVE檔案由一個“WAVE”資料塊組成,這個“WAV
實現影象格式的轉換程式碼 C語言實現 RGB565轉BMP影象
這是我從網上看到的寶貴資料,可以直接實現RGB565 轉BMP影象的實現。我是用的開發板mini2440的開發板,和配套的攝像頭CAM130,實際上CAM130用的是OV9650的一款攝像頭;拍出的照片為RGB565的格式,因為這種格式直接可以送到 TFT螢幕上直接顯示;
[leetcode] Excel Sheet Column Title (excel表格的數字轉字母表示格式) C語言實現
Given a positive integer, return its corresponding column title as appear in an Excel sheet. for example: 1 -> A 2 -
CSV轉LibSVM格式之C語言實現改進
上次講了使用Excel的巨集進行Excel資料和libsvm資料之間的轉換,但是對於大資料量情況下,該方法並不好用,因此需要使用程式來實現。 非常幸運在libsvm官網上找到了C程式可以做這個事情,試用了一下後覺得有一些問題,因此對源程式進行了修改,在此分享給
C語言實現printf的基本格式輸出%d,%c,%p,%s
關於printf的實現,想必看過我之前發表的文章的夥伴們已經瞭解了不少基本的知識。好了,接下來不多說了,直接上原始碼,看看一種簡單的實現方式: #include <stdio.h> #de
二十四進制編碼串轉換為32位無符號整數(C語言實現)
bool while open 參數錯誤 hint div 第一個字符 bsp opened typedef int BOOL; #define TRUE 1; #define FALSE 0; #define UINT_MAX 0xffffffff
遺傳算法的C語言實現(二)
print 比較 詳細 author 當前 cross max r+ 訪問 上一次我們使用遺傳算法求解了一個較為復雜的多元非線性函數的極值問題,也基本了解了遺傳算法的實現基本步驟。這一次,我再以經典的TSP問題為例,更加深入地說明遺傳算法中選擇、交叉、變異等核心步
C語言實現粒子群算法(PSO)二
計算 default img 第一個元素 1.4 best 實驗 atl 說過 上一回說了基本粒子群算法的實現,並且給出了C語言代碼。這一篇主要講解影響粒子群算法的一個重要參數---w。我們已經說過粒子群算法的核心的兩個公式為: Vid(k+1)=w*Vid(k)+c1*r
遺傳算法的C語言實現(一):以非線性函數求極值為例
選中 algorithm 利用 mail 進化 lock gcc 最大值 -s 以前搞數學建模的時候,研究過(其實也不算是研究,只是大概了解)一些人工智能算法,比如前面已經說過的粒子群算法(PSO),還有著名的遺傳算法(GA),模擬退火算法(SA),蟻群算法(A
C語言實現粒子群算法(PSO)一
mat 遺傳 基於 [1] 沒有 實驗 規模 直觀 解決 最近在溫習C語言,看的書是《C primer Plus》,忽然想起來以前在參加數學建模的時候,用過的一些智能算法,比如遺傳算法、粒子群算法、蟻群算法等等。當時是使用MATLAB來實現的,而且有些MATLAB自帶了工具
(續)順序表之單循環鏈表(C語言實現)
include 作者 指針 順序 gb2 mark oos case 循環 單循環鏈表和單鏈表的唯一差別在於單循環鏈表的最後一個節點的指針域指向第一個節點, 使得整個鏈表形成一個環. C實現代碼例如以下: #include<stdio.h>
geek青年的狀態機,查表,純C語言實現
fill south 總結 target 堅持 str 分享 接收 backward geek青年的狀態機,查表,純C語言實現 1. 問題的提出。抽象 建一,不止是他,不少人跟我討論過這種問題:怎樣才幹保證在需求變更、擴充的情況下。程序的主體部分不動呢? 這是一個
C語言實現數據結構串(堆分配存儲表示法)
+= 賦值 size ++ fine hello n) clu 刪除字符串 ———————————————————————————————————————————— 堆分配存儲表示法 —————————————————————————————————————————
帶頭節點的單鏈表-------C語言實現
lib gmail spa 階段 c語言實現 fun 變化 尾插 mail 1 /***************************************************** 2 Author:Simon_Kly Version:0.1
排序(3)---------冒泡排序(C語言實現)
std 強調 tracking i++ oid printf pre rand() 執行 說到冒泡排序,大一的時候第一次學習這個排序算法,可能大家不知道,“冒泡”在我說的方言裏面是吹牛逼的意思。所以就認為這個排序算法特吹牛逼有木有。 相信大家對全部的排
數據結構之---C語言實現廣義表頭尾鏈表存儲表示
tle substring [1] 原子 depth ring else if max sig //廣義表的頭尾鏈表存儲表示 //楊鑫 #include <stdio.h> #include <malloc.h> #include <std
C語言實現中綴表達式轉後綴表達式
ctype 結束 錯誤 ini c語言實現 base color src 格式 代碼如下: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define STACK
C語言實現推排序
poi sort log ren -- eof parent class tdi KeyPoint : 找到關鍵的父節點 單線程找最大值 最快的方法 #include "stdlib.h" #include "stdio.h" void findMax(int
C語言實現單鏈表節點的刪除(帶頭結點)
data art pos grand urn ria tps move sni 我在之前一篇博客《C語言實現單鏈表節點的刪除(不帶頭結點)》中具體實現了怎樣在一個不帶頭結點的單鏈表的刪除一個節點,在這一篇博客中我改成了帶頭結點的單鏈表。代碼演示樣例上傳至 h