HW1 link

‫ﺑﺴﻤﻪ ﺗﻌﺎﻟﻲ‬
‫ﺳﻴﺴﺘﻢ ﻫﺎي ﭼﻨﺪرﺳﺎﻧﻪاي )‪(40-342‬‬
‫داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫دﻛﺘﺮ ﻣﻬﺪي اﻣﻴﺮي‬
‫‪ 1‬اﺳﻔﻨﺪ ‪1389‬‬
‫ﺗﻜﻠﻴﻒ ﺷﻤﺎره ‪ :1‬آﺷﻨﺎﻳﻲ ﺑﺎ ‪ Aliasing ،Sampling‬و ‪Quantization‬‬
‫ﻣﻘﺪﻣﻪ‬
‫ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ در درس ﺑﺎ ﻣﻔﻬﻮم ﺳﻴﮕﻨﺎل دﻳﺠﻴﺘﺎل آﺷﻨﺎ ﺷﺪﻳﺪ‪ ،‬دﻳﺠﻴﺘﺎل ﻛﺮدن ﺳﻴﮕﻨﺎل ﺷﺎﻣﻞ دو ﻣﺮﺣﻠﻪ ﻧﻤﻮﻧﻪ ﺑﺮداري‪ 1‬و ﻛﻮاﻧﺘﻴﺰه‬
‫ﻛﺮدن‪ 2‬ﺳﻴﮕﻨﺎل اﺳﺖ‪ .‬ﺷﻤﺎ در اﻳﻦ ﺗﻜﻠﻴﻒ ﺑﺎ ﻧﻤﻮﻧﻪ ﺑﺮداري ﺳﻴﮕﻨﺎل ﭘﻴﻮﺳﺘﻪ در زﻣﺎن و ﭘﺪﻳﺪه ‪ aliasing‬و ﻧﻴﺰ ﻛﻮاﻧﺘﻴﺰه ﻛﺮدن ﺳﻴﮕﻨﺎل‬
‫آﺷﻨﺎ ﺧﻮاﻫﻴﺪ ﺷﺪ‪ .‬ﻫﻤﭽﻨﻴﻦ اﺛﺮات اﻳﻦ ﭘﺮدازش را روي ﺳﻴﮕﻨﺎﻟﻬﺎي ﺻﻮﺗﻲ و ﺗﺼﻮﻳﺮي ﺑﺮرﺳﻲ ﺧﻮاﻫﻴﺪ ﻛﺮد‪.‬‬
‫آﻧﭽﻪ ﻛﻪ ﺑﺎﻳﺴﺘﻲ ﺗﺤﻮﻳﻞ داده ﺷﻮد ﺷﺎﻣﻞ ﭘﺎﺳﺦ ﺳﻮاﻻت ﻣﻄﺮح ﺷﺪه در ﺻﻮرت ﺗﻤﺮﻳﻦﻫﺎ )در ﻗﺎﻟﺐ ﻳﻚ ﮔﺰارش ﺑﺎ ﻓﺮﻣﺖ ‪،(PDF‬‬
‫ﻧﻤﻮدارﻫﺎ و ﺷﻜﻞﻫﺎي ﺧﺮوﺟﻲ ‪ m‬ﻓﺎﻳﻞﻫﺎ و ‪ m‬ﻓﺎﻳﻠﻬﺎ ﻣﻲﺑﺎﺷﺪ‪ .‬ﻟﻄﻔﺎ ﺗﻤﺎﻣﻲ ﻓﺎﻳﻞﻫﺎ را ﺑﻪ ﺻﻮرت ﻳﻚ ﻓﺎﻳﻞ ﻓﺸﺮده‪ ،‬ﻛﻪ ﻧﺎم آن در‬
‫ﻗﺎﻟﺐ ‪ MM_HW1_LastName_StudentID‬ﺑﺎﺷﺪ ﻛﻪ در آن ﺑﻪ ﺟﺎي ‪ LastName‬ﻧﺎم ﺧﺎﻧﻮادﮔﻲ ﺷﻤﺎ و ﺑﻪ ﺟﺎي‬
‫‪ StudentID‬ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ ﺷﻤﺎ ﻗﺮار ﻣﻲﮔﻴﺮد‪ ،‬ﺑﻪ آدرس )‪ ([email protected]‬ﺑﻔﺮﺳﺘﻴﺪ‪ .‬ﻟﻄﻔﺎ ﻋﻨﻮان ‪ email‬ﺧﻮد‬
‫را ‪ MM-HW1‬ﻗﺮار دﻫﻴﺪ‪ .‬ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ ﺧﺮوﺟﻲﻫﺎ ﺳﺎﻋﺖ ‪ 23:59‬ﺗﺎرﻳﺦ ‪ 1389/12/15‬ﻣﻲﺑﺎﺷﺪ‪.‬‬
‫‪Sampling‬‬
‫‪Quantization‬‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪ -١‬ﻧﻤﻮﻧﻪ ﺑﺮداري از ﺻﻮت در ﻓﺮﻛﺎﻧﺴﻬﺎي ﻣﺨﺘﻠﻒ‬
‫در اﻳﻦ ﺗﺠﺮﺑﻪ‪ ،‬ﺷﻤﺎ ﺻﺪاي ﺧﻮد را ﺿﺒﻂ ﺧﻮاﻫﻴﺪ ﻛﺮد‪.‬‬
‫‪ -1-1‬ﺻﺪاي ﺧﻮد را ﺿﺒﻂ ﻛﻨﻴﺪ‪.‬‬
‫اﻟﻒ( ﻣﻄﻤﺌﻦ ﺷﻮﻳﺪ ﻛﻪ ارﺗﺒﺎط ﻣﻴﻜﺮوﻓﻮن درﺳﺖ اﺳﺖ ﻳﻌﻨﻲ ﻣﻴﻜﺮوﻓﻮن ﺑﻪ ”‪ “MIC-in‬در ﻛﺎرت ﺻﺪا ﻣﺘﺼﻞ ﺷﺪه اﺳﺖ‪ ،‬در‬
‫ﺳﻤﺖ ﭘﺸﺖ ﻛﺎﻣﭙﻴﻮﺗﺮ‪.‬‬
‫ب( ﺳﻪ ﭘﻨﺠﺮه ”‪ “sound recorder‬را ﺑﺎز ﻛﻨﻴﺪ‪ .‬اﺑﺘﺪا روي ‪ file → properties → convert‬ﻛﻠﻴﻚ ﻛﻨﻴﺪ‪.‬‬
‫ﺳﭙﺲ ‪ 8000Hz,8bit, Mono 7kB/s‬را اﻧﺘﺨﺎب ﻛﻨﻴﺪ‪ 5 .‬ﺛﺎﻧﻴﻪ از ﺻﺪاي ﺧﻮد را ﺿﺒﻂ ﻛﻨﻴﺪ و ﺗﺤﺖ ﻋﻨﻮان ﻓﺎﻳﻞ ‪rec8.wav‬‬
‫در آدرس ﺧﻮد ذﺧﻴﺮه ﻛﻨﻴﺪ‪.‬‬
‫ث( ﺑﺮاي دوﻣﻴﻦ و ﺳﻮﻣﻴﻦ ﺿﺒﻂ ﺻﺪا از ﻓﺮﻣﺖ ‪ Mono 10 kB/s‬و ‪ 11025Hz,8Bit‬و از ‪22,050Hz,8bit, Mono 21‬‬
‫‪ kB/s‬اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ :‬ﻓﺎﻳﻠﻬﺎ را ﺗﺤﺖ ﻋﻨﻮان ‪ recll.wav‬و ‪ rec22.wav‬ذﺧﻴﺮه ﻛﻨﻴﺪ‪.‬‬
‫ت( ﺻﺪاﻫﺎ را ﻳﻜﻲ ﭘﺲ از دﻳﮕﺮي ﮔﻮش داده و ﻛﻴﻔﻴﺖ آﻧﻬﺎ را ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪:‬‬
‫‪ -2-1‬ﺻﺪا را از ‪ CD-Rom‬ﺿﺒﻂ ﻛﻨﻴﺪ‪.‬‬
‫ﻳﻚ ‪ CD‬ﺻﻮﺗﻲ را ﺑﺎ اﺳﺘﻔﺎده از ‪ CD player‬ﭘﺨﺶ ﻛﻨﻴﺪ‪ .‬ﭘﻨﺞ ﺛﺎﻧﻴﻪ از ﺻﺪاي ‪ CD‬را در ﻓﺮﻛﺎﻧﺴﻬﺎي ‪ 8k‬و ‪ 22k‬و ‪ 44k‬در‬
‫‪ 8bits/sample‬ﺿﺒﻂ ﻛﻨﻴﺪ‪ .‬ﻓﺎﻳﻠﻬﺎ را ﺑﻪ ﻓﺮﻣﺖ ‪ cd22.wav cd11.wav‬و ‪ cd44.wav‬در آدرس ﺧﻮد ذﺧﻴﺮه ﻛﻨﻴﺪ‪.‬‬
‫‪ -3-1‬ﺣﺎﻻ درﺑﺎرة ﻛﻴﻔﻴﺖ ﺻﺪا از ﻣﻨﺎﺑﻊ و ﻓﺮﻛﺎﻧﺴﻬﺎي ﻧﻤﻮﻧﻪ ﺑﺮداري ﻣﺨﺘﻠﻒ ﻧﻈﺮ دﻫﻴﺪ‪.‬‬
‫‪ -4-1‬ﻣﺮاﺣﻞ ‪ 1‬ﺗﺎ ‪ 3‬را ﺑﺎ ﺗﻐﻴﻴﺮ ‪ 8bit/sample‬ﺑﻪ ‪ 16bit/sample‬ﺗﻜﺮار ﻛﻨﻴﺪ‪.‬‬
‫‪2‬‬
‫‪ -٢‬ﻧﻤﻮﻧﻪ ﺑﺮداري از ﺳﻴﮕﻨﺎل ﭘﻴﻮﺳﺘﻪ در زﻣﺎن در ﻣﺤﻴﻂ ‪MATLAB‬‬
‫ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺳﻴﮕﻨﺎﻟﻲ ﭘﻴﻮﺳﺘﻪاي ﻛﻪ ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ را در ‪ MATLAB‬ذﺧﻴﺮه ﻧﻤﺎﻳﻴﻢ‪.‬‬
‫) ‪c(t ) = cos(Ωc (t ) + θc ) = cos(2πFc (t ) + θ c‬‬
‫‪0≤t ≤3‬‬
‫‪radians‬‬
‫‪π‬‬
‫‪3‬‬
‫= ‪Fc = 10 Hz,θ c‬‬
‫ﻃﺒﻖ ﺗﺌﻮري ﻧﻤﻮﻧﻪ ﺑﺮداري‪ ،‬ﻣﻲﺗﻮان اﻳﻦ ﺳﻴﮕﻨﺎل ﭘﻴﻮﺳﺘﻪ را ﺑﻪ ﺻﻮرت ﻧﻤﻮﻧﻪﻫﺎي ﮔﺴﺴﺘﻪاي ﻛﻪ ﺑﺎ ﻧﺮخ ﻧﻤﻮﻧﻪ ﺑﺮداري ﻣﻨﺎﺳﺐ‬
‫اﻧﺘﺨﺎب ﺷﺪهاﻧﺪ‪ ،‬ذﺧﻴﺮهﺳﺎزي ﻧﻤﻮد‪ .‬ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ‪ Fs‬ﻃﺒﻖ ﻧﻈﺮﻳﻪ ﻧﺎﻳﻜﻮﺋﻴﺴﺖ ﺑﺎﻳﺪ ﺑﻴﺶ از دو ﺑﺮاﺑﺮ ﺑﻴﺸﺘﺮﻳﻦ ﻓﺮﻛﺎﻧﺲ‬
‫ﺳﻴﮕﻨﺎل ﭘﻴﻮﺳﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻃﺒﻖ ﺗﻌﺮﻳﻒ ﺳﻴﮕﻨﺎل‪ ،‬ﺑﻴﺸﺘﺮﻳﻦ و ﺗﻨﻬﺎ ﻓﺮﻛﺎﻧﺲ ﺳﻴﮕﻨﺎل )‪ Fc ،c(t‬ﻣﻲﺑﺎﺷﺪ‪ .‬ﻟﺬا ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ﺑﺎﻳﺪ‬
‫ﺑﻴﺸﺘﺮ از ‪ 20‬ﻫﺮﺗﺰ اﻧﺘﺨﺎب ﮔﺮدد ﺗﺎ ﻣﺸﻜﻞ ‪ aliasing‬ﭘﻴﺶ ﻧﻴﺎﻳﺪ‪ .‬اﮔﺮ ﻫﺪف از ﺷﺒﻴﻪﺳﺎزي ﺳﻴﮕﻨﺎل‪ ،‬ﻧﻤﺎﻳﺶ و ﺑﻪ ﺗﺼﻮﻳﺮ ﻛﺸﻴﺪن آن‬
‫ﺑﺎﺷﺪ‪ ،‬ﺑﻬﺘﺮ اﺳﺖ ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ﺑﻴﺶ از ‪ 10‬ﺑﺮاﺑﺮ ‪ Fc‬اﻧﺘﺨﺎب ﮔﺮدد‪ .‬در ﺻﻮرﺗﻲ ﻛﻪ ﻧﻴﺎزي ﺑﻪ ﻧﻤﺎﻳﺶ ﺳﻴﮕﻨﺎل ﻧﺒﻮده و ﺗﻨﻬﺎ‬
‫ذﺧﻴﺮهﺳﺎزي آن ﻣﺪ ﻧﻈﺮ اﺳﺖ‪ ،‬اﻧﺘﺨﺎب ﻧﺮخ ﻧﺎﻳﻜﻮﺋﻴﺴﺖ ﺑﺮاي ﻧﻤﻮﻧﻪ ﺑﺮداري ﻛﺎﻓﻲ اﺳﺖ‪.‬‬
‫‪ -1-2‬ذﺧﻴﺮه ﻳﻚ ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ در ‪MATLAB‬‬
‫در اﻳﻦ ﺗﻤﺮﻳﻦ‪ Fs=5000 Hz ،‬در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ‪ .‬ﺑﺮاي ذﺧﻴﺮهﺳﺎزي ﺳﻴﮕﻨﺎل )‪ c(t‬در ‪ ،MATLAB‬ﺑﺎﻳﺪ آن را ﺑﻪ‬
‫ﺻﻮرت)‪ cn=c(nT‬در آورﻳﺪ ﻛﻪ در آن ‪ T=1/Fs‬ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﺑﺮاي ﺳﺎﺧﺖ ‪ ،cn‬اﺑﺘﺪا ﺑﺎﻳﺪ ﻣﺤﻮر زﻣﺎن ﺑﻪ ﺻﻮرت ‪ tn=nT‬ﺗﻘﺴﻴﻢ‬
‫ﺑﻨﺪي ﮔﺮدد‪ .‬ﺗﺎﺑﻊ زﻳﺮ‪ ،‬ﻣﺮاﺣﻞ ﺳﺎﺧﺖ ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ ‪ cn‬را از روي ﺳﻴﮕﻨﺎل )‪ c(t‬ﻧﺸﺎن ﻣﻲدﻫﺪ ‪.‬‬
‫‪fs = 5000; % Sample frequency‬‬
‫‪T = 1/fs; % Sample period‬‬
‫‪t_n = [0:T:3]; % Time vector with samples spaced T seconds appart‬‬
‫‪fc = 10; % Frequency of the sinusoid‬‬
‫‪theta = pi/3; % Phase of the sinusoid‬‬
‫‪c_n = cos(2*pi*fc*t_n + theta); % Construct the sinusoid‬‬
‫‪plot(t_n,c_n); % Plot the sinusoid‬‬
‫اﻳﻦ ﻛﺪ را در ﻳﻚ ﻓﺎﻳﻞ ذﺧﻴﺮه ﻛﺮده و در ﻣﺤﻴﻂ ‪ MATLAB‬اﺟﺮا ﻛﻨﻴﺪ‪.‬‬
‫ﺑﺎ ﺑﺰرگ ﻛﺮدن ﻣﺤﻮر زﻣﺎن ﺧﺮوﺟﻲ ﺗﺎﺑﻊ ﻗﺒﻞ‪ ،‬ﻣﻲﺗﻮان دوره ﺗﻨﺎوب ﺳﻴﮕﻨﺎل را ﺑﻬﺘﺮ ﻣﺸﺎﻫﺪه ﻧﻤﻮد‪ .‬اﻳﻦ دوره ﺗﻨﺎوب ﻣﻲﺗﻮاﻧﺪ ﺑﺮاي‬
‫اﻧﺪازه ﮔﻴﺮي ﻓﺮﻛﺎﻧﺲ ﺳﻴﮕﻨﺎل ﭘﻴﻮﺳﺘﻪ ورودي ﺑﻪ ﻛﺎر رود‪.‬‬
‫‪3‬‬
‫‪ -2-2‬ﻣﺸﺎﻫﺪه ﻃﻴﻒ ﻓﺮﻛﺎﻧﺴﻲ ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ‬
‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﺑﻬﺘﺮ ﻓﺮﻛﺎﻧﺲ ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ‪ ،‬از ﻃﻴﻒ ﻓﺮﻛﺎﻧﺴﻲ آن اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ‪ .‬ﻣﻲداﻧﻴﻢ در ﻧﻤﺎﻳﺶ ﺗﺒﺪﻳﻞ ﻓﻮرﻳﻪ ﻳﻚ ﺳﻴﮕﻨﺎل‬
‫ﻛﺴﻴﻨﻮﺳﻲ‪ ،‬ﻳﻚ ﺿﺮﺑﻪ در ﻓﺮﻛﺎﻧﺲ ﺳﻴﮕﻨﺎل ﻇﺎﻫﺮ ﻣﻲﺷﻮد‪ .‬ﻛﺪ زﻳﺮ‪ ،‬ﺗﺒﺪﻳﻞ ﻓﻮرﻳﻪ ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ ‪ cn‬را ﻣﺤﺎﺳﺒﻪ ﻧﻤﻮده و آن را ﻧﻤﺎﻳﺶ‬
‫ﻣﻲدﻫﺪ‪:‬‬
‫‪N = 2^14; % FFT size‬‬
‫‪f = ([0:N-1]/N - 0.5)*fs; % The frequency vector for plotting‬‬
‫‪C = fftshift(fft(c_n,N)); % Compute the FFT and rearrange the output‬‬
‫‪plot(f,10*log10(abs(C))); % Plot the magnitude of the spectrum on a log scale‬‬
‫ﺧﺮوﺟﻲ اﻳﻦ ﻛﺪ‪ ،‬ﻃﻴﻒ ﻓﺮﻛﺎﻧﺴﻲ ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ را ﻧﺸﺎن ﻣﻲدﻫﺪ‪ .‬ﺑﺮاي ﻧﻤﺎﻳﺶ ﺑﻬﺘﺮ ﻃﻴﻒ در اﻃﺮاف ﻓﺮﻛﺎﻧﺲ ‪ 10‬ﻫﺮﺗﺰ‪ ،‬ﺑﺎ‬
‫اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ axis‬و ﻧﻴﺰ ﻛﻢ ﻛﺮدن ﻣﻘﺪار ‪ ،N‬ﻣﺤﺪوده ﻧﻤﺎﻳﺶ ﻣﺤﻮرﻫﺎي ‪ x‬و ‪ y‬را ﺗﻐﻴﻴﺮ دﻫﻴﺪ‪ .‬ﺷﻜﻞ زﻳﺮ‪ ،‬ﻧﻤﻮﻧﻪ اي از ﺧﺮوﺟﻲ‬
‫اﺳﺖ ﻛﻪ ﺷﻤﺎ ﺑﺎﻳﺪ آن را ﻧﻤﺎﻳﺶ دﻫﻴﺪ‪:‬‬
‫اﻳﻦ ﺷﻜﻞ‪ ،‬ﻳﻚ ﭘﻴﻚ را در ﻃﻴﻒ ﻓﺮﻛﺎﻧﺴﻲ ﺗﺎﺑﻊ در ﻣﺤﺪوده ﻓﺮﻛﺎﻧﺲ ‪ 10‬ﻫﺮﺗﺰ ﻧﺸﺎن ﻣﻲدﻫﺪ‪ .‬اﮔﺮ ﻫﻤﻴﻦ ﺷﻜﻞ را ﺑﻪ وﺿﻮح ﺑﻴﺸﺘﺮ و‬
‫در ﻣﺤﺪوده ]‪ [8,12‬ﻧﻤﺎﻳﺶ دﻫﻴﺪ‪ ،‬ﻣﺘﻮﺟﻪ ﺧﻮاﻫﻴﺪ ﺷﺪ ﻛﻪ اﻳﻦ ﭘﻴﻚ ﻓﺮﻛﺎﻧﺴﻲ دﻗﻴﻘﺎ در ﻓﺮﻛﺎﻧﺲ ‪ 10‬ﻫﺮﺗﺰ ﻧﻴﺴﺖ‪ .‬اﻳﻦ ﻣﺴﺎﻟﻪ ﺑﻪ دﻟﻴﻞ‬
‫رﺧﺪاد ﭘﺪﻳﺪه ”‪ “Spectral Leakage‬اﺳﺖ‪ .‬در ﻣﻮرد اﻳﻦ ﭘﺪﻳﺪه ﺗﺤﻘﻴﻖ ﻧﻤﻮده و دﻟﻴﻞ ﺑﺮوز آن را ﺗﻮﺿﻴﺢ دﻫﻴﺪ‪.‬‬
‫‪4‬‬
5
‫‪-٣‬ﻧﻤﻮﻧﻪ ﺑﺮداري از ﺳﻴﮕﻨﺎل ﭘﻴﻮﺳﺘﻪ در زﻣﺎن ﺑﺎ وﻗﻮع ‪aliasing‬‬
‫در ﺗﻤﺮﻳﻦ ﻗﺒﻞ‪ ،‬ﺷﻤﺎ ﻳﻚ ﺗﺎﺑﻊ ﭘﻴﻮﺳﺘﻪ در زﻣﺎن را ﺑﻪ ﺻﻮرت ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ ذﺧﻴﺮه ﺳﺎزي ﻧﻤﻮدﻳﺪ‪ .‬ﺣﺎل در اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬ﻣﻲﺧﻮاﻫﻴﻢ‬
‫اﺛﺮات ‪ aliasing‬را روي ﺳﻴﮕﻨﺎل ﺑﺮرﺳﻲ ﻛﻨﻴﻢ‪.‬‬
‫‪-1-3‬ﺗﺎﺑﻊ ﺳﻮال ﻗﺒﻞ را ﺑﻪ ﺻﻮرﺗﻲ ﺗﻐﻴﻴﺮ دﻫﻴﺪ ﻛﻪ ﻣﻘﺎدﻳﺮ ‪ Fc‬و ‪ Fs‬و ‪ t‬را ﺑﻪ ﻋﻨﻮان ورودي از ﻛﺎرﺑﺮ درﻳﺎﻓﺖ ﻧﻤﺎﻳﺪ‪.‬‬
‫ﺳﻴﮕﻨﺎل ﮔﺴﺴﺘﻪ در زﻣﺎن را ﺑﺮاي ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداي ‪ Fs=8 kHz‬و ﻓﺮﻛﺎﻧﺲ ﺳﻴﮕﻨﺎل ‪ Fc=1,2,3.5,6,7‬در ﻧﻤﻮدارﻫﺎي‬
‫ﺟﺪاﮔﺎﻧﻪ رﺳﻢ ﻛﻨﻴﺪ‪ .‬ﭼﺮا ﺑﺮﺧﻲ از اﻳﻦ ﻧﻤﻮدارﻫﺎ ﺷﺒﻴﻪ ﻫﻢ ﻫﺴﺘﻨﺪ؟ ﺑﺮاي رﺳﻢ ﻧﻤﻮدارﻫﺎ در ﻳﻚ ﭘﻨﺠﺮه از دﺳﺘﻮر ‪ subplot‬ﻛﻤﻚ‬
‫ﺑﮕﻴﺮﻳﺪ‪.‬‬
‫‪-2-3‬ﻃﻴﻒ ﻓﺮﻛﺎﻧﺴﻲ اﻳﻦ ﺳﻴﮕﻨﺎل ﻫﺎ را ﻧﻴﺰ رﺳﻢ ﻛﻨﻴﺪ‪ .‬ﭘﺪﻳﺪه ‪ aliasing‬در ﻛﺪاﻣﻴﻚ از اﻳﻦ ﻧﻤﻮدارﻫﺎ و ﺑﻪ ﭼﻪ ﺻﻮرت ﻇﺎﻫﺮ ﺷﺪه‬
‫اﺳﺖ؟‬
‫‪ -3-3‬ﺳﻴﮕﻨﺎل ﺟﺪﻳﺪي ﺑﻪ ﻧﺎم ‪ ،dn‬ﺑﺴﺎزﻳﺪ‪ .‬ﻓﺮﻛﺎﻧﺲ ﺳﻴﮕﻨﺎل را ﻫﻤﺎﻧﻨﺪ ﻗﺴﻤﺖ ‪ 1-3‬اﻧﺘﺨﺎب ﻛﺮده وﻟﻲ ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺑﻪ‬
‫‪ 80‬ﻛﻴﻠﻮﻫﺮﺗﺰ ﺗﻐﻴﻴﺮ دﻫﻴﺪ‪ .‬ﻃﻮل ﺳﻴﮕﻨﺎل ‪ dn‬را ‪ 10‬ﺑﺮاﺑﺮ ﺳﻴﮕﻨﺎل ‪ cn‬ﻗﺮار دﻫﻴﺪ‪ .‬ﻫﺮ دو ﺳﻴﮕﻨﺎل ‪ cn‬و ‪ dn‬را در ﻳﻚ ﻧﻤﻮدار و ﺑﺎ دو‬
‫رﻧﮓ ﻣﺘﻔﺎوت رﺳﻢ ﻧﻤﺎﻳﻴﺪ‪).‬در ﺣﻮزه زﻣﺎن(‪ .‬در اﻳﻦ ﻧﻤﻮدارﻫﺎ‪ ،‬آﻳﺎ ﻣﻲﺗﻮاﻧﻴﺪ ﭘﺪﻳﺪه ‪ Aliasing‬را در ﺣﻮزه زﻣﺎن ﺑﻬﺘﺮ درك ﻛﻨﻴﺪ؟‬
‫‪6‬‬
‫‪-4‬ﭘﺪﻳﺪه ‪ aliasing‬و ﺣﺬف آن‬
‫ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ ﻣﻲداﻧﻴﺪ‪ aliasing ،‬زﻣﺎﻧﻲ رخ ﻣﻲدﻫﺪ ﻛﻪ ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ﻛﻤﺘﺮ از ﻧﺮخ ﻧﺎﻳﻜﻮﺋﻴﺴﺖ ﺑﺎﺷﺪ‪ .‬اﻳﻦ ﭘﺪﻳﺪه در‬
‫ﺣﻮزه ﻓﺮﻛﺎﻧﺲ‪ ،‬ﺑﻪ ﺻﻮرت ﻧﻤﺎﻳﺶ ﻓﺮﻛﺎﻧﺲﻫﺎي ﺑﺎﻻ در ﻣﺤﺪوده ﻓﺮﻛﺎﻧﺲﻫﺎي ﭘﺎﻳﻴﻦ ﻇﺎﻫﺮ ﻣﻲﺷﻮد)آﻧﭽﻪ در ﺳﻮال ‪ 3‬دﻳﺪﻳﺪ(‪ .‬در ﺣﻮزه‬
‫زﻣﺎن ﻧﻴﺰ‪ ،‬اﻳﻦ ﭘﺪﻳﺪه ﺑﺎﻋﺚ از ﺑﻴﻦ رﻓﺘﻦ اﻃﻼﻋﺎت ﺳﻴﮕﻨﺎل ﻣﻲﮔﺮدد‪ .‬ﻟﺬا ‪ aliasing‬ﻳﻚ ﭘﺪﻳﺪه ﻣﺰاﺣﻢ ﺑﻮده و ﺑﺎﻳﺪ رﻓﻊ ﺷﻮد‪.‬‬
‫راﻫﻬﺎي ﻣﺨﺘﻠﻔﻲ ﺑﺮاي ﻣﻘﺎﺑﻠﻪ ﺑﺎ ‪ aliasing‬وﺟﻮد دارد ﻛﻪ رﻋﺎﻳﺖ ﻧﺮخ ﻧﺎﻳﻜﻮﺋﻴﺴﺖ ﻳﻜﻲ از آﻧﻬﺎﺳﺖ‪ .‬ﻣﺘﺎﺳﻔﺎﻧﻪ ﺑﺴﻴﺎري از ﺳﻴﮕﻨﺎﻟﻬﺎ‬
‫در ﻣﺤﻴﻂ اﻃﺮاف‪ ،‬ﻣﺤﺪوده ﻓﺮﻛﺎﻧﺴﻲ ﻣﻌﻴﻨﻲ ﻧﺪارﻧﺪ و ﺑﺮاي اﻳﻦ ﺳﻴﮕﻨﺎﻟﻬﺎ‪ ،‬اﻣﻜﺎن رﻋﺎﻳﺖ ﻧﺮخ ﻧﺎﻳﻜﻮﺋﻴﺴﺖ وﺟﻮد ﻧﺪارد‪ .‬ﻳﻚ راه ﺣﻞ‬
‫ﻣﻨﺎﺳﺐ ﺑﺮاي ذﺧﻴﺮه ﺳﺎزي اﻳﻦ ﻧﻮع ﺳﻴﮕﻨﺎلﻫﺎ‪ ،‬ﺣﺬف ﻓﺮﻛﺎﻧﺲﻫﺎي ﺑﺎﻻي ﺳﻴﮕﻨﺎل ﺑﻪ وﺳﻴﻠﻪ ﻳﻚ ﻓﻴﻠﺘﺮ ﭘﺎﻳﻴﻦ ﮔﺬر آﻧﺎﻟﻮگ ﭘﻴﺶ از‬
‫ذﺧﻴﺮه ﺳﺎزي ﺳﻴﮕﻨﺎل اﺳﺖ‪.‬‬
‫در ﺑﺴﻴﺎري اوﻗﺎت‪ ،‬ﻃﺮاﺣﻲ ﻳﻚ ﻓﻴﻠﺘﺮ آﻧﺎﻟﻮگ دﻗﻴﻖ ﻛﺎر ﻣﺸﻜﻠﻲ اﺳﺖ‪ .‬ﻟﺬا ﺑﺮاي ﺣﻞ اﻳﻦ ﻣﺸﻜﻞ از ﻳﻚ ﻓﻴﻠﺘﺮ دﻳﺠﻴﺘﺎل اﺳﺘﻔﺎده ﻣﻲ‪-‬‬
‫ﺷﻮد‪ .‬در اﻳﻦ ﺻﻮرت ﻣﺮاﺣﻞ ذﻛﺮ ﺷﺪه در ﺑﺎﻻ ﺑﺮاي ﻧﻤﻮﻧﻪ ﺑﺮداري ﺳﻴﮕﻨﺎل ﺑﺪﻳﻦ ﺻﻮرت ﺗﻐﻴﻴﺮ ﻣﻲﻳﺎﺑﺪ‪:‬‬
‫اﺑﺘﺪا ﺳﻴﮕﻨﺎل ﭘﻴﻮﺳﺘﻪ در زﻣﺎن‪ ،‬ﻧﻤﻮﻧﻪ ﺑﺮداري اﻓﺰاﻳﺸﻲ ﻣﻲﺷﻮد‪ .‬ﺳﭙﺲ ﻳﻚ ﻓﻴﻠﺘﺮ دﻳﺠﻴﺘﺎل ﭘﺎﻳﻴﻦ ﮔﺬر روي آن اﻋﻤﺎل ﺷﺪه و دوﺑﺎره‬
‫ﺳﻴﮕﻨﺎل ﻧﻤﻮﻧﻪ ﺑﺮداري ﻛﺎﻫﺸﻲ ﻣﻲﮔﺮدد‪.‬‬
‫‪Digital‬‬
‫‪Processing‬‬
‫‪Digital‬‬
‫‪DownSampling‬‬
‫‪Pre-Filter‬‬
‫‪UpSampling‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ آﻧﭽﻪ در درس ﺳﻴﮕﻨﺎﻟﻬﺎ و ﺳﻴﺴﺘﻤﻬﺎ ﺧﻮاﻧﺪه اﻳﺪ‪ ،‬ﺗﻮﺿﻴﺢ دﻫﻴﺪ ﻛﻪ اﻳﻦ ﻛﺎر ﭼﮕﻮﻧﻪ ﻣﻲﺗﻮاﻧﺪ‪ ،‬ﭘﺪﻳﺪه ‪ aliasing‬را ﺣﺬف‬
‫ﻧﻤﺎﻳﺪ؟‬
‫‪ -1-4‬اﺛﺮ ‪ aliasing‬روي ﺳﻴﮕﻨﺎل ﺻﻮت‬
‫اﻟﻒ( ﻳﻚ ﺳﻴﮕﻨﺎل ﺻﻮﺗﻲ ﻧﻤﻮﻧﻪ ﺑﺮداري ﺷﺪه در ﻓﺮﻛﺎﻧﺲ ‪ 16‬ﻛﻴﻠﻮﻫﺮﺗﺰ و ‪ 8‬ﺑﻴﺖ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬اﻳﻦ ﺳﻴﮕﻨﺎل‪ ،‬ﺳﻴﮕﻨﺎل‬
‫‪ upsample‬ﺷﺪه ﺷﻤﺎﺳﺖ‪ .‬ﺑﺮاي ﻣﺸﺎﻫﺪه اﺛﺮ ﭘﺪﻳﺪه ‪ aliasing‬روي اﻳﻦ ﺳﻴﮕﻨﺎل‪ ،‬ﺑﺪون ﭘﻴﺶ ﻓﻴﻠﺘﺮ ﻛﺮدن‪ ،‬روي آن ﻧﻤﻮﻧﻪ ﺑﺮداري‬
‫ﻛﺎﻫﺸﻲ اﻧﺠﺎم دﻫﻴﺪ‪ .‬ﻧﺘﻴﺠﻪ را ﮔﻮش ﻛﻨﻴﺪ‪.‬‬
‫ﺑﺮاي اﻳﻦ ﻛﺎر ﻣﻲﺗﻮاﻧﻴﺪ از ﻛﺪ زﻳﺮ اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪:‬‬
‫‪7‬‬
‫)‪function sp(infilename,dsr‬‬
‫‪%infilename is your signal name and dsr is downsampling rate‬‬
‫)'‪fprintf('\n the origional sound \n‬‬
‫;)‪[y,Fs]=wavread(infilename‬‬
‫‪% Fs is sample rate in Hz‬‬
‫)‪if(rem(length(y),dsr)~=0‬‬
‫;))‪y=y(1:length(y)- rem(length(y),dsr‬‬
‫‪end‬‬
‫‪%play it‬‬
‫)‪sound(y,Fs‬‬
‫;‪pause‬‬
‫‪%Downsample‬‬
‫;)'‪fprintf('\n the downsampled sound \n‬‬
‫;))‪x=y(1:dsr:length(y‬‬
‫;)‪sound(x,Fs/dsr‬‬
‫;‪pause‬‬
‫‪%save down sample az down.wav‬‬
‫;)'‪wavwrite(x,Fs/dsr,'down.wav‬‬
‫اﻳﻦ آزﻣﺎﻳﺶ را ﺑﺮاي ﻣﻘﺎدﻳﺮ ﻧﺮخ ﻧﻤﻮﻧﻪ ﺑﺮداري‪ 2‬و‪ 3‬و ‪ 5‬اﻣﺘﺤﺎن ﻛﻨﻴﺪ‪ .‬ﻧﻤﻮﻧﻪ ﺑﺮداري ﻛﺎﻫﺸﻲ ﭼﻪ اﺛﺮي ﺑﺮ روي ﺳﻴﮕﻨﺎل ﺷﻨﻴﺪه‬
‫ﺷﺪه ﮔﺬاﺷﺘﻪ اﺳﺖ؟‬
‫ب( در اﻳﻦ ﻗﺴﻤﺖ‪ ،‬ﺑﺮاي ﺣﺬف اﺛﺮ ‪ ، aliasing‬ﭘﻴﺶ از ﻧﻤﻮﻧﻪ ﺑﺮداري ﻛﺎﻫﺸﻲ‪ ،‬از ﻳﻚ ﻓﻴﻠﺘﺮ ﭘﺎﻳﻴﻦ ﮔﺬر ﺑﺮاي ﻓﻴﻠﺘﺮ ﻛﺮدن ﺳﻴﮕﻨﺎل‬
‫اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪ .‬ﺑﺮاي ﻓﻴﻠﺘﺮ ﻛﺮدن ﺳﻴﮕﻨﺎل ﭘﻴﺶ از ﻧﻤﻮﻧﻪ ﺑﺮداري ﻛﺎﻫﺸﻲ‪ ،‬ﻣﻲﺗﻮاﻧﻴﺪ از دﺳﺘﻮر زﻳﺮ ﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ‪:‬‬
‫;)‪filter_coeff = fir1(n, 1/dsr‬‬
‫;) ‪filteredSound = filter( filter_coeff, 1, infilename‬‬
‫دﺳﺘﻮر ‪ ،fir1‬ﻳﻚ ﻓﻴﻠﺘﺮ ﭘﺎﻳﻴﻦ ﮔﺬر را در ﺣﻮزه زﻣﺎن ﺑﻪ ﻃﻮل ‪ n‬ﺑﺮاي ﺷﻤﺎ ﺷﺒﻴﻪﺳﺎزي ﻣﻲﻛﻨﺪ‪ .‬ﺑﺮاي آﮔﺎﻫﻲ از ﻧﺤﻮه ﻋﻤﻠﻜﺮد اﻳﻦ‬
‫دﺳﺘﻮر‪ ،‬از ‪ help‬ﻣﺤﻴﻂ ‪ MATLAB‬ﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ‪ .‬دﺳﺘﻮر ‪ filter‬ﻧﻴﺰ ﺳﻴﮕﻨﺎل ورودي را ﺑﺎ ﻓﻴﻠﺘﺮ ﻃﺮاﺣﻲ ﺷﺪه در ﺣﻮزه زﻣﺎن‬
‫ﻛﺎﻧﻮاﻟﻮ ﻣﻲﻧﻤﺎﻳﺪ‪.‬‬
‫ﺳﻴﮕﻨﺎل ﺣﺎﺻﻞ را ﮔﻮش ﻛﻨﻴﺪ‪ .‬ﭼﻪ ﺗﻔﺎوﺗﻲ ﻣﻴﺎن اﻳﻦ ﺳﻴﮕﻨﺎل و ﺳﻴﮕﻨﺎل ﻗﺴﻤﺖ اﻟﻒ( وﺟﻮد دارد؟‬
‫اﻳﻦ ﻣﻘﺎﻳﺴﻪ را ﺑﺮاي ﻣﻘﺎدﻳﺮ ﻣﺨﺘﻠﻒ ‪ dsr‬ﻛﻪ در ﻗﺴﻤﺖ ﻗﺒﻞ‪ ،‬اﻣﺘﺤﺎن ﻛﺮدﻳﺪ‪ ،‬اﻧﺠﺎم دﻫﻴﺪ‪ .‬آﻳﺎ ﻋﻤﻞ ﭘﻴﺶ ﻓﻴﻠﺘﺮ ﻛﺮدن ﺑﺮ روي ﻛﻴﻔﻴﺖ‬
‫ﺳﻴﮕﻨﺎل ﻣﻮﺛﺮ ﺑﻮده اﺳﺖ؟ اﮔﺮ ‪ dsr>5‬ﺑﺎﺷﺪ ﺧﺮوﺟﻲ ﭼﮕﻮﻧﻪ ﺧﻮاﻫﺪ ﺑﻮد؟ آﻳﺎ ﻫﻨﻮز ﭘﻴﺶ ﻓﻴﻠﺘﺮ ﻛﺮدن ﻣﻮﺛﺮ اﺳﺖ؟ ﭼﺮا؟‬
‫در ﻛﺪام ﺣﺎﻟﺖ‪ ،‬ﭘﻴﺶ ﻓﻴﻠﺘﺮ ﻛﺮدن ﺑﻴﺸﺘﺮﻳﻦ ﺗﺎﺛﻴﺮ ﻣﺜﺒﺖ را روي ﺧﺮوﺟﻲ اﻳﻦ ﻣﺮﺣﻠﻪ داﺷﺘﻪ اﺳﺖ؟‬
‫‪8‬‬
‫‪ -5‬ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن‬
‫در ﺗﻤﺮﻳﻦﻫﺎي ﻗﺒﻞ‪ ،‬ﻧﻤﻮﻧﻪ ﺑﺮداري ﺳﻴﮕﻨﺎل را ﺑﺮرﺳﻲ ﻧﻤﻮدﻳﻢ‪ .‬ﻧﻤﻮﻧﻪ ﺑﺮداري‪ ،‬رزوﻟﻮﺷﻦ داده را روي ﻣﺤﻮر زﻣﺎن‪/‬ﻣﻜﺎن از ﺑﻲﻧﻬﺎﻳﺖ‬
‫ﺑﻪ ﻣﻘﺪاري ﻣﺤﺪود ﺗﺒﺪﻳﻞ ﻣﻲﻧﻤﺎﻳﺪ‪ .‬اﻣﺎ ﻫﻤﭽﻨﺎن رزروﻟﻮﺷﻦ داﻣﻨﻪ دادهﻫﺎ ﺑﻲﻧﻬﺎﻳﺖ اﺳﺖ‪ .‬ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن‪ ،‬ﻣﻘﺎدﻳﺮ داﻣﻨﻪ دادهﻫﺎ را ﺑﻪ‬
‫ﻣﻘﺎدﻳﺮي ﻣﺤﺪود ﺗﺒﺪﻳﻞ ﻣﻲﻧﻤﺎﻳﺪ‪ .‬ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن‪ ،‬ﺑﺎﻋﺚ از دﺳﺖ رﻓﺘﻦ اﻃﻼﻋﺎت در ﺣﻮزه زﻣﺎن‪/‬ﻣﻜﺎن ﻣﻲﮔﺮدد ﻛﻪ ﺑﻪ اﻳﻦ ﭘﺪﻳﺪه‪،‬‬
‫"ﺧﻄﺎي ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن" ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪.‬‬
‫‪ -1-5‬ﺷﺒﻴﻪﺳﺎزي ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن‬
‫ﻓﺮض ﻛﻨﻴﺪ داﻣﻨﻪ ﺳﻴﮕﻨﺎل ورودي ﺷﻤﺎ در ﻣﺤﺪوده ]‪ [a,b‬ﺑﺎﺷﺪ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﻮل زﻳﺮ ﻣﻲﺗﻮاﻧﻴﺪ دادهﻫﺎي ﺧﻮد را ﻛﻮاﻧﺘﻴﺰه‬
‫ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ ،N‬ﺗﻌﺪاد ﺑﻴﺖﻫﺎي ﻣﻮرد ﻧﻈﺮ ﺑﺮاي ذﺧﻴﺮه ﺳﺎزي داده ﻫﺎ را ﻧﺸﺎن ﻣﻲدﻫﺪ‪ .‬ﻣﺤﺪوده ]‪ [a,b‬ﺑﻪ ‪ 2N‬ﻗﺴﻤﺖ ﺗﻘﺴﻴﻢ ﺷﺪه اﺳﺖ‪.‬‬
‫ﻗﺴﻤﺖ ‪ ،1‬ﻣﺤﺪوده ﺳﻴﮕﻨﺎل را ﺑﻪ ]‪ [0,1‬ﻣﻲﺑﺮد‪ .‬ﻗﺴﻤﺖ ‪ ،2‬ﻣﺤﺪوده را ﺑﻪ ]‪ [0,2N-1‬ﻣﻲﺑﺮد‪ .‬ﻗﺴﻤﺖ‪ ،3‬ﺧﺮوﺟﻲ را ﺑﻪ ﻋﺪد ﺻﺤﻴﺢ‬
‫ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ و ﻗﺴﻤﺖ ‪ 4‬ﻣﺤﺪوده را دوﺑﺎره ﺑﻪ ]‪ [a,b‬ﺑﺮﻣﻲﮔﺮداﻧﺪ‪.‬‬
‫ﺣﺎل ﺷﻤﺎ ﺑﺎﻳﺪ ﻳﻚ ﺗﺎﺑﻊ ‪ quantization‬ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻣﻘﺎدﻳﺮ‪ N‬و ‪ a‬و ‪ b‬و ﻧﻴﺰ ﻳﻚ ﻣﺎﺗﺮﻳﺲ از ﻣﻘﺎدﻳﺮ را ﮔﺮﻓﺘﻪ و ﻣﺎﺗﺮﻳﺲ‬
‫ﺧﺮوﺟﻲ را ﺑﻪ ﺻﻮرت ﻛﻮاﻧﺘﻴﺰه ﺷﺪه ﺑﺮﮔﺮداﻧﺪ‪.‬‬
‫‪-2-5‬ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﺳﻴﮕﻨﺎل ﺻﻮت‬
‫در ﻣﺤﻴﻂ ﺧﻂ ﻓﺮﻣﺎن ‪ MATLAB‬دﺳﺘﻮر زﻳﺮ را وارد ﻧﻤﺎﻳﻴﺪ‪:‬‬
‫‪Load handel‬‬
‫)‪Sound(y‬‬
‫دﺳﺘﻮر ‪ load‬ﻳﻚ ﻓﺎﻳﻞ ﺻﻮﺗﻲ از آرﺷﻴﻮ ‪ MTLAB‬ﺑﻪ ﻧﺎم ‪ handel‬را در ﺣﺎﻓﻈﻪ ﺑﺎر ﻛﺮده و آن را در ﻣﺘﻐﻴﺮ ‪ y‬ﻧﮕﻪ ﻣﻲدارد‪ .‬اﻳﻦ‬
‫ﻓﺎﻳﻞ ﺻﻮﺗﻲ داراي ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ‪ 8‬ﻛﻴﻠﻮﻫﺮﺗﺰ ﺑﻮده و ﺑﺎ ‪ 8‬ﺑﻴﺖ ﻛﻮاﻧﺘﻴﺰه ﺷﺪه اﺳﺖ‪.‬‬
‫اﻟﻒ( اﻳﻦ ﺳﻴﮕﻨﺎل را ﺑﻪ ﻋﻨﻮان ﻣﺎﺗﺮﻳﺲ ورودي ﺗﺎﺑﻌﻲ ﻛﻪ در ﺳﻮال ﻗﺒﻞ ﻃﺮاﺣﻲ ﻛﺮده اﻳﺪ در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﺗﺎﺑﻊ ‪Quantization‬را‬
‫ﺑﺎ ﻣﻘﺎدﻳﺮ ]‪ [a,b]=[-1,1‬و ‪ N=4‬و ﻣﺎﺗﺮﻳﺲ ‪ y‬اﺟﺮا ﻧﻤﺎﻳﻴﺪ‪ .‬ﺧﺮوﺟﻲ را در ﻣﺎﺗﺮﻳﺲ ‪ yq‬ذﺧﻴﺮه ﻛﺮده و ﺑﻪ آن ﮔﻮش دﻫﻴﺪ‪ .‬اﻳﻦ ﻛﺎر‬
‫را ﺑﺮاي ‪ N=2‬ﻧﻴﺰ ﺗﻜﺮار ﻛﻨﻴﺪ‪ .‬ﭼﻪ ﺗﻔﺎوﺗﻲ ﺑﻴﻦ ﺳﻴﮕﻨﺎﻟﻬﺎي ﺧﺮوﺟﻲ وﺟﻮد دارد؟‬
‫ب( ﺣﺎل ﺑﻪ ﺟﺎي ﺳﻴﮕﻨﺎل ﺧﺮوﺟﻲ ﺑﻪ ﺗﻔﺎوت ﺳﻴﮕﻨﺎل ورودي و ﺧﺮوﺟﻲ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﮔﻮش ﻛﻨﻴﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻦ ﺳﻴﮕﻨﺎل‪ ،‬آﻳﺎ‬
‫ﻣﻲﺗﻮاﻧﻴﺪ ﺑﮕﻮﻳﻴﺪ ﭼﺮا ﺑﻪ ﺧﻄﺎي ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن در ﭘﺮدازش ﺳﻴﮕﻨﺎل ﺻﻮﺗﻲ‪ ،‬ﻧﻮﻳﺰ ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﻳﺎ ‪ quantization noise‬ﮔﻔﺘﻪ ﻣﻲ‪-‬‬
‫ﺷﻮد؟‬
‫‪9‬‬
‫‪-3-5‬ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﺳﻴﮕﻨﺎل ﺗﺼﻮﻳﺮ‬
‫ﻧﺘﺎﻳﺞ ﺣﺎﺻﻞ از ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن ﺑﺮ روي ﻋﻜﺲﻫﺎي دﻳﺠﻴﺘﺎل‪ “false contours ،‬ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪.‬‬
‫ﻛﺪ زﻳﺮ را در ﻣﺤﻴﻂ ‪ MATLAB‬وارد ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫)‪Function imageQuantization(infilename‬‬
‫;)‪Im=imread(infilename‬‬
‫;)‪imgray=rgb2gray(im‬‬
‫;)‪imgray=double(imgray‬‬
‫;)‪imQuant=quantization(imgray,N,a,b‬‬
‫;))‪imQuant=imshow(uint8(imQuant‬‬
‫در ورودي ﺗﺎﺑﻊ‪ ،‬آدرس ﻳﻚ ﺗﺼﻮﻳﺮ رﻧﮕﻲ را وارد ﻛﻨﻴﺪ‪ .‬ﺗﺼﻮﻳﺮ ﻓﻮق را ﺑﺮاي ﻣﻘﺎدﻳﺮ ﻣﺨﺘﻠﻒ ‪ N=3,4,5,6‬ﺑﻪ ﺗﺎﺑﻊ‬
‫‪ quantization‬ﺑﺪﻫﻴﺪ‪ .‬ﻣﺤﺪوده ‪ a‬و ‪ b‬را ﺑﻪ ﺻﻮرت ]‪ [a,b]=[0,255‬وارد ﻛﻨﻴﺪ‪.‬‬
‫ﺗﺼﺎوﻳﺮ ورودي و ﻛﻮاﻧﺘﻴﺰه ﺷﺪه را ﺑﺎ دﺳﺘﻮر ‪ subplot‬ﻧﻤﺎﻳﺶ دﻫﻴﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺧﺮوﺟﻲ اﻳﻦ ﺗﺎﺑﻊ‪ ،‬ﻣﻲﺗﻮاﻧﻴﺪ ﺑﮕﻮﻳﻴﺪ ﭼﺮا ﺑﻪ‬
‫ﺧﻄﺎي ﻛﻮاﻧﺘﻴﺰاﺳﻴﻮن در ﺳﻴﮕﻨﺎل ﺗﺼﻮﻳﺮ‪ false contour ،‬ﮔﻔﺘﻪ ﻣﻲﺷﻮد؟‬
‫‪10‬‬