نمونه برداری سیگنال — راهنمای جامع

۵۹۶۷ بازدید
آخرین به‌روزرسانی: ۲۴ اردیبهشت ۱۴۰۲
زمان مطالعه: ۹ دقیقه
نمونه برداری سیگنال — راهنمای جامع

نمونه برداری سیگنال (Signal Sampling) یکی از مباحث مهم در پردازش سیگنال است. در این مطلب ابتدا به بیان قضیه نمونه برداری نایکویست (Nyquist Theorem) و اثبات آن می‌پردازیم و سپس تکنیک‌های نمونه برداری از سیگنال‌ها را بیان می‌کنیم.

بیان قضیه نایکوئیست در نمونه برداری سیگنال

یک سیگنال پیوسته در زمان را می‌توان توسط نمونه‌های (Samples) آن نمایش داد. بر اساس قضیه نمونه برداری سیگنال نایکویست یا نایکوئیست-شانون، عکس این عمل، یعنی ساخت مجدد سیگنال اصلی از روی سیگنال نمونه برداری شده، در شرایطی امکان‌پذیر است که فرکانس نمونه برداری $$ f_s $$ بزرگتر یا مساوی با دو برابر بزرگ‌ترین مولفه فرکانسی سیگنال پیام یا سیگنال اصلی باشد.

بنابراین شرط زیر باید در نمونه برداری برقرار باشد:

$$ f_s \geq 2 f_m $$

اثبات قضیه نایکوئیست

یک سیگنال پیوسته در زمان $$ x(t) $$ را در نظر بگیرید. طیف فرکانسی این سیگنال در محدوده باند $$ f_m $$ هرتز قرار دارد. به عبارت دیگر، طیف فرکانسی سیگنال $$ x(t) $$ برای $$ |\omega| > \omega _m $$ برابر با صفر است.

برای نمونه برداری از سیگنال ورودی $$ x(t) $$ باید این سیگنال را در قطار ضربه $$ \delta (t) $$ با تناوب $$ T_S $$ ضرب کرد. خروجی ضرب‌کننده یک سیگنال گسسته است که سیگنال نمونه برداری شده نام دارد. سیگنال نمونه برداری‌شده را با $$ y(t) $$ نمایش می‌دهند. در تصویر زیر نمایی از نحوه نمونه برداری از یک سیگنال پیوسته در زمان را می‌توان مشاهده کرد.

نحوه نمونه برداری از یک سیگنال پیوسته با زمان
نحوه نمونه برداری از یک سیگنال پیوسته با زمان

با توجه به تصاویر بالا می‌توان به این نکته پی برد که سیگنال نمونه برداری شده فرکانس و دوره تناوبی برابر با دوره تناوب و فرکانس سیگنال ضربه را به دست خواهد آورد.

روند نمونه برداری از یک سیگنال پیوسته در زمان را با استفاده از فرمول زیر نیز می‌توان نشان داد:

$$ \text{Sampled signal}\, y(t) = x(t) . \delta(t) \,\,...\,...(1) $$

نمایش سری فوریه مثلثاتی تابع ضربه به صورت زیر خواهد بود:

$$ \delta(t)= a_0 + \Sigma_{n=1}^{\infty}(a_n \cos⁡ n\omega_s t + b_n \sin⁡ n\omega_s t )\,\,...\,...(2) $$

در فرمول بالا داریم:

$$ a_0 = {1\over T_s} \int_{-T \over 2}^{ T \over 2} \delta (t)dt = {1\over T_s} \delta(0) = {1\over T_s} $$

$$ a_n = {2 \over T_s} \int_{-T \over 2}^{T \over 2} \delta (t) \cos n\omega_s\, dt = { 2 \over T_2} \delta (0) \cos n \omega_s 0 = {2 \over T} $$

$$ b_n = {2 \over T_s} \int_{-T \over 2}^{T \over 2} \delta(t) \sin⁡ n\omega_s t\, dt = {2 \over T_s} \delta(0) \sin⁡ n\omega_s 0 = 0 $$

با جایگذاری مقادیر بالا در معادله شماره ۲ داریم:

$$ \therefore\, \delta(t)= {1 \over T_s} + \Sigma_{n=1}^{\infty} ( { 2 \over T_s} \cos ⁡ n\omega_s t+0) $$

همچنین با جایگذاری $$ \delta(t) $$ در معادله شماره ۱ داریم:

$$ \to y(t) = x(t) . \delta(t) \\
= x(t) [{1 \over T_s} + \Sigma_{n=1}^{\infty}({2 \over T_s} \cos n\omega_s t) ] \\
= {1 \over T_s} [x(t) + 2 \Sigma_{n=1}^{\infty} (\cos n\omega_s t) x(t) ] \\
y(t) = {1 \over T_s} [x(t) + 2\cos \omega_s t.x(t) + 2 \cos 2\omega_st.x(t) + 2 \cos 3\omega_s t.x(t) \,...\, ...\,] $$

از هر دو طرف رابطه بالا تبدیل فوریه می‌گیریم. در نتیجه معادله زیر را به دست می‌آوریم:

$$ Y(\omega) = {1 \over T_s} [X(\omega)+X(\omega-\omega_s )+X(\omega+\omega_s )+X(\omega-2\omega_s )+X(\omega+2\omega_s )+ \,...] $$

$$ \therefore\,\, Y(\omega) = {1\over T_s} \Sigma_{n=-\infty}^{\infty} X(\omega - n\omega_s )\quad\quad where \,\,n= 0,\pm1,\pm2,... $$

برای بازسازی $$ x(t) $$، باید طیف فرکانسی سیگنال ورودی ($$ X(\omega) $$) را از روی طیف فرکانسی سیگنال نمونه برداری شده ($$ Y (\omega) $$) به دست آورد. این عمل زمانی امکان پذیر است که بین تناوب‌های $$ Y (\omega) $$ هیچ همپوشانی (Overlapping) وجود نداشته باشد. در تصویر زیر نمایی از امکان به دست آوردن طیف فرکانسی سیگنال اصلی از روی طیف فرکانسی سیگنال نمونه برداری شده نشان داده شده است. بر این اساس نمونه برداری از یک سیگنال را به سه دسته بیش‌نمونه برداری، نمونه برداری ایده‌آل و کم‌نمونه برداری تقسیم می‌کنند.

بیش‌نمونه برداری، نمونه برداری ایده‌آل و کم‌نمونه برداری
بیش‌نمونه برداری، نمونه برداری ایده‌آل و کم‌نمونه برداری

در تصویر اول، $$ f_s > 2f_m $$ است و به اصطلاح بیش نمونه برداری (Over Sampling) اتفاق افتاده است. در تصویر دوم، $$ f_s = 2f_m $$ است و در این حالت نمونه برداری ایده‌آل انجام گرفته است. اما در تصویر سوم، $$ f_s < 2f_m $$ است که در این حالت کم‌نمونه برداری (Under Sampling) به وقوع پیوسته است.

اثر تداخل

در حالت کم‌نمونه برداری، ناحیه دارای همپوشانی نشان‌دهنده اثر تداخل یا در هم‌روی (Aliasing Effect) است. به عبارت دیگر، زمانی که فرکانس نمونه برداری یعنی $$ f_s $$ از دو برابر پهنای باند سیگنال یعنی $$ 2f_m $$ بیشتر باشد، پدیده تداخل اتفاق می‌افتد. در این حالت به راحتی می‌توان سیگنال اصلی $$ x(t) $$ را با استفاده از یک فیلتر پایین گذر ایده‌آل جداسازی کرد. راه حل دیگر برای حذف کردن اثر تداخل در نمونه برداری این است که فرکانس سیگنال اصلی را بیشتر از دو برابر فرکانس سیگنال ضربه در نظر بگیریم.

تکنیک‌های نمونه برداری

در حالت کلی می‌توان گفت که سه تکنیک اساسی برای نمونه برداری از سیگنال وجود دارد.

  • نمونه برداری تابع ضربه (Impulse Sampling)
  • نمونه برداری طبیعی (Natural Sampling)
  • نمونه برداری بالا مسطح (Flat Top Sampling)

نمونه برداری سیگنال با استفاده از تابع ضربه

همان طور که در بالا نیز بیان کردیم، نمونه برداری سیگنال به روش تابع ضربه را می‌توان از طریق ضرب کردن سیگنال اصلی $$ x(t) $$ در قطار تابع ضربه $$ \Sigma_{n=-\infty}^{\infty}\delta(t-nT) $$ با تناوب T به دست آورد. در این حالت، دامنه ضربه‌ها متناسب با دامنه سیگنال اصلی ورودی تغییر می‌کنند. این نوع نمونه برداری در تصویر زیر نشان داده شده است.

نمونه برداری تابع ضربه
نمونه برداری تابع ضربه

سیگنال خروجی نمونه برداری را در این حالت توسط فرمول زیر به دست می‌آورند:

$$ y(t) = = x(t) × \Sigma_{n=-\infty}^{\infty} \delta(t-nT) \\
y(t) = y_{\delta} (t) = \Sigma_{n=-\infty}^{\infty}x(nt) \delta(t-nT)\,...\,... 1 $$

برای به دست آوردن طیف فرکانس سیگنال نمونه برداری شده، بر روی دو سمت معادله بالا تبدیل فوریه اعمال می‌کنیم:

$$ Y(\omega) = {1 \over T} \Sigma_{n=-\infty}^{\infty} X(\omega - n \omega_s ) $$

این نوع نمونه برداری، نمونه برداری ایده‌آل یا نمونه برداری تابع ضربه نام دارد. اما مشکلی که وجود دارد این است که از این نوع نمونه برداری در عمل نمی‌توان استفاده کرد؛ زیرا عرض پالس‌ها در عمل نمی‌تواند برابر با صفر شود و به همین دلیل تولید قطار ضربه به صورت عملی و در واقعیت امکان‌پذیر نیست.

نمونه برداری سیگنال طبیعی

نمونه برداری سیگنال طبیعی مشابه با نمونه برداری تابع ضربه است، با این تفاوت که به جای توابع ضربه از قطار پالس‌ها با تناوب T استفاده می‌کند. به عبارت دیگر، در این نمونه برداری سیگنال ورودی در قطار پالس $$ \Sigma_{n=-\infty}^{\infty} P(t-nT) $$ ضرب می‌شود. در تصویر زیر، نمایی از فرایند نمونه برداری طبیعی نشان داده شده است.

نمونه برداری طبیعی
نمونه برداری طبیعی

خروجی نمونه برداری به صورت زیر خواهد بود:

$$ y(t) = x(t) \times \text{pulse train} $$

$$ = x(t) \times p(t) $$

$$ = x(t) \times \Sigma_{n=-\infty}^{\infty} P(t-nT)\,...\,...(3) $$

نمایش سری فوریه نمایی $$ p(t) $$ را می‌توان به صورت زیر نوشت:

$$ p(t) = \Sigma_{n=-\infty}^{\infty} F_n e^{j n\omega_s t}\,...\,...(4) $$

$$ = \Sigma_{n=-\infty}^{\infty} F_n e^{j 2 \pi nf_s t} $$

که در این فرمول داریم:

$$  F_n= {1 \over T} \int_{-T \over 2}^{T \over 2} p(t) e^{-j n \omega_s t} dt $$

$$ = {1 \over TP}(n \omega_s) $$

با جایگذاری مقادیر $$ F_n $$ در معادله شماره ۴ داریم:

$$ \therefore p(t) = \Sigma_{n=-\infty}^{\infty} {1 \over T} P(n \omega_s)e^{j n \omega_s t} $$

$$ = {1 \over T} \Sigma_{n=-\infty}^{\infty} P(n \omega_s)e^{j n \omega_s t} $$

با جایگذاری $$ p(t) $$ در معادله شماره ۳ داریم:

$$ y(t) = x(t) \times p(t) $$

$$ = x(t) \times {1 \over T} \Sigma_{n=-\infty}^{\infty} P(n \omega_s)\,e^{j n \omega_s t} $$

$$ y(t) = {1 \over T} \Sigma_{n=-\infty}^{\infty} P( n \omega_s)\, x(t)\, e^{j n \omega_s t} $$

برای به دست آوردن طیف سیگنال نمونه برداری شده، باید از هر دو طرف معادله بالا تبدیل فوریه بگیریم. در نتیجه داریم:

$$ F.T\, [ y(t)] = F.T [{1 \over T} \Sigma_{n=-\infty}^{\infty} P( n \omega_s)\, x(t)\, e^{j n \omega_s t}] $$

$$ = {1 \over T} \Sigma_{n=-\infty}^{\infty} P( n \omega_s)\,F.T\,[ x(t)\, e^{j n \omega_s t} ] $$

بر اساس مشخصه انتقال فرکانسی (Frequency Shifting) می‌توان نوشت:

$$ F.T\,[ x(t)\, e^{j n \omega_s t} ] = X[\omega-n\omega_s] $$

$$ \therefore\, Y[\omega] = {1 \over T} \Sigma_{n=-\infty}^{\infty} P( n \omega_s)\,X[\omega-n\omega_s] $$

نمونه برداری سیگنال بالا مسطح

در طول انتقال سیگنال، این امکان وجود دارد که نویزهای ناخواسته به سطح بالایی سیگنال اضافه شوند. در این حالت، اگر سیگنال از فرم بالا مسطح باشد، می‌توان به سادگی آن‌ها را حذف کرد. در این جا سطح بالای نمونه‌ها صاف است، به عبارت دیگر، پالس‌ها دارای دامنه ثابت هستند. نمونه برداری بالا مسطح از نمونه‌ها و نیز مدارات نگه‌دار استفاده می‌کند. در تصویر زیر نمونه‌ای از فرایند نمونه برداری بالا مسطح نشان داده شده است.

فرایند نمونه برداری بالا مسطح
فرایند نمونه برداری بالا مسطح

از نظر تئوری، سیگنال نمونه برداری شده را می‌توان از طریق کانولوشن پالس مستطیلی $$ p(t) $$ با سیگنال نمونه برداری شده ایده‌آل $$ y_\delta (t) $$ به دست می‌آید. بنابراین سیگنال خروجی به صورت زیر به دست می‌آید:

$$ y(t) = p(t) \times y_\delta (t)\, ... \, ...(5) $$

در تصویر زیر نیز دیاگرام این کار نشان داده شده است.

فرایند محاسبه نمونه برداری بالا مسطح
فرایند محاسبه نمونه برداری بالا مسطح

برای به دست آوردن طیف فرکانسی سیگنال نمونه برداری شده، از هر دو طرف معادله بالا تبدیل فوریه می‌گیریم. بنابراین داریم:

$$ Y[\omega] = F.T\,[P(t) \times y_\delta (t)] $$

با استفاده از مشخصه کانولوشن می‌توانیم بنویسیم:

$$ Y[\omega] = P(\omega)\, Y_\delta (\omega) $$

در نتیجه داریم:

$$ P(\omega) = T Sa({\omega T \over 2}) = 2 \sin \omega T/ \omega $$

نرخ نایکویست در نمونه برداری سیگنال

بر اساس قضیه نایکوئیست-شانون، یک نرخ نمونه برداری کمینه وجود دارد که در آن می‌توان یک سیگنال پیوسته را به نمونه‌های آن تبدیل کرد و نیز بدون اعوجاج آن‌ها را بازیابی کرد.

این نرخ را نرخ نایکویست می‌گویند که به صورت زیر است:

$$ f_N = 2 f_m HZ $$

همچنین بازه نایکویست (Nyquist Interval) برابر است با:

$$ {1 \over fN} = {1 \over 2fm} $$

نمونه برداری سیگنال میان گذر

در مورد سیگنال‌های میان گذر (Band Pass Signals)، طیف فرکانسی این سیگنال‌ها برای فرکانس‌های خارج از $$ f_1 \leq f \leq f_2 $$ برابر با $$ X [ \omega ] =0 $$ است. فرکانس $$ f_1 $$ همیشه بزرگ‌تر از صفر است. همچنین، زمانی که $$ f_s >2 f_2 $$ باشد، اثر تداخل در سیگنال خروجی وجود نخواهد داشت. اما دو عیب اساسی در این شرایط وجود دارد:

  1. نرخ نمونه برداری نسبت به $$ f_2 $$ بزرگ است که باعث می‌شود یک محدودیت در کاربردهای عملی محسوب شود.
  2. طیف فرکانسی سیگنال نمونه برداری شده دارای گپ‌های طیفی خواهد بود.

برای غلبه بر این مشکلات، قضیه میان گذر (Band Pass Theorem) بیان می‌کند که اگر فرکانس نمونه برداری $$ f_s <2 f_2 $$ باشد، آن‌گاه سیگنال ورودی $$ x(t) $$ را می‌توان نمونه برداری کرد و سپس مجددا از روی سیگنال نمونه برداری شده بدون اعوجاج بازیابی کرد. همچنین:

$$ f_s = {1 \over T} = {2f_2 \over m} $$

که در این فرمول m برابر با بزرگ‌ترین عدد صحیح است که کوچکتر از $$ {f_2 \over B} $$ باشد. B در این فرمول پهنای باند سیگنال است. اگر $$ f_2 = KB $$ باشد، آن‌گاه داریم:

$$ f_s = {1 \over T} = {2KB \over m} $$

برای سیگنال‌های میان گذر با پهنای باند $$ 2 f_m $$ و کمینه نرخ نمونه برداری $$ f_s = 2 B = 4 f_m $$، طیف فرکانسی سیگنال نمونه برداری شده به صورت زیر به دست می‌آید:

$$ Y[\omega] = {1 \over T} \Sigma_{n=-\infty}^{\infty}\,X[ \omega - 2nB] $$

نمونه برداری سیگنال در متلب

در این قسمت می‌خواهیم نحوه ایجاد کردن یک سیگنال پیوسته در زمان و نمونه برداری از آن با یک نرخ معین را نشان دهیم. در بسیاری از کاربردهای شبیه‌سازی، ممکن است لازم باشد تا یک سیگنال پیوسته در زمان را از طریق نمونه برداری صحیح به یک سیگنال گسسته در زمان تبدیل کنیم.

همان طور که بیان کردیم، برای یک سیگنال باند پایه پیوسته در زمان باید از قضیه نمونه برداری نایکوئیست-شانون استفاده و نرخ نمونه برداری را توسط آن تعیین کرد. بر اساس این قضیه، حداقل فرکانس نمونه برداری باید بزرگتر از دو برابر فرکانس بیشینه سیگنال اصلی باشد. نرم‌افزار متلب یا هر نرم‌افزار شبیه‌سازی دیگر، تمام پردازش‌ها را به صورت گسسته در زمان انجام می‌دهد؛ زیرا سیگنال‌ها در حافظه کامپیوتر به صورت گسسته در زمان نشان داده می‌شوند.

بنابراین نمی‌توان یک سیگنال پیوسته در زمان واقعی را در کامپیوتر تولید کنیم و تنها کاری که باید انجام داد این است که از طریق اتخاذ نرخ نمونه برداری بسیار بالا، یک سیگنال شبه پیوسته (Continuous-Like) ایجاد کنیم. چنین سیگنالی پس از رسم شدن بسیار شبیه به یک سیگنال پیوسته در زمان خواهد بود. حال می‌خواهیم در نرم‌افزار متلب یک سیگنال سینوسی شبه پیوسته با فرکانس $$ f_m = 10 KHZ $$ تولید کنیم. برای این‌که سیگنال هنگام ترسیم پیوسته به نظر برسد، نرخ نمونه برداری برابر با $$ f_s = 500 KHZ $$ در نظر می‌گیریم.

قطعه کد زیر نحوه انجام این کار در متلب را نشان می‌دهد.

1fs=500e3; %Very high sampling rate 500 kHz
2f=10e3; %Frequency of sinusoid
3nCyl=5; %generate five cycles of sinusoid
4t=0:1/fs:nCyl*1/f; %time index
5x=cos(2*pi*f*t);
6
7plot(t,x)
8title('Continuous sinusoidal signal');
9xlabel('Time(s)');
10ylabel('Amplitude');

نمودار زیر در خروجی ترسیم می‌شود.

ایجاد سیگنال پیوسته در زمان در نرم‌افزار متلب
ایجاد سیگنال پیوسته در زمان در نرم‌افزار متلب

حال می‌خواهیم سیگنال پیوسته در زمان بالا را با استفاده از قضیه نمونه برداری نایکوئیست-شانون به یک سیگنال در حوزه گسسته در زمان تبدیل کنیم. در نتیجه فرکانس نمونه برداری حداقل باید $$ f_s = 2 \times f_m = 20 KHZ $$ باشد. به عنوان مثال، ابتدا سیگنال را با فرکانس $$ f_{s1} = 30\; KHZ $$ و سپس با فرکانس $$ f_{s2} = 50\; KHZ $$ نمونه برداری می‌کنیم.

برای نمونه برداری سیگنال، قطعه کد زیر را در محیط متلب اجرا می‌کنیم.

1fs1=30e3; %30kHz sampling rate
2t1=0:1/fs1:nCyl*1/f; %time index
3x1=cos(2*pi*f*t1);
4
5fs2=50e3; %50kHz sampling rate
6t2=0:1/fs2:nCyl*1/f; %time index
7x2=cos(2*pi*f*t2);
8
9subplot(2,1,1);
10plot(t,x);
11hold on;
12stem(t1,x1);
13subplot(2,1,2);
14plot(t,x);
15hold on;
16stem(t2,x2);

در تصویر زیر سیگنال گسسته ایجاد شده پس از نمونه برداری در دو فرکانس مختلف نشان داده شده است.

نمونه برداری از سیگنال پیوسته در زمان با دو فرکانس مختلف
نمونه برداری از سیگنال پیوسته در زمان با دو فرکانس مختلف

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۵۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
tutorialspointGaussianWaves
۵ دیدگاه برای «نمونه برداری سیگنال — راهنمای جامع»

اگر فقط دو تا مثال عددی هم حل می کردید عالی میشد

خیلی عالی

سلام. مرجع مطالب بالا را لطفا بفرمایید.

با سلام؛

منبع تمامی مطالب مجله فرادرس، اگر ترجمه باشند، در انتهای مطلب و پیش از نام نویسنده آورده شده‌اند.

با تشکر از همراهی شما با مجله فرادرس

از مطلب ‍پر کاربرد شما بسیار سپاسگزارم

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *