تبدیل هیلبرت
تعریف تبدیل هیلبرت
تبدیل هیلبرت (Hilbert Transform) یک ابزار مهم در پردازش سیگنال است که برای تحلیل سیگنالهای حقیقی و استخراج ویژگیهای فاز و دامنه استفاده میشود. این تبدیل سیگنال را از حوزه زمان به یک نمایش تحلیلی (analytic signal) تبدیل میکند که شامل بخش حقیقی (سیگنال اصلی) و بخش موهومی (تبدیل هیلبرت سیگنال) است. تبدیل هیلبرت بهویژه در تحلیل سیگنالهای غیرایستا (مانند سیگنالهای صوتی، راداری یا مغزی) برای محاسبه دامنه لحظهای (envelope) و فاز لحظهای کاربرد دارد.
فرمول ریاضی
فرمول تبدیل هیلبرت در حوزه زمان
در تعریف تبدیل هیلبرت برای یک سیگنال پیوسته ( x(t) )، تبدیل هیلبرت بهصورت زیر بیان شد:
\color{black}{
\hat{x}(t) =
\frac{1}{\pi}
\int_{-\infty}^{\infty}
\frac{x(\tau)}{t – \tau} \, d\tau
}
$$
این فرمول را میتوان بهصورت یک عمل کانولوشن بازنویسی کرد:
$$
\hat{x}[n] = x[n] \cdot h[n]
$$
که در آن ( * ) نشاندهنده عمل کانولوشن است، و ( h(t) ) تابع پاسخ ضربه تبدیل هیلبرت در حوزه زمان است، که بهصورت زیر تعریف میشود:
$${\color{black} h(t) = \frac{1}{\pi t}}$$
ویژگیهای h(t) :
- h(t) یک تابع فرد (odd function) است، یعنی h(-t) = -h(t) .
- این تابع در t = 0 تعریفنشده است، و به همین دلیل انتگرال در تعریف تبدیل هیلبرت بهصورت مقدار اصلی کوشی محاسبه میشود.
- h(t) نشاندهنده پاسخ ضربه سیستم هیلبرت است که فاز سیگنال ورودی را به اندازه ۹۰ درجه تغییر می دهد.
- برای محاسبات عددی در حوزه گسسته، نسخه گسسته آن h[n] با استفاده از روشهای محاسباتی مانند تبدیل فوریه گسسته (DFT) پیادهسازی میشود.
برای سیگنالهای گسسته ( x[n] )، تبدیل هیلبرت بهصورت زیر محاسبه میشود:
\hat{x}[n] = x[n] * h[n]
$$
فرمول تبدیل هیلبرت در حوزه فرکانس
برای درک بهتر تبدیل هیلبرت، باید آن را در حوزه فرکانس بررسی کنیم، زیرا تبدیل هیلبرت در حوزه فرکانس بهصورت سادهتری تفسیر میشود. ابتدا فرمول تبدیل هیلبرت در حوزه زمان-فرکانس را بیان میکنیم.
در حوزه فرکانس، تبدیل هیلبرت با استفاده از تبدیل فوریه سیگنال تعریف میشود. اگر X(f) تبدیل فوریه سیگنال x(t) باشد:
$$
\color{black}
X(f) = \int_{-\infty}^{\infty} x(t) e^{-j2\pi f t} \, dt
$$
تبدیل فوریه تابع پاسخ ضربه برابر است با:
$$
\color{black}
H(f) = -j \, \text{sgn}(f)
$$
که در آن sgn(f) تابع علامت است:
$${
\text{sgn}(f) =
\begin{cases}
1 & \text{if } f > 0 \\
0 & \text{if } f = 0 \\
-1 & \text{if } f < 0
\end{cases}
}
$$
بنابراین، تبدیل هیلبرت در حوزه فرکانس بهصورت زیر است:
\hat{X}(f) = X(f) \cdot H(f) = X(f) \cdot \left(-j\, \operatorname{sgn}(f)\right)
$$
سیگنال تحلیلی حوزه زمان:
سیگنال تحلیلی ( z(t) ) از ترکیب سیگنال اصلی و تبدیل هیلبرت آن به دست میآید:
z(t) = x(t) + j \hat{x}(t)
$$
و فاز لحظهای و دامنه لحظهای سیگنال:
$$
A(t) = \sqrt{x(t)^2 + \hat{x}(t)^2}, \quad \phi(t) = \arctan\left(\frac{\hat{x}(t)}{x(t)}\right)
$$
سیگنال تحلیلی در حوزه فرکانس:
سیگنال تحلیلی z(t) در حوزه فرکانس بهصورت زیر است:
$$
Z(f) = X(f) + j \hat{X}(f) = X(f) + j \cdot (-j \, \text{sgn}(f)) X(f) = X(f) (1 + \text{sgn}(f))
$$
با جایگذاری sgn(f) داریم :$$
Z(f) = \begin{cases}
2 X(f) & \text{if } f > 0 \\
X(f) & \text{if } f = 0 \\
0 & \text{if } f < 0
\end{cases}
$$
این نشان میدهد که سیگنال تحلیلی فقط شامل مؤلفههای فرکانس مثبت است، و مؤلفههای فرکانس منفی حذف میشوند.
بررسی کلی اثر تبدیل هیلبرت بر سیگنال
تبدیل هیلبرت در حوزه فرکانس تغییرات مشخصی ایجاد میکند که به درک بهتر عملکرد آن کمک میکند:
1. چرخش فاز ۹۰ درجه:
- تابع H(f) = -jsgn(f) باعث چرخش فاز سیگنال میشود:
- برای فرکانسهای مثبت f > 0 ، H(f) = -j ، که معادل چرخش فاز ( -90) است.
- برای فرکانسهای منفی f < 0، H(f) = j ، که معادل چرخش فاز ( +90 ) است.
- این چرخش فاز باعث میشود که تبدیل هیلبرت نسخهای از سیگنال اصلی باشد که فاز آن ۹۰ درجه تغییر کرده است.
2. حذف فرکانسهای منفی در سیگنال تحلیلی:
- همانطور که در فرمول Z(f) دیدیم، سیگنال تحلیلی ( z(t) ) فقط شامل مؤلفههای فرکانس مثبت است. این ویژگی برای تحلیل سیگنالهای باندباریک (narrowband) بسیار مفید است، زیرا فرکانسهای منفی (که در سیگنالهای حقیقی به دلیل خاصیت هرمیتی طیف وجود دارند) حذف میشوند.
- این حذف فرکانسهای منفی امکان محاسبه دقیق دامنه لحظهای و فاز لحظهای را فراهم میکند.
3. حفظ دامنه طیف:
تبدیل هیلبرت دامنه طیف |X(f)| را تغییر نمیدهد، زیرا H(f)| = |-jsgn(f)| = 1| برای همه فرکانسها (به جز f = 0). بنابراین، تبدیل هیلبرت فقط فاز سیگنال را تغییر میدهد و روی دامنه اثر نمیگذارد.
4. کاربرد در تحلیل سیگنالهای مدولهشده:
- در سیگنالهای مدولهشده (مانند مدولاسیون دامنه یا AM)، تبدیل هیلبرت برای استخراج پوش سیگنال (envelope) بسیار مفید است. پوش سیگنال با محاسبه ( A(t) ) از سیگنال تحلیلی به دست میآید.
- در حوزه فرکانس، این فرآیند معادل جداسازی مؤلفههای فرکانس پایین (مرتبط با پوش) از مؤلفههای فرکانس بالا (مرتبط با حامل) است.
5. محدودیتها در سیگنالهای پهنباند:
- تبدیل هیلبرت برای سیگنالهای باندباریک (که طیف آنها در یک محدوده فرکانسی خاص متمرکز است) بسیار دقیق عمل میکند. اما برای سیگنالهای پهنباند (broadband) که شامل طیف گستردهای از فرکانسها هستند، ممکن است نتایج نادرست یا کمتر قابلاعتمادی تولید کند، زیرا فرض حذف فرکانسهای منفی در این موارد کمتر معتبر است.
مثال کدنویسی در متلب
% پارامترهای سیگنال
fs = 1000; % فرکانس نمونهبرداری (Hz)
t = 0:1/fs:2; % بازه زمانی (2 ثانیه)
f0 = 10; % فرکانس اولیه (Hz)
f1 = 100; % فرکانس نهایی (Hz)
% تولید سیگنال چیرپ
signal = chirp(t, f0, t(end), f1, 'linear');
% محاسبه تبدیل هیلبرت
analytic_signal = hilbert(signal); % سیگنال تحلیلی
envelope = abs(analytic_signal); % دامنه لحظهای
instantaneous_phase = unwrap(angle(analytic_signal)); % فاز لحظهای
instantaneous_frequency = diff(instantaneous_phase) * fs / (2 * pi); % فرکانس لحظهای
% رسم سیگنال و نتایج
figure;
subplot(3,1,1);
plot(t, signal, 'LineWidth', 1.5);
xlabel('زمان (ثانیه)'); ylabel('دامنه');
title('سیگنال چیرپ در حوزه زمان');
grid on;
subplot(3,1,2);
plot(t, envelope, 'LineWidth', 1.5, 'Color', 'r');
xlabel('زمان (ثانیه)'); ylabel('دامنه لحظهای');
title('دامنه لحظهای سیگنال چیرپ');
grid on;
subplot(3,1,3);
plot(t(1:end-1), instantaneous_frequency, 'LineWidth', 1.5, 'Color', 'g');
xlabel('زمان (ثانیه)'); ylabel('فرکانس (Hz)');
title('فرکانس لحظهای سیگنال چیرپ');
grid on;
- سیگنال چیرپ: یک سیگنال با فرکانس متغیر خطی از ۱۰ هرتز به ۱۰۰ هرتز در ۲ ثانیه تولید میشود.
- تبدیل هیلبرت: با استفاده از تابع
hilbertدر متلب، سیگنال تحلیلی محاسبه میشود. - دامنه و فاز لحظهای: دامنه لحظهای با استفاده از قدر مطلق سیگنال تحلیلی و فاز لحظهای با استفاده از تابع
angleوunwrapمحاسبه میشود. - فرکانس لحظهای: از مشتق فاز لحظهای نسبت به زمان، فرکانس لحظهای استخراج میشود.
- رسم نتایج: سیگنال اصلی، دامنه لحظهای، و فرکانس لحظهای در سه نمودار جداگانه نمایش داده میشوند.
مزایا و محدودیتها
- مزایا:
- امکان استخراج دقیق دامنه و فاز لحظهای.
- مناسب برای تحلیل سیگنالهای باندباریک و مدولهشده.
- محاسبات سادهتر نسبت به روشهای پیچیدهتر مانند WVD.
- محدودیتها:
- برای سیگنالهای پهنباند (broadband) ممکن است دقت کمتری داشته باشد.
- حساسیت به نویز در سیگنالهای حقیقی.
- عدم توانایی در ارائه نمایش کامل زمان-فرکانس مانند STFT یا WVD.
کابرد ها
- تشکیل سیگنال تحلیلی:
یکی از اصلیترین دلایل استفاده از تبدیل هیلبرت، ایجاد سیگنال تحلیلی است. این سیگنال به ما اجازه میدهد تا ویژگیهای فرکانسی و فازی سیگنال را بهتر تحلیل کنیم. برای مثال، در پردازش سیگنال باید پایه، این تبدیل به جلوگیری از اثرات (aliasing) کمک میکند. - استخراج دامنه و فاز لحظهای:
تبدیل هیلبرت امکان محاسبه دامنه و فاز لحظهای سیگنال را فراهم میکند. این ویژگی در تحلیل سیگنالهای غیرایستا، مانند امواج مغزی (EEG) یا دادههای لرزهای، بسیار مهم است. برای مثال، در تشخیص تشنج از طریق تحلیل آنتروپی مغز، از این تبدیل استفاده میشود. - کاربرد در مدولاسیون:
در مخابرات، تبدیل هیلبرت برای مدولاسیون باند تکی (SSB) و مدولاسیون فاز/فرکانس استفاده میشود. این تبدیل به کاهش پهنای باند و بهبود کارایی انتقال سیگنال کمک میکند.
