Modulasi FM dengan MATLAB


Assalamu'alaikum poinreaders,
Pada pembahasan kali ini kita akan belajar salah satu materi yang ada hubungannya dengan Pemrosesan Sinyal. Salah satu modulasi yang sering dibahas dan dipelajari adalah Modulasi Frekuensi (FM) yang merupakan salah satu Modulasi sederhana dan paling mudah untuk dipahami. Untuk ulasan lengkapnya simak pembahasan berikut...

Modulasi FM dengan MATLAB

Modulasi Frekuensi (FM) adalah proses menumpangkan sinyal informasi pada sinyal pembawa (carrier) sehingga frekuensi gelombang pembawa (carrier) berubah sesuai dengan perubahan simpangan (tegangan) gelombang sinyal informasi. Jadi sinyal informasi yang dimodulasikan (ditumpangkan) pada gelombang pembawa menyebabkan perubahan frekuensi gelombang pembawa sesuai dengan perubahan tegangan (simpangan) sinyal informasi. Pada modulasi frekuensi sinyal informasi mengubah-ubah frekuensi gelombang pembawa, sedangkan amplitudonya konstan selama proses modulasi. Modulasi frekuensi adalah salah satu bentuk modulasi dimana frekuensi sinyal pembawa divariasikan secara proposional berdasarkan amlitudo sinyal informasi. Amplitudo sinyal pembawa tetap konstan. Contoh dari FM adalah frekuensi radio yang sekarang lebih sering digunakan radio pada umumnya. Pada kesempatan kali ini kita akan membuat simulasi Modulasi FM dengan menggunakan MATLAB.

Langkah pertama yang harus kita lakukan adalah membuka aplikasi MATLAB kemudian pilih Menu File -> New -> Script kemudian salin script dibawah ini :

Kode Program Modulasi FM :
fi=input('Frekuensi Informasi=');
fc=input('Frekuensi Pembawa=');
im=input('Index Modulasi=');
t=0:0.0001:0.1;
si=sin(2*pi*fi*t);
subplot(3,1,1);
plot(t,si);
xlabel('Time');
ylabel('Amplitude');
title('Sinyal Informasi');
grid on;

sc=sin(2*pi*fc*t);
subplot(3,1,2);
plot(t,sc);
xlabel('Time');
ylabel('Amplitude');
title('Sinyal Carier');
grid on;

y=sin(2*pi*fc*t+(im.*sin(2*pi*fi*t)));
subplot(3,1,3);
plot(t,y);
xlabel('Time');
ylabel('Amplitude');
title('Sinyal FM');
grid on;
Setelah sobat menyalin script diatas langkah terakhir adalah menyimpan program sobat kemudian menjalankan programnya dengan cara memilih Menu Debug kemudian pilih Run atau sobat bisa menekan langsung tombol F5 pada keyboard sebagai shortcut.
 
Output Program yang Dihasilkan :
Frekuensi Informasi= 25
Frekuensi Pembawa= 400
Index Modulasi= 10

Jika sobat menggunakan nilai variabel yang sama dengan nilai variabel yang saya gunakan maka output program dari script diatas akan menampilkan program seperti dibawah ini :

Output Program Modulasi FM
Gambar 1. Output Program Modulasi FM

Penjelasan Script :
1. Pada baris ke-1, ke-2, dan ke-3 berfungsi untuk membuat nilai input-an secara manual saat program dijalankan.

2. Pada baris ke-4 berfungsi untuk membuat vektor waktu dari 0 sampai 0.1 dengan interval 0.0001.

3. Pada baris ke-5 terdapat perintah si=sin(2*pi*fi*t); yang merupakan sebuah persamaan pada modulasi FM yang digunakan untuk mendefinisikan gelombang sinyal informasi.

4. Pada baris ke-6 terdapat perintah subplot(3,1,1) yang digunakan untuk plotting atau pembuatan grafik berdasarkan perintah yang dimasukan. Maksud dari perintah (3,1,1) adalah grafik yang akan kita buat akan ditampilkan dalam sebuah Figure yang terdiri dari 3 baris.

5. Pada baris ke-7 terdapat perintah plot(t,si) yang digunakan untuk menampilkan output dari variabel t dan si yang ditampilkan dalam sebuah grafik.

6. Pada baris ke-8 terdapat perintah xlabel yang digunakan untuk memberikan penamaan pada sumbu x.

7. Pada baris ke-9 terdapat perintah ylabel yang digunakan untuk memberikan penamaan pada sumbu y.

8. Pada baris ke-10 terdapat perintah title yang digunakan untuk memberikan judul pada grafik yang kita buat.

9. Pada baris ke-11 terdapat perintah grid on yang berfungsi untuk membantu user dalam menyelaraskan ukuran objek.

10. Pada baris ke-12 terdapat perintah sc=sin(2*pi*fc*t); yang merupakan sebuah persamaan pada modulasi FM yang digunakan untuk mendefinisikan gelombang pembawa.

11. Pada baris ke-19 terdapat perintah y=sin(2*pi*fc*t+(im.*sin(2*pi*fi*t))); yang merupakan sebuah persamaan pada modulasi FM yang digunakan untuk mendefinisikan gelombang FM hasil modulasi.

Semoga materi yang saya sampaikan kali ini dapat bermanfaat bagi sobat poinreaders, jangan lupa follow akun sosial kami agar sobat poinreaders bisa mendapatkan materi terupdate tentang pemrograman lainnya. 

Share this

Related Posts

Previous
Next Post »

3 comments

comments
14 March 2018 at 15:32 delete

Bang kalo domain nya pake frekuensi apa yg perlu diganti dari script itu ?

Reply
avatar
14 March 2018 at 19:28 delete

kl mau ditambah domain frekuensi sebaiknya menggunakn script ini:

function fmsys(f,fc,fs,dev) % membuat function fmsys yang nantinya bisa dieksekusi lewat Command Window MATLAB
f=5; % frekuensi info
fc=40; % frekuensi carrier
fs=10*fc; % frekuensi sampling
dev=20; % deviasi frekuensi
t=0:0.001:0.5; % waktu 0-0.5 S, dengan interbal tiap 1 mS
%=====================================
x=cos(2*pi*f*t); %sinyal info
c=cos(2*pi*fc*t); %sinyal carrier
y=fmmod(x,fc,fs,dev); %modulasi fm
dy=awgn(y,25,'measured'); % AWGN akan melakukan pengukuran daya y dan akan menambahkan noise yang menyebabkan noise konstan sebesar 4
dyn=fmdemod(dy,fc,fs,dev);
[b,a] = butter(10,0.1);
dyn_f = filter(b,a,dyn);
%=====================================
fft_x = fft(x);
fft_x = abs(fft_x(1:length(fft_x)/2+1));
x_sf = [0:length(fft_x)-1]*fs/length(fft_x)/2;
%=====================================
fft_dy = fft(dy);
fft_dy = abs(fft_dy(1:length(fft_dy)/2+1));
fm_sf = [0:length(fft_dy)-1]*fs/length(fft_dy)/2;
%=====================================
fft_dyn_f = fft(dyn_f,512);
fft_dyn_f = abs(fft_dyn_f(1:length(fft_dyn_f)/2+1));
fmf_sf = [0:length(fft_dyn_f)-1]*fs/length(fft_dyn_f)/2;
%=====================================
figure(2);
%subplot(2,1,1);plot(f,Pxx(1:257),'g');title('Frekuensi Baseband ');xlabel('frekuensi (Hz)')
subplot(3,1,1); plot(x_sf,fft_x); title('Spektrum sinyal informasi');xlabel('frekuensi (Hz)');
subplot(3,1,2); plot(fm_sf,fft_dy); title('Spektrum hasil modulasi dan AWGN');xlabel('frekuensi (Hz)');
subplot(3,1,3);plot(fmf_sf,fft_dyn_f,'r');title('hasil demodulasi dan difilter');xlabel('frequency (Hz)');

%=====================================
figure(1);
subplot(5,1,1);plot(t,x,'r');hold on;plot(t,c,'g');legend('base band','carrier wave');;title('base band & carrier wave');
subplot(5,1,2);plot(t,y,'b');title('FM modulation');
subplot(5,1,3);plot(t,dy,'g');axis([0 0.5 -1 1]);title('FM modulation + AWGN');
subplot(5,1,4);plot(t,dyn);axis([0 0.5 -1.3 1.3]);title('FM demodulation');
subplot(5,1,5);plot(t,dyn_f,'r');axis([0 0.5 -1.3 1.3]);title('FM demodulation filter');

prinsip kerjanya sama. tapi kl script yg ini lebih enak dilihat outputnya

Reply
avatar
27 March 2018 at 21:37 delete

mantaap siap bang, terimakasih

Reply
avatar