ﺑﺴﻤﻪ ﺗﻌﺎﻟﻲ ﺳﻴﺴﺘﻢ ﻫﺎي ﭼﻨﺪرﺳﺎﻧﻪاي )(40-342 داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 1اﺳﻔﻨﺪ 1389 دﻛﺘﺮ ﻣﻬﺪي اﻣﻴﺮي ﺗﻜﻠﻴﻒ ﺷﻤﺎره :2ﭘﺮدازش ﺳﻴﮕﻨﺎل ﺻﻮﺗﻲ ﻣﻘﺪﻣﻪ در اﻳﻦ ﺗﻤﺮﻳﻦ ،ﺷﻤﺎ ﺑﺮﺧﻲ ﻣﻔﺎﻫﻴﻢ ﭘﺮدازش ﺻﻮت ﻛﻪ در درس ﺑﺎ آنﻫﺎ آﺷﻨﺎﻳﻲ ﭘﻴﺪا ﻛﺮدهاﻳﺪ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲدﻫﻴﺪ .اﻳﻦ ﭘﺮدازشﻫﺎ ﺷﺎﻣﻞ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﻏﻴﺮ ﺧﻄﻲ ،ﻛﺪ ﻛﺮدن ﭘﻴﺸﮕﻮﻳﺎﻧﻪ ،ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام و ﻓﻴﻠﺘﺮ ﻛﺮدن ﺻﻮت ﻣﻲﺑﺎﺷﺪ. آﻧﭽﻪ ﻛﻪ ﺑﺎﻳﺴﺘﻲ ﺗﺤﻮﻳﻞ داده ﺷﻮد ﺷﺎﻣﻞ ﭘﺎﺳﺦ ﺳﻮاﻻت ﻣﻄﺮح ﺷﺪه در ﺻﻮرت ﺗﻤﺮﻳﻦﻫﺎ )در ﻗﺎﻟﺐ ﻳﻚ ﮔﺰارش ﺑﺎ ﻓﺮﻣﺖ ،(PDF ﻧﻤﻮدارﻫﺎ و ﺷﻜﻞﻫﺎي ﺧﺮوﺟﻲ mﻓﺎﻳﻞﻫﺎ و mﻓﺎﻳﻠﻬﺎ ﻣﻲﺑﺎﺷﺪ .ﻟﻄﻔﺎ ﺗﻤﺎﻣﻲ ﻓﺎﻳﻞﻫﺎ را ﺑﻪ ﺻﻮرت ﻳﻚ ﻓﺎﻳﻞ ﻓﺸﺮده ،ﻛﻪ ﻧﺎم آن در ﻗﺎﻟﺐ MM_HW2_LastName_StudentIDﺑﺎﺷﺪ ﻛﻪ در آن ﺑﻪ ﺟﺎي LastNameﻧﺎم ﺧﺎﻧﻮادﮔﻲ ﺷﻤﺎ و ﺑﻪ ﺟﺎي StudentIDﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ ﺷﻤﺎ ﻗﺮار ﻣﻲﮔﻴﺮد ،ﺑﻪ آدرس ) ([email protected]ﺑﻔﺮﺳﺘﻴﺪ .ﻟﻄﻔﺎ ﻋﻨﻮان emailﺧﻮد را MM-HW2ﻗﺮار دﻫﻴﺪ .ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ ﺧﺮوﺟﻲﻫﺎ ﺳﺎﻋﺖ 23:59ﺗﺎرﻳﺦ 1388/12/22ﻣﻲﺑﺎﺷﺪ. Pulse Code Modulation -1 اﻟﻒ( (PCM) Pulse Code Modulationرا ﺗﻮﺿﻴﺢ دﻫﻴﺪ .ﺑﻄﻮر ﻣﺸﺨﺺ PCM ،ﭼﻴﺴﺖ؟ ﭼﮕﻮﻧﻪ PCMﺑﺮ روي دادهي ﺻﻮﺗﻲ ﺑﻜﺎر ﻣﻲرود؟ ب( ﭼﺮا ﺻﻮت ﺑﺎ ﻛﻴﻔﻴﺖ CDدر ﻓﺮﻛﺎﻧﺲ 44.1 KHzﻧﻤﻮﻧﻪﺑﺮداري ﻣﻲﺷﻮد ،درﺣﺎﻟﻴﻜﻪ ﻣﺤﺪوده ﺷﻨﻮاﻳﻲ اﻧﺴﺎن ﻓﻘﻂ ﺑﻴﻦ 20 Hzﺗﺎ 20 KHzاﺳﺖ؟ -2ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﻏﻴﺮ ﺧﻄﻲ در ﺗﻤﺮﻳﻦ ﺳﺮي ،1ﺷﻤﺎ ﺑﺎ ﻣﻔﻬﻮم ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن و اﻋﻤﺎل آن ﺑﺮ ﺳﻴﮕﻨﺎل ﺻﻮت آﺷﻨﺎ ﺷﺪﻳﺪ .ﻣﺤﺪوده ﻫﺎ و ﺳﻄﻮح ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﻣﻤﻜﻦ اﺳﺖ ﺑﻪ ﺻﻮرﺗﻬﺎي ﻣﺘﻌﺪدي اﻧﺘﺨﺎب ﺷﻮﻧﺪ ﻛﻪ ﺑﺴﺘﮕﻲ ﺑﻪ ﻛﺎرﺑﺮدﻫﺎي از ﭘﻴﺶ ﺗﻌﻴﻴﻦ ﺷﺪة ﻧﻤﺎﻳﺶ دﻳﺠﻴﺘﺎﻟﻲ آن دارد .ﺑﺎ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﻳﻜﻨﻮاﺧﺖ ،ﻣﺤﺪودة دﻳﻨﺎﻣﻴﻚ )ﺣﺪاﻗﻞ ﺗﺎ ﺣﺪاﻛﺜﺮ( ﺳﻴﮕﻨﺎل ،Rﺑﻪ Nﺑﺎزه ﺑﺎ ﻃﻮل ﻳﻜﺴﺎن ∆ ﺑﺎ ﻧﺎم ﭘﻠﻪ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮد. R )(1-1 N ﻛﻮاﻧﺘﻴﺰه ﻛﺮدن ﻳﻜﻨﻮاﺧﺖ ﺗﻨﻬﺎ ﺑﺮاي ﺳﻴﮕﻨﺎلﻫﺎي ﺑﺎ ﺗﻮزﻳﻊ ﻳﻜﻨﻮاﺧﺖ ﺑﻬﻴﻨﻪ اﺳﺖ .ﺑﺮاي ﺳﻴﮕﻨﺎلﻫﺎﻳﻲ ﻛﻪ ﻧﺰدﻳﻚ ﻣﻘﺎدﻳﺮ ﻛﻮﭼﻚ داﻣﻨﻪ =∆ ﺗﺠﻤﻊ دارﻧﺪ ،ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺗﻮزﻳﻊ ﮔﻮﺳﻲ ﺑﺎ ﻣﻴﺎﻧﮕﻴﻦ ﺻﻔﺮ ،ﺑﻬﺘﺮ اﺳﺖ ﻛﻪ داﻣﻨﻪ ﻫﺎي ﻛﻮﭼﻚ ﺑﺎ دﻗﺖ ﺑﻴﺸﺘﺮي ﻛﻮاﻧﺘﻴﺰه ﺷﻮﻧﺪ .ﺑﺮاي ﺗﺤﻘﻖ اﻳﻦ اﻣﺮ اﺑﺘﺪا ﺑﺎﻳﺪ ﻧﮕﺎﺷﺘﻲ ﺑﻪ ﺳﻴﮕﻨﺎل ﻛﺮد ﺑﻪ ﻃﻮري ﻛﻪ ﻣﻘﺎدﻳﺮ ﻛﻮﭼﻚ را ﺗﻘﻮﻳﺖ ﻛﻨﺪ و ﺳﭙﺲ ﻳﻚ ﻛﻮاﻧﺘﻴﺰه ﻛﻨﻨﺪة ﻳﻜﻨﻮاﺧﺖ ﺑﻪ ﺳﻴﮕﻨﺎل ﻧﮕﺎﺷﺖ ﺷﺪه اﻋﻤﺎل ﻛﺮد .ﻳﻜﻲ از ﻧﮕﺎﺷﺖﻫﺎ ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ: ])y (n) = F [x(n )(2-1 .sgn [x (n)], 0 ≤ x (n) ≤ 1 ] )ln [1 + µ x(n ] ln [1 + µ = ( µ + 1) y ( n ) − 1 (x(n) = F [ y (n)] = sgn [ y (n)]. ) −1 µ ﺷﻜﻞ -1راﺑﻄﻪ ورودي – ﺧﺮوﺟﻲ ﺑﺮاي ﻳﻚ ﻣﺸﺨﺼﻪ µ − law )اﻗﺘﺒﺎس از ](smith[1 ﺷﻜﻞ ،1ﻳﻚ ﺧﺎﻧﻮاده از ﻣﻨﺤﻨﻲ ﻫﺎي ) y(nﺑﺮ ﺣﺴﺐ ) x(nرا ﺑﺮاي ﻣﻘﺎدﻳﺮ ﻣﺘﻔﺎوت µﻧﺸﺎن ﻣﻲ دﻫﺪ .واﺿﺢ اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ ) (2-1داﻣﻨﻪ ﻫﺎي ورودي ﻛﻮﭼﻚ ﺗﻘﻮﻳﺖ ﻣﻲ ﺷﻮﻧﺪ .ﺷﻜﻞ 2ﺗﻮزﻳﻊ ﺳﻄﻮح ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن را ﺑﺮاي ﺣﺎﻟﺘﻲ ﻛﻪ µ =40و N=8 اﺳﺖ ،ﻧﺸﺎن ﻣﻲ دﻫﺪ .اﮔﺮ µ =0ﺑﺎﺷﺪ ،ﻣﻌﺎدﻟﺔ ) (2-1ﺑﻪ ﻣﻌﺎدﻟﺔ ) y(n)=x(nﺧﻼﺻﻪ ﻣﻲ ﺷﻮد ،ﺳﻄﻮح ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﺑﺎ ﻓﺎﺻﻠﻪﻫﺎي ﻳﻜﻨﻮاﺧﺖ ﺗﻘﺴﻴﻢ ﺷﺪه اﻧﺪ ،ﺑﺎ اﻳﻦ وﺟﻮد ﺑﺮاي ﻣﻘﺎدﻳﺮ ﺑﺰرگ µو ﺑﺮاي |) |x(nﻫﺎي ﺑﺰرگ: )(3-1 )x( n X max y (n) ≈ X max log )y (n x (n) ≈ X max 10 X max or ﺑﻨﺎﺑﺮاﻳﻦ ﺑﻪ ﺟﺰ داﻣﻨﻪ ﻫﺎي ﺑﺴﻴﺎر ﻛﻮﭼﻚ ،ﺳﻄﻮح ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﺑﻪ ﻃﻮر ﻧﻤﺎﻳﻲ ﺑﺎ اﻧﺪﻳﺲ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن اﻓﺰاﻳﺶ ﻣﻲ ﻳﺎﺑﻨﺪ. ﺷﻜﻞ -2ﺗﻮزﻳﻊ ﺳﻄﻮح ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﺑﺮاي ﻛﻮاﻧﺘﻴﺰه ﻛﻨﻨﺪة 3ﺑﻴﺘﻲ µ -lawﺑﺎ µ =40از ][1 اﻳﻦ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ،ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن µ − lawﻧﺎﻣﻴﺪه ﻣﻲ ﺷﻮد و اوﻟﻴﻦ ﺑﺎر ﺗﻮﺳﻂ smithاراﻳﻪ ﺷﺪ ] .[2اﻳﻦ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن در ﺧﻄﻮط ﺗﻠﻔﻦ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮد .اﮔﺮ ﺳﻴﮕﻨﺎل ) x(nﺑﺎ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﻳﻜﻨﻮاﺧﺖ 8ﺑﻴﺖ ﻛﻮاﻧﺘﻴﺰه ﺷﺪه ﺑﺎﺷﺪ ،ﻣﻘﺪار 255 ، µ اﻧﺘﺨﺎب ﻣﻲﺷﻮد. ﺷﻜﻞ -3ﻧﻤﻮﻧﻪاي از ﻛﺪ ﻛﺮدن ﺑﻪ روش µ-law در اﻳﻦ ﺗﻤﺮﻳﻦ ﻣﻲﺧﻮاﻫﻴﻢ اﺛﺮ ﻛﺪ ﻛﺮدن µ-lawرا روي ﺳﻴﮕﻨﺎل ﺻﻮت ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار دﻫﻴﻢ. -1-1در ﻣﺤﻴﻂ ،MATLABﺗﺎﺑﻌﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺗﺎﺑﻊ ) (2-1را ﭘﻴﺎدهﺳﺎزي ﻧﻤﺎﻳﺪ .ﻣﻘﺪار µرا 255و ﺑﺎزه xرا ] [-1,1ﻗﺮار دﻫﻴﺪ. -2-1ﻳﻚ ﺳﻴﮕﻨﺎل ﺻﻮت ورودي ﺑﺎ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن 16ﺑﻴﺖ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .ﻣﻲﺧﻮاﻫﻴﻢ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻌﻲ ﻛﻪ در ﻗﺴﻤﺖ 1-1 ﻃﺮاﺣﻲ ﻛﺮدهاﻳﺪ روي اﻳﻦ ﺳﻴﮕﻨﺎل ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن µ-lawاﻧﺠﺎم دﻫﻴﻢ .ﺑﺎ داﺷﺘﻦ 16ﺑﻴﺖ 65536 ،ﺳﻄﺢ ﺑﺮاي ﺳﻴﮕﻨﺎل ورودي ﺧﻮاﻫﻴﻢ داﺷﺖ ﻛﻪ در ﻣﺤﺪوده ) [-32768,32767ﻣﻲﺑﺎﺷﺪ .ﺳﻴﮕﻨﺎل ﺧﺮوﺟﻲ 8ﺑﻴﺘﻲ و ﺷﺎﻣﻞ 256ﺳﻄﺢ در ﻣﺤﺪوده )[-128,127ﺧﻮاﻫﺪ ﺑﻮد. ﺑﺮاي ﺑﺮدن ﻣﺤﺪوده ورودي ﻛﻪ 16ﺑﻴﺘﻲ اﺳﺖ ﺑﻪ ] ،[-1,1ﻣﻘﺎدﻳﺮ ورودي را ﺑﻪ 32768ﺗﻘﺴﻴﻢ ﻧﻤﺎﻳﻴﺪ و ﺳﭙﺲ ﺗﺎﺑﻊ را روي آن اﻋﻤﺎل ﻛﻨﻴﺪ .ﺳﭙﺲ ﺧﺮوﺟﻲ ﺗﺎﺑﻊ را در 127ﺿﺮب ﻧﻤﺎﻳﻴﺪ ﺗﺎ ﺧﺮوﺟﻲ در ﻣﺤﺪوده 8ﺑﻴﺘﻲ ﻗﺮار ﮔﻴﺮد.. روش دﻳﮕﺮي ﻛﻪ ﺑﺮاي اﻳﻦ ﭘﺮدازش ﭘﻴﺸﻨﻬﺎد ﻣﻲﺷﻮد ﺗﻐﻴﻴﺮ ﺗﺎﺑﻊ ﺗﻤﺮﻳﻦ 1-1ﺑﻪ ﮔﻮﻧﻪاي اﺳﺖ ﻛﻪ ورودي را در ﻣﺤﺪوده 16ﺑﻴﺘﻲ ﮔﺮﻓﺘﻪ و در ﺧﺮوﺟﻲ در ﻣﺤﺪوده 8ﺑﻴﺘﻲ ﺗﺤﻮﻳﻞ ﻧﻤﺎﻳﺪ .ﺷﻤﺎ ﻣﻲﺗﻮاﻧﻴﺪ از ﻫﺮ دوي اﻳﻦ روشﻫﺎ ﺑﺮاي ﭘﺮدازش ﺻﻮت اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﺪ. ﺳﻴﮕﻨﺎل org.wavرا ﻛﻪ در ﺗﻤﺮﻳﻦ ﺿﻤﻴﻤﻪ ﺷﺪه اﺳﺖ ﺑﺎ دﺳﺘﻮر زﻳﺮ ﺑﺎرﮔﺬاري ﻧﻤﺎﻳﻴﺪ):ﻣﻲﺗﻮاﻧﻴﺪ از ﻫﺮ ﻓﺎﻳﻞ ﺻﻮﺗﻲ دﻳﮕﺮي ﻛﻪ ﺑﺎ 16ﺑﻴﺖ ﻛﻮاﻧﺘﻴﺰه ﺷﺪه اﺳﺖ اﺳﺘﻔﺎده ﻛﻨﻴﺪ(. ;)'[y,f,n]=wavread('org.wav','native ﺑﺎ ﻗﺮار دادن ﻋﺒﺎرت ’ ‘nativeدر دﺳﺘﻮر ﻓﻮق ،ﻣﺤﺪوده ﺳﻴﮕﻨﺎل yدر ﻣﺤﺪوده ﻧﻤﻮﻧﻪ ﺑﺮداري nﺧﻮاﻫﺪ ﺑﻮد ..ﻣﻲﺗﻮاﻧﻴﺪ ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر minو ، maxﻛﻤﻴﻨﻪ و ﺑﻴﺸﻴﻨﻪ ﺳﻴﮕﻨﺎل yرا ﻣﺸﺎﻫﺪه ﻛﻨﻴﺪ ﺗﺎ ﻣﻄﻤﺌﻦ ﺷﻮﻳﺪ در ﻣﺤﺪوده ) [-32768,32767ﻗﺮار دارد. ﺣﺎل اﻳﻦ ﺳﻴﮕﻨﺎل را ﺑﻪ ﺗﺎﺑﻊ µ-lawاﻋﻤﺎل ﻧﻤﺎﻳﻴﺪ .ﺑﻪ ﺳﻴﮕﻨﺎل ﺧﺮوﺟﻲ و ﻓﺎﻳﻞ اﺻﻠﻲ ﮔﻮش دﻫﻴﺪ .ﭼﻪ ﺗﻔﺎوﺗﻲ اﺣﺴﺎس ﻣﻲﻛﻨﻴﺪ؟ ﻧﻤﻮدار اﻳﻦ دو ﺳﻴﮕﻨﺎل را در ﺣﻮزه زﻣﺎن ﺑﺎ دﺳﺘﻮر plotرﺳﻢ ﻧﻤﺎﻳﻴﺪ. -3-1ﺳﻴﮕﻨﺎل ﺧﺮوﺟﻲ ﻗﺴﻤﺖ 2-1را ﺑﻪ ﺗﺎﺑﻊ ﻋﻜﺲ µ-lawدﻫﻴﺪ ﺗﺎ ﻋﻜﺲ ﻋﻤﻞ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن روي آن اﻧﺠﺎم ﺷﻮد) .ﺷﻤﺎ ﺑﺎﻳﺪ ﺗﺎﺑﻊ ﻋﻜﺲ µ-lawرا ﻧﻴﺰ ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ( .ﺑﻪ اﻳﻦ ﺧﺮوﺟﻲ اﻳﻦ ﻗﺴﻤﺖ و ﻓﺎﻳﻞ اﺻﻠﻲ ﮔﻮش دﻫﻴﺪ .ﭼﻪ ﺗﻔﺎوﺗﻲ ﻣﻴﺎن آن ﻫﺎ وﺟﻮد دارد؟ ﻧﻤﻮدار اﻳﻦ دو ﺳﻴﮕﻨﺎل و ﻧﻴﺰ ﻧﻤﻮدار ﺧﻄﺎ)ﺗﻔﺎوت دو ﺳﻴﮕﻨﺎل( را رﺳﻢ ﻧﻤﺎﻳﻴﺪ. -4-1ﺗﺤﻘﻴﻖ ﻛﻨﻴﺪ ﭼﺮا در ﺧﻄﻮط ﺗﻠﻔﻦ از ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﻳﻜﻨﻮاﺧﺖ 8ﻳﺎ 16ﺑﻴﺘﻲ اﺳﺘﻔﺎده ﻧﻤﻲﺷﻮد؟ -5-1در ﻣﻮرد ﻛﺪ ﻛﺮدن ﺑﻪ روش A-lawﺗﺤﻘﻴﻖ ﻛﺮده و ﺗﻔﺎوت آن ﺑﺎ اﻳﻦ روش و ﻧﻴﺰ ﻛﺎرﺑﺮد ﻫﺮ ﻳﻚ را ﺗﻮﺿﻴﺢ دﻫﻴﺪ. -2 ﻛﺪ ﻛﺮدن ﭘﻴﺸﮕﻮﻳﺎﻧﻪ ﮔﺮﭼﻪ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ µ-lawﺟﻬﺖ ﻛﺪ ﻛﺮدن ﺻﻮت ،ﺣﺠﻢ دادهﻫﺎي ارﺳﺎﻟﻲ را ﻛﺎﻫﺶ ﻣﻲدﻫﺪ ،اﻣﺎ ﻫﻨﻮز ﻫﺮ ﻧﻤﻮﻧﻪ ﺳﻴﮕﻨﺎل ورودي را ﻛﺪ ﻛﺮده و ارﺳﺎل ﻣﻲﻧﻤﺎﻳﺪ .در ﻳﻚ ﺷﻜﻞ ﻣﻮج ﺻﻮت ﻣﻌﻤﻮﻟﻲ ،ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﺘﻮاﻟﻲ ﺑﺠﺰ در ﮔﺬارﻫﺎي ﺑﻴﻦ آواﻫﺎي ﻣﺘﻔﺎوت، ﻣﻘﺎدﻳﺮ ﻣﺸﺎﺑﻬﻲ دارﻧﺪ .ﻳﻚ راه ﺑﺮاي ﺑﻬﺮه ﮔﻴﺮي از اﻳﻦ ﻫﻤﺒﺴﺘﮕﻲ اﺳﺘﻔﺎده از ﻛﺪ ﻛﺮدن ﺑﻪ روش ﭘﻴﺸﮕﻮﻳﻲ ﺧﻄﻲ اﺳﺖ .اﺑﺘﺪا ﻧﻤﻮﻧﻪ ) ﻓﻌﻠﻲ ) x(nاز روي ﺗﺮﻛﻴﺐ ﺧﻄﻲ ﻧﻤﻮﻧﻪ ﻫﺎي ﻗﺒﻠﻲ ﺳﺎﺧﺘﻪ ﺷﺪه ) x (n − kﺗﺨﻤﻴﻦ زده ﻣﻲ ﺷﻮد : ∧ ) x p ( n) = ∑ a k x ( n − k )(1-2 ﺳﭙﺲ ﺧﻄﺎي ﺑﻴﻦ ﻣﻘﺪار ﻧﻤﻮﻧﻪ اﺻﻠﻲ و ﻣﻘﺪار ﭘﻴﺶ ﺑﻴﻨﻲ ﺷﺪه )(2-2 )d ( n) = x( n) − x p ( n ﺑﻪ ) d(nﻛﻮاﻧﺘﻴﺰه ﻣﻲ ﺷﻮد و ﺑﻮﺳﻴﻠﺔ ﻛﻠﻤﺔ ﻛﺪ ) ،c(nﻛﺪ ﻣﻲ ﺷﻮد. در دي ﻛﺪ ﻛﻨﻨﺪه ،اﺑﺘﺪا ﻫﻤﺎن ﻣﻘﺪار ﭘﻴﺸﮕﻮﻳﻲ ﺷﺪه از روي ﻧﻤﻮﻧﻪ ﻫﺎي ﻗﺒﻠﻲ دي ﻛﺪ ﺷﺪه ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد .اﻳﻦ ﻣﻘﺪار ﺳﭙﺲ ﺑﻪ ﻣﻘﺪار ﺧﻄﺎي دي ﻛﺪ و ﻛﻮاﻧﺘﻴﺰه ﺷﺪه اﺿﺎﻓﻪ ﻣﻲ ﺷﻮد ﺗﺎ ﻣﻘﺪار ﻛﻮاﻧﺘﻴﺰه ﺷﺪه ﺑﺮاي ﻧﻤﻮﻧﻪ ﻓﻌﻠﻲ ﺑﺪﺳﺖ آﻳﺪ .ﻳﻌﻨﻲ: )(3-2 ﺑﻠﻮك دﻳﺎﮔﺮام ﻛﺪ ﻛﻨﻨﺪه و دي ﻛﺪ ﻛﻨﻨﺪه ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺪ ﻛﻨﻨﺪة ﭘﻴﺸﮕﻮ در ﺷﻜﻞ 4ﻧﺸﺎن داده ﺷﺪه اﺳﺖ .ﺳﻴﺴﺘﻢ ﻛﺪ ﻛﻨﻨﺪه ﭘﻴﺸﮕﻮ ﻣﻌﻤﻮﻵً ﺑﻪ ﻣﺪوﻻﺳﻴﻮن ﻛﺪ ﺷﺪه ﺳﻴﮕﻨﺎل ﺗﻔﺎﺿﻠﻲ ﻳﺎ “DPCM”1ﺷﻨﺎﺧﺘﻪ ﻣﻲ ﺷﻮد .ﻛﻠﻤﺔ »ﺗﻔﺎﺿﻠﻲ« ﺑﻪ اﻳﻦ ﻣﻮﺿﻮع اﺷﺎره ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺳﻴﮕﻨﺎل ﺧﻄﺎي ﭘﻴﺸﮕﻮﻳﻲ ﻛﺪ ﻣﻲﺷﻮد و “PCM”2ﺑﻪ ﻃﺮح ﻣﺪوﻻﺳﻴﻮن اﺷﺎره ﻣﻲ ﻛﻨﺪ ﻛﻪ در آن ﻫﺮ ﺑﻴﺖ ﻛﺪ ﺷﺪه ﻳﻚ ﺳﻤﺒﻞ اﺳﺖ ﻛﻪ ﺑﻮﺳﻴﻠﻪ ﻳﻚ ﭘﺎﻟﺲ )ﺑﺎ داﻣﻨﻪ ﺻﻔﺮ ﻳﺎ ﻳﻚ( ﻧﺸﺎن داده ﻣﻲ ﺷﻮد .ﻛﻮاﻧﺘﻴﺰه ﻛﺮدن ﻣﺴﺘﻘﻴﻢ ﻳﻚ ﻧﻤﻮﻧﺔ اوﻟﻴﻪ ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ در ﻛﺪ ﻛﺮدن، ” “PCMﻧﺎﻣﻴﺪه ﻣﻲ ﺷﻮد .در ﺻﻮرﺗﻲ ﻛﻪ ﺳﻴﮕﻨﺎل ﺗﻔﺎﺿﻠﻲ ﺗﻨﻬﺎ ﺣﺎﺻﻞ ﺗﻔﺎﺿﻞ ﻧﻤﻮﻧﻪ ﻓﻌﻠﻲ ﺑﺎ ﻧﻤﻮﻧﻪ ﻗﺒﻠﻲ ﺑﺎﺷﺪ ﺑﻪ ﻣﺪوﻻﺳﻴﻮن، " "DPCMو در ﺻﻮرﺗﻲ ﻛﻪ ﺑﺮ اﺳﺎس وزﻧﻲ از nﻧﻤﻮﻧﻪ ﻗﺒﻠﻲ ﺑﺎﺷﺪ 3"ADPCM " ،ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد. 1 )Differential Pulse coded modulation (DPCM )Pulse coded modulation (PCM 3 )Adaptive Differential Pulse coded modulation (ADPCM 2 ﺷﻜﻞ -4ﻛﺪ ﻛﺮدن ﭘﻴﺸﮕﻮﻳﺎﻧﻪ )اﻟﻒ( ﻛﺪ ﻛﻨﻨﺪه )ب( دي ﻛﺪ ﻛﻨﻨﺪه در اﻳﻦ ﺗﻤﺮﻳﻦ ،ﺷﻤﺎ ﺑﺎﻳﺪ ﻳﻚ ﺗﺎﺑﻊ ﺑﺎ ﻧﺎم DPCM.mﺑﻨﻮﻳﺴﻴﺪ .اﻳﻦ ﺗﺎﺑﻊ ،ﻳﻚ ﻓﺎﻳﻞ ﺻﻮﺗﻲ و ﻧﻴﺰ ﺗﻌﺪاد ﺑﻴﺖﻫﺎي ﺧﺮوﺟﻲ را ﮔﺮﻓﺘﻪ و ﺑﺮدار ﺗﻔﺎﺿﻞ ﻧﻤﻮﻧﻪﻫﺎ را ﺑﺮﻣﻲﮔﺮداﻧﺪ: )function [diff,err]=dpcm(infilename,n ﻓﺎﻳﻞ ﺻﻮﺗﻲ ورودي 16ﺑﻴﺘﻲ ﺑﻮده و آن را ﺑﻪ ﺻﻮرت زﻳﺮ ﻓﺮاﺧﻮاﻧﻲ ﻧﻤﺎﻳﻴﺪ: ;)'[y,f,n]=wavread('org.wav','native ﺗﺎﺑﻊ ﺷﻤﺎ ﺑﺎﻳﺪ: اﻟﻒ(ﺗﻔﺎوت ﻫﺮ دو ﻧﻤﻮﻧﻪ ﻣﺘﻮاﻟﻲ از ﺳﻴﮕﻨﺎل ورودي را ﻣﺤﺎﺳﺒﻪ ﻧﻤﺎﻳﺪ ).از ﺗﺎﺑﻊ diffدر MATLABاﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﺪ.(. ب(اﻳﻦ ﺗﻔﺎوتﻫﺎ را در ﻣﺤﺪوده ] [-2n-1,2n-1-1ﻛﻮاﻧﺘﻴﺰه ﺧﻄﻲ ﻛﺮده و ﺧﺮوﺟﻲ را در ﻳﻚ ﺑﺮدار ﺑﺎ ﻧﺎم diffذﺧﻴﺮه ﻧﻤﺎﻳﺪ. ج(ﻫﻤﭽﻨﻴﻦ ﻳﻚ ﺑﺮدار ﺑﺎ ﻧﺎم errاﻳﺠﺎد ﻧﻤﺎﻳﺪ ﻛﻪ ﺗﻔﺎوت ﻫﺮ دراﻳﻪ diffرا ﺑﺎ ﻣﻘﺪار آن ﭘﻴﺶ از ﻛﻮاﻧﺘﻴﺰه ﻛﺮدن را ﻧﺸﺎن دﻫﺪ. د( ﺗﺎﺑﻊ idpcm.mرا ﻧﻴﺰ ﻛﻪ ﻋﻜﺲ ﺗﺎﺑﻊ ﻓﻮق اﺳﺖ ﭘﻴﺎده ﺳﺎزي ﻧﻤﺎﻳﻴﺪ .اﻳﻦ ﺗﺎﺑﻊ ،اوﻟﻴﻦ ﻧﻤﻮﻧﻪ ﺳﻴﮕﻨﺎل اﺻﻠﻲ را ﺑﻪ ﻫﻤﺮاه ﺑﺮدار diff ﮔﺮﻓﺘﻪ و ﺳﻴﮕﻨﺎل اوﻟﻴﻪ را ﺑﺎزﺳﺎزي ﻣﻲﻧﻤﺎﻳﺪ. ه( ﺗﻔﺎوت ﺳﻴﮕﻨﺎل ﺑﺎزﺳﺎزي ﺷﺪه و ﺳﻴﮕﻨﺎل اوﻟﻴﻪ را ﻣﺤﺎﺳﺒﻪ ﻧﻤﻮده و ﺑﺎ ﺑﺮدار errﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ. و( ﺑﻪ ﺳﻴﮕﻨﺎل اﺻﻠﻲ و ﺑﺎزﺳﺎزي ﺷﺪه ﮔﻮش دﻫﻴﺪ .ﭼﻪ ﺗﻔﺎوﺗﻲ ﺑﻴﻦ آنﻫﺎ وﺟﻮد دارد؟ ز( ﻣﻘﺪار nرا ﺑﻪ 3و 2ﺗﻐﻴﻴﺮ داده و دوﺑﺎره ﺑﻪ ﺳﻴﮕﻨﺎلﻫﺎ ﮔﻮش دﻫﻴﺪ؟ آﻳﺎ ﺗﻐﻴﻴﺮ ﻣﻘﺪار nروي ﻛﻴﻔﻴﺖ ﺳﻴﮕﻨﺎل ﺑﺎزﺳﺎزي ﺷﺪه ﺗﺎﺛﻴﺮ ﻗﺎﺑﻞ ﺗﻮﺟﻬﻲ دارد؟ ح( ﻣﻴﺰان ﺧﻄﺎ را ﺑﻪ دﺳﺖ آورﻳﺪ. در اداﻣﻪ ﻧﻤﻮﻧﻪاي از آﻧﭽﻪ ﺑﺎﻳﺪ اﻧﺠﺎم دﻫﻴﺪ آورده ﺷﺪه اﺳﺖ: X:0,10,15,12 ∆X:10,5,-3 Diff (quantization for n=4):7,5,-3 ERR:3,0,0 X’:0,7,12,9 X-X’=0,3,3,3 -3 ﺑﺮرﺳﻲ ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام ﺳﻴﮕﻨﺎل ﺻﻮت ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ ﻣﻲداﻧﻴﺪ ،ﺗﺒﺪﻳﻞ ﻓﻮرﻳﻪ ﮔﺴﺴﺘﻪ ،ﻃﻴﻒ ﻓﺮﻛﺎﻧﺴﻲ ﺳﻴﮕﻨﺎل را در ﻛﻞ زﻣﺎنﻫﺎ ﻧﺸﺎن ﻣﻲدﻫﺪ؛ در ﺣﺎﻟﻲ ﻛﻪ در ﺑﺮﺧﻲ ﻛﺎرﺑﺮدﻫﺎ ،ﻧﻴﺎز ﺑﻪ ﻧﻤﺎﻳﺶ ﻃﻴﻒ ﻓﺮﻛﺎﻧﺴﻲ ﻣﺤﺪوده ﺧﺎﺻﻲ از ﺳﻴﮕﻨﺎل را دارﻳﻢ .ﻳﻜﻲ از راﻫﻬﺎي ﺣﻞ اﻳﻦ ﻣﺸﻜﻞ ،اﺳﺘﻔﺎده از ﺗﺒﺪﻳﻞ ) Short-Time Fourier Transform (STFTﺑﻪ ﺟﺎي ﺗﺒﺪﻳﻞ Discrete-Time Fourier Transformاﺳﺖ .در اﻳﻦ ﺗﺒﺪﻳﻞ ،ﺳﻴﮕﻨﺎل ﺑﺮ روي ﻣﺤﻮر زﻣﺎن ،ﺑﻪ ﺑﺎزهﻫﺎي ﻛﻮﭼﻚ زﻣﺎﻧﻲ ﺗﻘﺴﻴﻢ ﺷﺪه و ﺗﺒﺪﻳﻞ ﻓﻮرﻳﻪ ﺑﺮاي اﻳﻦ ﺑﺎزهﻫﺎي ﻛﻮﭼﻚ زﻣﺎﻧﻲ ﻣﺤﺎﺳﺒﻪ ﻣﻲﮔﺮدد .در اﻧﺘﻬﺎ ،ﻧﻤﻮدار داﻣﻨﻪ ﺳﻴﮕﻨﺎل ﺑﺮ اﺳﺎس زﻣﺎن و ﻓﺮﻛﺎﻧﺲ رﺳﻢ ﻣﻲﮔﺮدد .ﺗﺒﺪﻳﻞ STFTﺑﻪ ﺻﻮرت زﻳﺮ ﻗﺎﺑﻞ ﺗﻌﺮﻳﻒ اﺳﺖ: ∞+ STFT ( x(t )) = X (τ , ω ) = ∫ x(t ) w(t − τ )e − jωt dt ∞− ∞ − j ωn ∑ x[n]w[n − m]e = ) STFT ( x[n]) = X (m, ω ∞n = − ﻛﻪ در آن w(t)،ﻳﺎ ] w[nﺗﺎﺑﻊ ﭘﻨﺠﺮه ﻣﻲﺑﺎﺷﺪ. ﻳﻚ ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام ،ﻧﻤﺎﻳﺶ دﻫﻨﺪه داﻣﻨﻪ ﺗﺒﺪﻳﻞ STFTﺑﺮ روي ﻧﻤﻮدار زﻣﺎن -ﻓﺮﻛﺎﻧﺲ ﻣﻲﺑﺎﺷﺪ .اﻳﻦ ﻧﻤﻮدار ،ﺑﺮاي ﺗﺤﻠﻴﻞ ﺗﻐﻴﻴﺮات ﻓﺮﻛﺎﻧﺴﻲ ﺳﻴﮕﻨﺎل ﺻﻮت در ﻃﻮل زﻣﺎن ﻣﻨﺎﺳﺐ اﺳﺖ .در ﻳﻚ ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام ،ﻣﺤﻮر اﻓﻘﻲ ،ﻣﺤﻮر زﻣﺎن و ﻣﺤﻮر ﻋﻤﻮدي ،ﻓﺮﻛﺎﻧﺲ اﺳﺖ .رﻧﮓ ﻧﻤﻮدار در ﻫﺮﻧﻘﻄﻪ ،داﻣﻨﻪ ﺳﻴﮕﻨﺎل را در آن زﻣﺎن و ﻓﺮﻛﺎﻧﺲ ﻣﺸﺨﺺ ﻣﻲﻧﻤﺎﻳﺪ. ﺷﻜﻞ :5ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام ﻛﻠﻤﻪ [2] compute در ﺷﻜﻞ ،5ﻣﺤﻮر اﻓﻘﻲ ،ﻣﺤﻮر زﻣﺎن و ﻣﺤﻮر ﻋﻤﻮدي ،ﻣﺤﻮر ﻓﺮﻛﺎﻧﺲ را ﺗﺎ 8000ﻫﺮﺗﺰ ﻧﺸﺎن ﻣﻲدﻫﺪ .رﻧﮓﻫﺎ ﻧﻴﺰ ﻣﻬﻤﺘﺮﻳﻦ ﭘﻴﻚ- ﻫﺎي ﺻﻮﺗﻲ را ﺑﻪ ازاي ﻫﺮ ﻓﺮﻳﻢ زﻣﺎن ﻣﺸﺨﺺ ﻣﻲﻧﻤﺎﻳﻨﺪ .در اﻳﻦ ﺗﺼﻮﻳﺮ ،رﻧﮓ ﻗﺮﻣﺰ ﺑﻴﺸﺘﻴﻦ اﻧﺮژي و ﺑﻌﺪ از آن ﺑﻪ ﺗﺮﺗﻴﺐ رﻧﮓﻫﺎي ﻧﺎرﻧﺠﻲ ،زرد ،ﺳﺒﺰ ،ﻓﻴﺮوزهاي ،آﺑﻲ ،ﻛﻬﺮﺑﺎﻳﻲ ،ﺧﺎﻛﺴﺘﺮي و ﺳﻔﻴﺪ داراي اﻧﺮژي ﻛﻤﺘﺮي ﻫﺴﺘﻨﺪ. ﻳﻜﻲ از ﻛﺎرﺑﺮدﻫﺎي اﻳﻨﮕﻮﻧﻪ ﺗﺼﺎوﻳﺮ ،ﺷﻨﺎﺧﺖ آواﻫﺎﺳﺖ .ﻳﻚ ﻧﻤﻮدارﺧﻮان ﺣﺮﻓﻪاي ﺑﻪ راﺣﺘﻲ ﻣﻲﺗﻮاﻧﺪ ﻛﻠﻤﻪ ” “computeرا از روي ﻧﻤﻮدار ﻓﻮق ﺗﺸﺨﻴﺺ دﻫﺪ اﻣﺎ ﺑﺮاي اﻓﺮاد ﻋﺎدي اﻳﻦ ﻛﺎر ،ﻛﻤﻲ ﺳﺨﺖ ﺑﻪ ﻧﻈﺮ ﻣﻲرﺳﺪ .در ﻳﻚ ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام ،ﻫﺮ آوا، اﻟﮕﻮي ﻣﺨﺼﻮص ﺑﻪ ﺧﻮد را داراﺳﺖ ﻛﻪ ﺑﻪ اﻳﻦ اﻟﮕﻮ formant ،ﮔﻔﺘﻪ ﻣﻲﺷﻮد. ﺷﻜﻞ :6ﻧﻤﻮدار formantﺑﺮاي آواي @ در ﻛﻠﻤﻪ [2] bat ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ اﺷﺎره ﺷﺪ ،ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام ،ﻣﻲﺗﻮاﻧﺪ ﺗﺼﻮﻳﺮي از ﻓﺮﻛﺎﻧﺲﻫﺎي ﺳﻴﮕﻨﺎل را در ﺑﺎزه ﻣﺤﺪودي از زﻣﺎن ﻧﺸﺎن دﻫﺪ. اﮔﺮ ﺑﺎزه زﻣﺎﻧﻲ ﻣﻮرد ﺑﺮرﺳﻲ ،ﻛﻮﺗﺎه در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮد ،دﻧﺒﺎل ﻛﺮدن ﺗﻐﻴﻴﺮات ﻓﺮﻛﺎﻧﺴﻲ ﺳﻴﮕﻨﺎل آﺳﺎن ﺧﻮاﻫﺪ ﺑﻮد .ﺑﺎ اﻳﻦ وﺟﻮد ،ﺑﻪ دﻟﻴﻞ ﻣﻴﺰان اﻃﻼﻋﺎت ﻛﻢ در ﻳﻚ ﺑﺎزه زﻣﺎﻧﻲ ﻣﺤﺪود ،اﻧﺪازهﮔﻴﺮي دﻗﻴﻖ ﻓﺮﻛﺎﻧﺲ ﺳﻴﮕﻨﺎل ﺑﺴﻴﺎر دﺷﻮار ﺧﻮاﻫﺪ ﺑﻮد .از ﺳﻮي دﻳﮕﺮ ،در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺑﺎزه زﻣﺎﻧﻲ ﺑﻴﺸﺘﺮ ،ﻋﻠﻴﺮﻏﻢ ﺑﻬﺒﻮد در دﻗﺖ اﻧﺪازهﮔﻴﺮي ﻓﺮﻛﺎﻧﺲ ،ﻣﺎﻧﻊ دﻧﺒﺎل ﻛﺮدن دﻗﻴﻖ ﺗﻐﻴﻴﺮات ﻓﺮﻛﺎﻧﺲ ﻣﻲﮔﺮدد .ﺑﺮاي ﻣﺜﺎل ،ﺑﺮاي ﻳﻚ ﺳﻴﮕﻨﺎل ﻛﻪ ﺣﺎﺻﻞ ﺟﻤﻊ دو ﺳﻴﮕﻨﺎل ﺳﻴﻨﻮﺳﻲ ﺑﺎ ﻓﺮﻛﺎﻧﺲ ﺗﻘﺮﻳﺒﺎ ﻣﺸﺎﺑﻪ اﺳﺖ ،ﺑﺮاي ﺟﺪاﺳﺎزي دﻗﻴﻖ ﻓﺮﻛﺎﻧﺲﻫﺎ از ﻫﻢ، ﺑﻪ ﺑﺎزه زﻣﺎﻧﻲ ﻃﻮﻻﻧﻲ ﻧﻴﺎز اﺳﺖ .در اﻳﻦ ﺗﻤﺮﻳﻦ ،از ﺷﻤﺎ ﺧﻮاﺳﺘﻪ ﻣﻲﺷﻮد ﻛﻪ اﻳﻦ trade-offرا ﺑﻴﻦ ﻃﻮل ﻣﺤﺪوده زﻣﺎﻧﻲ و وﺿﻮح ﻓﺮﻛﺎﻧﺲ ﺑﺮرﺳﻲ ﻧﻤﺎﻳﻴﺪ. -1-3ﺳﻴﮕﻨﺎل زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .اﻳﻦ ﺳﻴﮕﻨﺎل ﻳﻚ beat-noteاﺳﺖ. ) x(t ) = A cos(2π ( f c − f ∆ )t ) + B cos(2π ( f c + f ∆ )t ﺳﻴﮕﻨﺎل ﺑﺎﻻ را در ﻣﺤﻴﻂ MATLABرﺳﻢ ﻛﺮده و ﻧﻤﺎﻳﺶ دﻫﻴﺪ .ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر soundscﺑﻪ اﻳﻦ ﺳﻴﮕﻨﺎل ﮔﻮش ﻛﻨﻴﺪ. -2-3ﺣﺎل ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮرات زﻳﺮ ،ﻧﻤﻮدار اﺳﭙﻜﺘﺮوﮔﺮام ﺳﻴﮕﻨﺎل را رﺳﻢ ﻛﻨﻴﺪ) .دﺳﺘﻮر specgramدر ﻧﺴﺨﻪﻫﺎي ﺟﺪﻳﺪ MATLABﺑﺎ دﺳﺘﻮر spectrogramﺟﺎﻳﮕﺰﻳﻦ ﺷﺪه اﺳﺖ .اﻣﺎ در اﻳﻦ ﻗﺴﻤﺖ از ﺗﻤﺮﻳﻦ ،از ﺷﻤﺎ ﺧﻮاﺳﺘﻪ ﻣﻲﺷﻮد ﻛﻪ ﺑﺎ ﻫﻤﺎن دﺳﺘﻮر ﻗﺒﻠﻲ ﻛﺎر ﻛﻨﻴﺪ .در اﻳﻦ دﺳﺘﻮر ،nfft،ﻃﻮل ﭘﻨﺠﺮه Hammingﻣﻮرد اﺳﺘﻔﺎده ﺟﻬﺖ ﺑﺮش ﺳﻴﮕﻨﺎل و ،fsﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪﺑﺮداري ﺳﻴﮕﻨﺎل اﺳﺖ(. ;nfft=2048 ;)specgram(x,nfft,fs ;))colormap(1-gray(256 آﻳﺎ در اﻳﻦ ﻧﻤﻮدار ،ﻓﺮﻛﺎﻧﺲﻫﺎي ﺳﻴﮕﻨﺎل ﺑﻪ ﺧﻮﺑﻲ ﻣﺸﺨﺺ ﻫﺴﺘﻨﺪ؟ ﺑﺮاي وﺿﻮح ﺑﻴﺸﺘﺮ ﻣﻲﺗﻮاﻧﻴﺪ روي ﻧﻤﻮدار زوم ﻛﻨﻴﺪ . -3-3ﺣﺎل در ﻳﻚ ﺣﻠﻘﻪ ،forﻣﻘﺪار nfftرا ﺗﻐﻴﻴﺮ دﻫﻴﺪ. ]nfft = [2048,1024,256,128,64 ﺣﺎل ﻧﻤﻮدارﻫﺎي ﺧﺮوﺟﻲ اﻳﻦ ﻗﺴﻤﺖ را ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻣﻘﺎﻳﺴﻪ ﻧﻤﺎﻳﻴﺪ .آﻳﺎ ﺗﻐﻴﻴﺮ اﻧﺪازه nfftﺑﺮ وﺿﻮح ﺗﺼﻮﻳﺮ و ﻧﻤﺎﻳﺶ ﺟﺰﺋﻴﺎت ﻓﺮﻛﺎﻧﺴﻲ ﺗﺎﺛﻴﺮ ﮔﺬار اﺳﺖ؟ ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ ﺑﻬﺘﺮﻳﻦ ﻃﻮل ﭘﻨﺠﺮه در اﻳﻦ ﺑﺮرﺳﻲ ،ﭼﻘﺪر اﺳﺖ؟ -4-3ﺣﺎل دﺳﺘﻮر specgramرا ﺑﺎ دﺳﺘﻮر spectrogramﺟﺎﻳﮕﺰﻳﻦ ﻛﻨﻴﺪ .ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ،HELP ﻣﺘﻐﻴﺮﻫﺎي ورودي را ﺑﻪ درﺳﺘﻲ ﻣﺸﺨﺺ ﻧﻤﺎﻳﻴﺪ .ﻛﺪ زﻳﺮ ﻧﻤﻮﻧﻪاي از اﺳﺘﻔﺎده از اﻳﻦ دﺳﺘﻮر را ﻧﺸﺎن ﻣﻲدﻫﺪ: ;)spectrogram(x,nfft,nfft-10,nfft,fs ﻗﺴﻤﺖ 3-3را ﻧﻴﺰ ﺑﺮاي اﻳﻦ ﻗﺴﻤﺖ ﺗﻜﺮار ﻛﻨﻴﺪ و ﻧﺘﺎﻳﺞ را ﺗﺤﻠﻴﻞ ﻧﻤﺎﻳﻴﺪ. -5-3ﻛﺪ زﻳﺮ را در ﻳﻚ ﻓﺎﻳﻞ در MATLABذﺧﻴﺮه ﻛﺮده و ﻧﺘﺎﻳﺞ را ﺗﺤﻠﻴﻞ ﻧﻤﺎﻳﻴﺪ .در اﻳﻦ ﻗﺴﻤﺖ ،ﺑﻬﺘﺮﻳﻦ اﻧﺪازه nfftﺑﺮاي ﻧﻤﺎﻳﺶ ﺗﻐﻴﻴﺮات ﻓﺮﻛﺎﻧﺴﻲ ﺳﻴﮕﻨﺎل ﭼﻘﺪر اﺳﺖ؟ fsamp =11025; % set sampling frequency dt =1/fsamp; % set sampling interval dur = 1.5;%set signal duration in seconds tt=0:dt:dur; % create vector of time samples psi =2*pi*(100+200*tt+500*tt.*tt);% set argument for chirp function xx=7.7*cos(psi);% modulate signal soundsc(xx,fsamp);% play signal for nfft = [2048,1024,256,128] % Window size % Compute spectrogram in Hamming window ;figure ;)specgram(xx,nfft,fsamp end -6-3ﺑﻬﺘﺮﻳﻦ اﻧﺪازه nfftدر ﻗﺴﻤﺖ 3-3و 5-3را ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ؟ آﻳﺎ ﻧﺘﺎﻳﺞ ﺣﺎﺻﻞ از 3-3و 5-3ﻣﻲﺗﻮاﻧﻨﺪ trade-offذﻛﺮ ﺷﺪه در اﻳﻦ ﺗﻤﺮﻳﻦ را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن دﻫﻨﺪ؟ -4 ﻓﻴﺘﻠﺮ ﻛﺮدن ﺳﻴﮕﻨﺎل ﺻﻮت -1-4ﻳﻚ ﻓﺎﻳﻞ ﺻﻮﺗﻲ ﺑﺎ ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪﺑﺮداري 8 ،ﻛﻴﻠﻮﻫﺮﺗﺰ را در MATLABﺑﺨﻮاﻧﻴﺪ. -2-4ﻳﻚ ﺳﻴﮕﻨﺎل ﺳﻴﻨﻮﺳﻲ ﺑﺎ ﺗﻌﺪاد ﻧﻤﻮﻧﻪﻫﺎي ﻫﻤﺎن ﻓﺎﻳﻞ ﺻﻮﺗﻲ و ﺑﺎ ﻓﺮﻛﺎﻧﺲ 3.5ﻛﻴﻠﻮﻫﺮﺗﺰ در MATLABﺑﺴﺎزﻳﺪ. ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪﺑﺮداري را 8ﻛﻴﻠﻮﻫﺮﺗﺰ اﻧﺘﺨﺎب ﻧﻤﺎﻳﻴﺪ. -3-4اﻳﻦ دو ﺳﻴﮕﻨﺎل را ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻧﻤﺎﻳﻴﺪ .ﻧﻤﻮدار آن را ﻧﻤﺎﻳﺶ داده و ﺑﻪ ﺳﻴﮕﻨﺎل ﺟﺪﻳﺪ ﮔﻮش ﻛﻨﻴﺪ. -4-4ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ ﻓﻴﻠﺘﺮ ﺑﺎﻻﮔﺬر ،ﺳﻴﮕﻨﺎﻟﻲ را ﻛﻪ ﺳﺎﺧﺘﻪاﻳﺪ ﻓﻴﻠﺘﺮ ﻧﻤﺎﻳﻴﺪ) ﻣﻲﺗﻮاﻧﻴﺪ از ﺗﻤﺮﻳﻦ 4از HW-1ﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ .(.ﻓﺮﻛﺎﻧﺲ ﻗﻄﻊ ﻓﻴﻠﺘﺮ را ﻃﻮري اﻧﺘﺨﺎب ﻧﻤﺎﻳﻴﺪ ﻛﻪ ﺳﻴﮕﻨﺎل ﺳﻴﻨﻮﺳﻲ را ﻓﻴﻠﺘﺮ ﻧﻤﺎﻳﺪ .ﻃﻮل ﻓﻴﻠﺘﺮ را 50ﺑﮕﺬارﻳﺪ .دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ ﻓﻴﻠﺘﺮ ﺑﺎﻻﮔﺬر ﺑﺎﺷﺪ. -5-4ﺑﻪ ﺳﻴﮕﻨﺎل ﺟﺪﻳﺪ ﮔﻮش دﻫﻴﺪ .ﭼﻪ ﺗﻔﺎوﺗﻲ ﺑﺎ ﺳﻴﮕﻨﺎل ﻗﺒﻠﻲ دارد؟ ﻣﺮاﺟﻊ [1]. B.Smith, “Instantaneous Companding of Quantized Signals”, Bell System Tech. J., Vol.36, No.3, pp.653-709, May 1957. [2]. http://cslu.cse.ogi.edu/tutordemos/SpectrogramReading/spectrogram_reading.html
© Copyright 2026 Paperzz