我是個高中電子科的學生
看過bad apple示波器版後很喜歡
一直很想親自嘗試後來在bilibili找到相關的教程!!
http://www.bilibili.tv/video/av386700/用matlab做的
求M文件!!
~
~
花了二周的時間~
~
我自己也嘗試要寫寫看!(現學現賣,有不懂處還請大大門賜教!!)目前的進度是把BMP檔轉換成相對應的聲音檔播放!
但目前仍有些問題!
在示波器器x-y mode輸出的圖案不甚理想
有很多線在我的圖案之間連在一起(是不是掃描線??)
譬如,圖案為圓型在元的中間會有很多z字型的線,就好像小朋友在塗鴉
不知道是不是我的演算法有問題要改進
希望有大大可以幫我解決
~
~
附上我的程式碼
~
~
%-------------------------------------開始-------------------------------------------
bmp=imread('bmp.bmp'); %讀入檔名為BMP的199x199的BMP檔(自行繪製單色點陣圖)
%------------------------------------------------------------------------------------
x=[]; %以下是數據的標準化
y=[]; %x為存放目標的x軸,y為存放目標的Y軸
for m=1:199 %列的掃描
for n=1:199 %行的掃描
if bmp(m,n)==0 %是否為黑點(黑點為0,白點為1)
x=[x;n-100]; %以(100,100)中心點作為新座標軸的原點(0,0)
y=[y;100-m]; %對應轉換,並存入x,y軸的資料
end
end
end
%------------------------------------------------------------------------------------
x=(x/99*0.99); %數據-1~1的轉換
y=(y/99*0.99);
s=[x,y]; %x,y並入s成為左右聲道
%------------------------------------------------------------------------------------
wavefile='test.wav'; %設定目標檔名為test.wav
fs=48000; %取樣率
nbits=8; %位元率
wavwrite(s,fs,nbits,wavefile); %產生檔名為test的wav檔
%----------------------------------------結束----------------------------------------
~
~
先說聲抱歉我的註解可能寫得不甚清楚!
~
~
Please Help Me!! |