|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2017-11-26, 09:19 PM | #1 |
註冊會員
|
疑問 - wave黨pcm以及fftw的使用求教學...
最近正在做專題需要做聲音的頻譜分析,但是和夥伴弄了兩個星期才初步搞懂wave檔和pcm格式的讀取方式,FFTW的使用也只知道輸入和輸出是特別定義的複數格式組成的array而以。
想請問,假如我從PCM讀到的data長這樣,cdff caff d4ff d3ff, 那麼是直接把cd, ca, d4, d3依序放進in陣列像這樣 (0,cd) (1,ca) (2,d4) (3,d3) 這樣嗎? 查到的FFTW教學資料只說複數陣列的每組資料是由前面的浮點數表示實數部分和後面的浮點數表示虛術部分而已... 如果有懂的大大拜託求詳細解說....... 我們教授只會說很簡單怎麼可以搞這麼久可是真的搞不懂阿..... |
送花文章: 75,
|
2017-11-27, 10:03 PM | #2 (permalink) |
管理版主
|
不是很了解但
有一點你可能要先了解 "浮點數在記憶體中的存儲方式" 先不講標準如何 一般都是如下規劃 浮點數在記憶體可分解成 高位元組 與 低位元組 前面的是高位元組 用來儲存 實數 後面的 則是儲存 小數點後的虛數 比如 12.6 12放在高位元組 6 放在低位元組 那以陣列來存放就可用二維陣列來解決 如果data長度是100 以C/C++來講 宣告成 int data(99,1); 或著 byte data(99,1); 第一筆 data(0,1) 存 cd data(0,0) 存 ff 或著反過來 data(0,1) 存 ff, 要如何放主要看你的規劃 或著讀取記憶體時的方便度 此帖於 2017-11-28 01:08 PM 被 mini 編輯. |
送花文章: 2018,
|
2017-11-28, 09:15 PM | #4 (permalink) |
管理版主
|
說真的什麼高斯 傅立葉
早就忘光光了 連什麼是 fftw 都不知 但既然不小心回答了只好硬著頭皮查一下... 原來是有一現成的 函式庫叫 fftw 可以讓使用者宣告後輸入數值交給它算出解答 版友的問題是如何把自己的資料正確餵給fftw 找到一篇 http://blog.sciencenet.cn/blog-531760-1048005.html 首先是宣告 一個fftw 的一維陣列 in 一個fftw 二維陣列out 擺放輸出值 , out[i][0] 與 out[i][1] 分別列出 實數與虛數 (哪一個擺實哪一個擺虛 請自己觀察變數裡的數值...) 那 1 3 2 4 6 1 5 是一維資料 就直接依序給 in[i] 就好了 in[0]=1 in[1]=3 in[2]=2 in[4]=4 in[5]=6 in[6]=1 in[7]=5 |
送花文章: 2018,
|
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
請問要如何把wave檔放到MPEG2影像中? | Leech | 一般電腦疑難討論區 | 4 | 2004-06-17 11:11 PM |
請問 PCM、AC3、DTS | dayy0203 | 硬體疑難使用問題討論區 | 1 | 2003-09-16 06:00 PM |
我的nero wave editor不能錄音? | himan1 | 軟體應用問題討論區 | 0 | 2003-07-07 11:10 PM |
如果cold wave不註冊 | fuitry | 軟體應用問題討論區 | 1 | 2003-03-24 03:18 AM |