close

標題:

如何用 Matlab 寫波形 發出聲音 20點

發問:

之前看到有人用matlab可以自己寫頻率、時間...等然後發出聲音 感到滿有興趣的,所以想問如何用 Matlab 寫波形 發出聲音 我在想 要利用Matlab自己靠程式寫出一首歌 希望除了解答如何用 Matlab 寫波形 發出聲音以外 可以告訴我每個音階的波形怎麼寫,或是有什麼公式之類的 萬分感謝 更新: 不是不是 不用接電路 是直接在電腦上執行然後電腦的喇叭發出聲音的 就像c跟vb讓電腦發出聲音那樣類似的東西吧 更新 2: 像是數位訊號那樣 只是自己寫出來 更新 3: 非常感謝dtsien 可以跟我說明一下原理嗎? 就是打個註解之類的 還有要如何控制發出聲音的時間呢? 更新 4: sound的fs改掉也會影響聲音 要怎麼控制時間阿 試了一個早上 現在耳朵要炸了 更新 5: 時間是有差 可是會影響發出的聲音

最佳解答:

Matlab 內含 sound 之 function 可直接讓 pc audio 發出聲音 試一試... w=[523.251 587.330 659.255 698.456 783.991 880.000 987.767 1046.5]; x=(1:16383)/16383; y=8*asin(1)*x; sound(sin(y*w(1))); y sound(sin(y*w(2))); y sound(sin(y*w(3))); y sound(sin(y*w(4))); y 2008-01-24 07:27:30 補充: sound(sin(y*w(5))); y sound(sin(y*w(6))); y sound(sin(y*w(7))); y sound(sin(y*w(8))); 2008-01-25 02:09:43 補充: sample=8192; % cycle per second time=1; % play time in second sampling_point=sample*time-1; % number of data points in time % w=[523.251 587.330 659.255 698.456 783.991 880.000 987.767 1046.5]; % do re me ... x=(0:sampling_point)/sampling_point; y=8*asin(1)*x; % asin(1) = PI for i=1:8 sound(sin(y*w(i))); pause(time) end 控制時間靠點數 (sampling point) sound 是每秒取 8192 點 所以控制點數 就可以控制時間

其他解答:

如果你手邊有電路板 有matlab的編譯器 找一個學長的程式來跑就好了 那是控制蜂鳴器輸出 跟頻率有關 想起以前三修的慘痛經驗 2008-01-22 11:11:09 補充: 簡單來說 根據電路板的腳位輸出不同 別人也很難幫你 要靠你自己了 一個寫好的程式 也不太可能直接套用到你的電路板上 可以成功

 

此文章來自奇摩知識+如有不便請留言告知

481517FD598DAD6B

arrow
arrow
    創作者介紹
    創作者 aptzmcv 的頭像
    aptzmcv

    aptzmcv的部落格

    aptzmcv 發表在 痞客邦 留言(0) 人氣()