creatio ex nihilo

ศล
Location :
กรุงเทพ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 85 คน [?]




Group Blog
 
All Blogs
 
Friends' blogs
[Add ศล's blog to your web]
Links
 

 

เกมงู-บันได

จากเกมงูกับบันได (link เกมงูกับบันได)


พอเราเขียน state diagram ได้แล้ว สร้างระบบสมการหาคำตอบเสร็จแล้ว อยากจะเช็คคำตอบ ทำไงดี? ง่าย ๆ ก็ sim มัน วันนั้นผมลองโค้ด matlab แบบงี่เง่า ๆ เพื่อ sim ผลที่ได้ดูว่าตัวเองคิดถูกมั้ย ได้โค้ดที่หน้าตาค่อนข้างอุบาทว์อย่าบอกใคร แต่ก็พอใช้การได้ดีแบบนี้ครับ

สร้างฟังก์ชั่นโยนเหรียญ return 0 หรือ 1 ด้วยโอกาสประมาณ 50-50 แบบสุ่ม

https://dl.dropboxusercontent.com/u/22226930/MATLAB/Snake-Game/flipcoin.m

สร้างฟังก์ชั่นเกมซึ่งเป็น state machine ที่ return ค่าจำนวนทีที่โยนเหรียญจนจบเกม

https://dl.dropboxusercontent.com/u/22226930/MATLAB/Snake-Game/snake.m

สุดท้ายก็จำลองเกมสัก m ครั้งแล้ว return ค่าเฉลี่ยนจำนวนเหรียญ

https://dl.dropboxusercontent.com/u/22226930/MATLAB/Snake-Game/snake_game.m

ทดสอบนะครับ



ผลการคำนวณตามทฤษฎีได้ 12.5 (ดูได้จาก link ข้างบน) ก็พอโอเค




 

Create Date : 25 ตุลาคม 2552    
Last Update : 11 กรกฎาคม 2556 12:10:41 น.
Counter : 2214 Pageviews.  

ขีดเริ่มสัมบูรณ์ของการได้ยิน

เสียงคือคลื่นความดันอากาศ การวัดระดับเสียง ก็คือการวัดระดับความดันเสียง ก่อนอื่นเรานิยามระดับความดันเสียง (Sound Pressure Level, SPL) ในหน่วย dB SPL จาก



เมื่อ LSPL คือ ระดับความดันเสียงของสิ่งเร้า (sitmulus) มีหน่วยเป็น dB SPL, p คือ ความดันเสียงของสิ่งเร้าในหน่วย Pascal (Pa), และ p0 คือ ระดับความดันอ้างอิง มีค่าเท่ากับ 20 µPa ซึ่งระดับความดันเสียงนี้เป็นตัวบ่งบองถึงพลังงานเสียง เปรียบเทียบง่าย ๆ ว่าคุณยิ่งพูดเสียงดังมาก ค่า dB SPL ของสัญญาณเสียงนั้นก็ยิ่งมาก

ขีดเริ่มสัมบูรณ์ของการได้ยิน (Absolute Threshold of Hearing) คือ SPL ที่ต่ำที่สุดที่เด็กที่หูดีที่สุดได้ยิน เรารู้ว่าเสียงที่เราพูด ๆ กันนี้ประกอบด้วยคลื่นหลายความถี่ผสมผสานกัน ดังนั้นในการหา ATH เขาจึงต้องทดสอบกับ pure tone คือ เสียงที่มีความถี่เดียว ATH จะแปรตามความถี่ (f) เสียงหรือไม่? นี่ถูกใช้เป็นสมมติฐานในการทดลองเพื่อหา SPL ที่ต่ำที่สุดที่คนได้ยินที่ f ใด ๆ (ถึงตรงนี้คุณคงพอมองออกว่าทำไมเราต้องปรับหน่วยจาก Pa มาเป็น dB SPL ด้วยการเทียบ p กับ p0 เดาได้ไม่ยากใช่มั้ยครับ ถ้าคุณจะ calibrate ให้ SPL เท่ากับ 0 ที่ระดับเฉลี่ยของย่านความถี่ที่เราสามารถได้ยินเสียงเบาสุด เราก็แค่หาค่า p0 หรือความดันเสียงที่สูงที่สุดที่ทำให้คนหูดีที่สุดไม่ได้ยินไม่ว่าที่ความถี่ใดก็ตาม)

มีการศึกษาและประมาณค่า [Terhardt, E. (1979). Calculating virtual pitch. Hearing Res., vol. 1, pp. 155-182] ขีดเริ่มสัมบูรณ์ของการได้ยิน Tq(f) ด้วยสมการ



เมื่อ Tq(f) มีหน่วย dB SPL และ f มีหน่วย Hz

ลองพล็อตกราฟ ATH ด้วย MATLAB นะครับ

https://dl.dropboxusercontent.com/u/22226930/MATLAB/ATH/ath.m



ข้อมูลที่ได้มีประโยชน์มากในการบีบอัดเสียงเพลงครับ กราฟนี้บอกเราว่าข้อมูลใดที่ SPL อยู่ต่ำกว่า curve ข้อมูลนั้นหูมนุษย์ธรรมดาโดยเฉลี่ยไม่สมควรได้ยิน!




 

Create Date : 19 ตุลาคม 2552    
Last Update : 11 กรกฎาคม 2556 12:20:12 น.
Counter : 1339 Pageviews.  

เกมแห่งความยุ่งเหยิง

จาก chaos game เราจะลองเขียน code เพื่อจำลองเกมนี้ด้วย MATLAB ง่าย ๆ โดยเริ่มจากสร้างจุด x, y, z มันไม่ใช่จุดมุมของสามเหลี่ยมด้านเท่า แต่ก็ไม่เสียหายอะไร สังเกตว่าแต่ละจุดจะเก็บพิกัดไว้ใน matrix ขนาด 2 แถว 1 หลัก โดยแถวที่หนึ่ง เราอาจบอกว่ามันคือค่าตามแนวแกน x และแถวที่สองคือค่าตามแนวแกน y จากนั้นสุ่มเลือก seed หนึ่งจุด ดูโค้ดจะเห็นว่าเราเรียกใช้ฟังก์ชั่น rand ถ้าคุณอยากรู้รายละเอียดเกี่ยวกับฟังก์ชั่นนี้ ก็ให้พิมพ์ help rand ฟังก์ชั่น rand (m,n) จะสร้าง matrix ขนาด m x n ที่ element แต่ละตัวถูกสุ่ม (ไม่ใช่สุ่มจริงนะครับ ค่าที่ได้เป็น pseudo-random value) ในช่วงหนึ่งหน่วย จากนั้นทอยเต๋า 5,000 ครั้ง เราก็ใช้วิธีสุ่มแล้วแบ่งช่วงจำนวนจริง [0,1] ออกเป็น 3 กลุ่ม คือ [0,1/3), (1/3,2/3), (2/3,1]

https://dl.dropboxusercontent.com/u/22226930/MATLAB/Chaos-Game/chaos_game_1.m



ลองเปลี่ยนจาก 3 จุดมุมเป็น 6 จุดมุม

https://dl.dropboxusercontent.com/u/22226930/MATLAB/Chaos-Game/chaos_game_2.m




 

Create Date : 18 ตุลาคม 2552    
Last Update : 11 กรกฎาคม 2556 12:29:23 น.
Counter : 843 Pageviews.  

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.