新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 程序與音樂的美妙結合:讓我們一起聆聽混沌之音

        程序與音樂的美妙結合:讓我們一起聆聽混沌之音

        作者: 時間:2017-10-21 來源:網絡 收藏

          本世紀70年代初,美國普林斯頓大學的生態學家R·May在研究昆蟲群體繁殖規律時提出一個著名的模型: χ[n+1]=k*χ[n]*(1-χ[n])其中χ[n]表示第n代群體的數目。當給定一個初始的χ[0]值,然后不停地迭代,人們發現隨著k值的不同,得到的序列χn有許多有趣的現象。當k值介于0與1之間時,χ[n]經過一定次數的迭代后都趨于0。當k值介于1和3之間時趨于1/k,當k值大于3時,經過一定次數的迭代后χ[n]在2個值之間交替變化,k值增加到3.449附近時,交替變化值又變為4個。繼續增加k值,χ[n]交替變化的值的個數依4→8→16→32的次序迅速加倍,終于一片混沌。但當k值在3.835附近時,經過一定次數的迭代后,χ[n]非常簡單地在3個值之間交替變化,接著又迅速依3→6→12的次序迅速增長。如此反復,在簡單的方程中隱藏著令人驚奇的復雜性。

        本文引用地址:http://www.104case.com/article/201710/367011.htm

          為了體現這種復雜之中的無窮奧妙,下面這個用TC2.0編寫的小程序用χ[n]大小來控制PC喇叭的發音頻率,設定不同的k值,我們就可以聆聽到混沌的聲音。執行下面的小程序時,k值就相當于一個“調音旋鈕”。當將k值設定在1與3之間時,喇叭里傳出的只有一個音調,重復又煩人。當k值稍稍大于3時,便開始有了韻律:so-mi-so-mi…。k值增加到3.449時,變成了so-fa-la-mi-so-fa-la-mi…,再增加k值,韻律更加復雜,終于成了現代抽象派作曲家的音樂作品。但是韻律并不是隨著k值的增加無限地復雜下去。在k值增加到3.835時,音調又變成了mi-so-ti-mi-so-ti…,再增加k值又迅速地變得更加復雜。不停地改變k值,仔細聆聽,會聽到混沌中的無限奧妙。

          #include dos.h>

          #include stdio.h>

          #include conio.h>

          main()

          {

          int fMin=20,fMax=16000; /*fMin代表最低頻率,fMax代表最高頻率*/

          int fDis,i; /*fDis代表最高頻率和最低頻率之間的差值,i用于循環記數*/

          float x=0.1,k; /*x代表x[n]的大小,設定其初始值為0.1,即x[0]=0.1*/

          char ch;

          fDis=fMax-fMin;

          clrscr();

          while(1)

          {

          printf(“Please input The value of k(1-4.0) ”); /*輸入k值*/

          printf(“If you want to quit,Please input:0 ”); /*如果k=0退出*/

          scanf(“%f”,k);

          if (k==0)

          {

          break;

          }

          else if((k1)||(k>4.0))

          {

          printf(“The number must be: 1k4 ”);

          continue;//輸入有誤,繼續輸入。

          }

          for(i=1;i100;i++) /*去掉開始的100個點*/

          {

          x=k*x*(1-x);

          }

          for (i=1;i100;i++)

          {

          x=k*x*(1-x); /*計算x的值*/

          sound(x*fDis+20); /*用x的值控制PC喇叭的發音頻率*/

          delay(1000);

          if (kbhit())//kbhit()檢測是否有按鍵事件,如果沒有按鍵,則返回0;

          {

          ch=getch();//讀取按鍵值

          switch(ch)

          {

          case 27:

          nosound();//關閉聲音

          return(0);//ESC退出

          }

          break;

          }

          }

          nosound();//關閉聲音

          clrscr();//清屏

          }

          nosound();

          return(0);

          }



        關鍵詞: 蜂鳴器 編程語言

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盐源县| 来宾市| 巴东县| 广宗县| 农安县| 台东市| 浠水县| 喀喇| 九龙坡区| 巴林右旗| 罗甸县| 绩溪县| 沾化县| 天等县| 双江| 阳曲县| 平湖市| 张家港市| 明光市| 东明县| 进贤县| 乐清市| 岢岚县| 洱源县| 信宜市| 永修县| 二手房| 碌曲县| 遂平县| 右玉县| 盐津县| 辰溪县| 大同市| 临沂市| 迭部县| 黑山县| 绩溪县| 六枝特区| 观塘区| 宜丰县| 连平县|