در دنیای ارتباطات، مدولاسیون AM (Amplitude Modulation) یکی از تکنیکهای مهم برای انتقال اطلاعات به وسیله موجهای رادیویی است. این تکنیک، اطلاعات را بر روی یک موج حامل به وسیله تغییرات در دامنه موج اعمال میکند. ابتدا، در این پست به بررسی اصول مدولاسیون AM پرداخته و سپس به نحوهی پیادهسازی و شبیهسازی این فرآیند با استفاده از نرمافزار متلب خواهیم پرداخت. این راهنما یک نگاه جامع به مراحل اجرایی و کدهای مورد نیاز برای تحلیل و شبیهسازی موثر مدولاسیون AM را فراهم میکند. آماده شوید تا به دنیای جذاب این تکنولوژی علمی و کاربردی وارد شوید.
مدولاسیون AM چیست؟
قبل از اینکه مدولاسیون AM با متلب را بررسی کنیم، انئکی به تئوری این پدیده بپردازیم. مدولهسازی دامنه (AM) (Amplitude Modulation) یک روش انتقال اطلاعات از طریق امواج رادیویی است. در این روش، دامنه یک موج حامل، که معمولاً یک موج رادیویی با فرکانس بالا است، طبق سیگنالی دیگر، مثل سیگنال صوتی، تغییر داده میشود.
برای مثال، فرض کنید میخواهید یک آهنگ را از طریق امواج رادیویی ارسال کنید. در این صورت، باید سیگنال صوتی آهنگ را با یک موج حامل رادیویی ترکیب کنید. هرگاه که صدای آهنگ بلندتر شود، دامنه موج حامل نیز بیشتر میشود. و هرگاه که صدای آهنگ آرامتر شود، دامنه موج حامل نیز کمترمیشود.
وقتی این موج مدوله شده از طریق هوا پخش میشود، گیرنده رادیویی میتواند دامنه موج حامل را تفسیر کند و از آن برای بازسازی سیگنال صوتی اصلی استفاده کند.
مدولهسازی AM یک روش نسبتاً ساده و ارزان برای ارسال سیگنالهای صوتی از طریق هوا است. به همین دلیل، برای مدت زیادی یکی از روشهای اصلی پخش رادیویی بوده است.
مدولاسیون AM چه مزایا و معایبی دارد؟
مزایا:
- ساده و ارزان (inexpensive)
- قابل اعتماد (reliable)
معایب:
- حساس به نویز (noise sensitive)
- پهنای باند زیادی را اشغال میکند (occupies a lot of bandwidth)
چرا نمیتوان سیگنال پیام را مستقیم ارسال کرد؟
شاید برای شما این سوال پیش آمده باشد که چرا حتما لازم است که سیگنال پیام را به وسیله سیگنال حامل به فرکانس بالاتر منتقل کرد و چرا امکان ارسال سیگنال پیام به طور مستقیم وجود ندارد؟
سیگنالهای پیام معمولاً در فرکانسهای پایین هستند. این سیگنالها برای انتقال از طریق هوا مناسب نیستند، زیرا به راحتی توسط نویز و سایر سیگنالهای مزاحم تضعیف میشوند.
مدولهسازی سیگنال پیام به فرکانس بالا، آن را برای انتقال از طریق هوا مناسب میکند. این کار به سه دلیل زیر انجام میشود:
- توان سیگنال افزایش مییابد: یک موج رادیویی با فرکانس بالا نسبت به یک موج رادیویی با فرکانس پایین، توان بیشتری دارد. این امر باعث میشود که سیگنال پیام در برابر نویز و سایر سیگنالهای مزاحم مقاومتر شود.
- پهنای باند سیگنال کاهش مییابد: یک موج رادیویی با فرکانس بالا نسبت به یک موج رادیویی با فرکانس پایین، پهنای باند کمتری دارد. این امر باعث میشود که سیگنال پیام برای انتقال از طریق کانالهای با پهنای باند محدود مناسبتر شود.
- در فرکانس پایین سیگنال های مزاحم زیاد هستند: چون در فرکانس پایین سیگنال های مزاحم زیاد هستند، SNR سیگنال به شدت کاهش پیدا میکند.
در نتیجه، مدولاسیون سیگنال پیام به فرکانس بالا، آن را برای انتقال از طریق هوا کارآمدتر میکند.
روابط ریاضی مدولاسیون AM
در مدولاسیون دامنه، دامنه یک موج حامل یا Carrier، که معمولاً یک موج رادیویی با فرکانس بالا است، طبق سیگنالی دیگر، مثل سیگنال صوتی، تغییر داده میشود.
برای بیان روابط ریاضی مدولاسیون AM، فرض میکنیم که سیگنال پیام به صورت زیر باشد:
که در آن:
- A_m: دامنه سیگنال پیام
- f_m: فرکانس سیگنال پیام
موج حامل نیز به صورت زیر تعریف میشود:
که در آن:
- A_c: دامنه موج حامل
- f_c: فرکانس موج حامل
در مدولاسیون AM، شاخص مدولاسیون (modulation index) یک پارامتر مهم است که نشاندهنده میزان تغییر دامنه موج حامل است. شاخص مدولاسیون به صورت زیر تعریف میشود:
انواع مدولاسیون AM
با توجه به فرمول شاخص مدولاسیون که در بالاتر آورده شده است، شاخص مدولاسیون میتواند بین صفر و یک باشد.
در مدولاسیون کامل (full modulation)، شاخص مدولاسیون برابر با یک است. در این حالت، دامنه موج حامل به طور کامل توسط سیگنال پیام تغییر میکند.
در مدولاسیون زیر کامل (under modulation)، شاخص مدولاسیون کمتر از یک است. در این حالت، دامنه موج حامل به طور کامل توسط سیگنال پیام تغییر نمیکند.
در مدولاسیون بیش کامل (over modulation)، شاخص مدولاسیون بیشتر از یک است. در این حالت، دامنه موج حامل منفی میشود. این حالت مطلوب نیست و باعث ایجاد اعوجاج در سیگنال مدوله شده میشود.
حالا میخواهیم به پیاده پیاده سازی مدولاسیون AM با متلب بپردازیم.
پیاده سازی مدولاسیون AM با متلب
در کد زیر، مدولاسیون AM با متلب بدون استفاده از دستور ammod انجام شده است.
% Set the parameters
Ac = 1; % Carrier amplitude
fc = 1000; % Carrier frequency (Hz)
Am = 1; % Message amplitude
fm = 50; % Message frequency (Hz)
beta_values = [0.5, 1, 1.5]; % Modulation indices
% Time vector
fs=10*fc; % Sampling frequency (Hz)
t = 0:1/fs:1;
% Create the carrier wave
carrier = Ac * cos(2*pi*fc*t);
% Create the message signal
message = Am * cos(2*pi*fm*t);
% Perform AM modulation for different modulation indices
modulated_signals = zeros(length(beta_values), length(t));
for i = 1:length(beta_values)
beta = beta_values(i);
modulated_signals(i, :) = (1 + beta * message) .* carrier;
end
% Plot the signals
figure;
subplot(length(beta_values) + 2, 1, 1);
plot(t, carrier,'LineWidth',1.2);
title('Carrier Wave');
axis([0 0.1 -2 2])
subplot(length(beta_values) + 2, 1, 2);
plot(t, message,'LineWidth',1.2);
title('message Wave');
axis([0 0.1 -2 2])
for i = 1:length(beta_values)
subplot(length(beta_values) + 2, 1, i + 2);
plot(t, modulated_signals(i, :),'LineWidth',1.2);
title(['AM Modulated Signal (Index = ' num2str(beta_values(i)) ')']);
axis([0 0.1 -3 3])
end
% Adding labels and legends
xlabel('Time (s)');
ylabel('Amplitude');
نتیجه شبیه سازی به این صورت است:

سفارش پروژه متلب
اگر نیاز به کمک در انجام پروژه متلب خود دارد، با ما در ارتباط باشید!