ﺑﺴﻤﻪ ﺗﻌﺎﻟﻲ ﺳﻴﺴﺘﻢ ﻫﺎي ﭼﻨﺪرﺳﺎﻧﻪاي )(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
© Copyright 2026 Paperzz