how can use fmmod function for make a LFM signal
4 views (last 30 days)
Show older comments
mehdi parvizi
on 18 Aug 2014
Commented: mehdi parvizi
on 20 Aug 2014
i can make LFM signal with this function look my program , but when noise increase to modulated signal, the demodulator out put isn't desirable just for very high SNR such as 100dB!!!???
close all
clear all
clc
%**************** linkbudget
fd=1000; %doppler freq
fs=1e6; %frequency sampling
fc=1e3;
T=1e-2; % one period
B=2e4; %bandwidth
SNR_db=10;
f_dev=1;
%**************
snr=10^(SNR_db/10);
t=-T/4:1/fs:T/4;
x=B/2*tripuls(t,T/2);
figure
plot(t+T/4,x)
x2=fd+x;
y=fmmod(x2,fc,fs,f_dev);
pn=sum(y.^2)/snr;
y2=y+sqrt(pn).*randn(1,length(t));
z=fmdemod(y2,fc,fs,f_dev);
hold on
plot(t+T/4,z,'g')
figure
plot(t,y2);
to see the true output change line 11 to SNR_db=100
2 Comments
Accepted Answer
Salaheddin Hosseinzadeh
on 18 Aug 2014
Hey Mehdi,
I ran your code, couldn't understand anything really.
Try this one, you may see some modulation taking place at least, and then lets try to discuss what the problem is.
Fs = 8000; % Sampling rate of signal
Fc = 30; % Carrier frequency
t = [0:Fs-1]'/Fs; % Sampling times
s1 = sin(2*pi*2*t); % Channel 1
x = s1; % Two-channel signal
dev = 20; % Frequency deviation in modulated signal
y = fmmod(x,Fc,Fs,dev); % Modulate both channels.
plot(t,y,'r')
hold on
z = fmdemod(y,Fc,Fs,dev); % Demodulate both channels.
plot(t,z);
legend('Modulated Signal','Demodulated Message');

3 Comments
More Answers (2)
Salaheddin Hosseinzadeh
on 19 Aug 2014
Hi Mehdi,
It's always a pleasure for me to get involve telecom problems, besides, it's a good review and still a struggle for me. Hamvatan ham ke hasti, dige hanoz pleasuresh bishtare :D
To avoid any confusion I used awgn function. It's a built in MATLAB function, read about it in the MATLAB documentation for further info. (doc awgn)
clear
Fs = 800; % Sampling rate of signal
Fc = 30; % Carrier frequency
t = [0:Fs-1]'/Fs; % Sampling times
x = sin(2*pi*2*t); % Channel 1
dev = 20; % Frequency deviation in modulated signal
y = fmmod(x,Fc,Fs,dev); % Modulate both channels.
y2 = awgn(y,20,'measured'); % 20dB
figure
plot(t,y2,'r')
hold on
z = fmdemod(y2,Fc,Fs,dev); % Demodulate both channels.
plot(t,z);
legend('Modulated Signal','Demodulated Message');
Hope this solves the problem for now, but it would be a good practice I guess for both of us to perform what awgn function does. So Plz leave comment as soon as you got the same result without using awgn and explain for me how u did it. Thanks
Regards,
Salah
Salaheddin Hosseinzadeh
on 18 Aug 2014
Hey Mehdi,
Sorry, I guess it took me a bit more than 2 hours, I've been a bit busy.
Take a look the attached file and how I add noise to the signal.
Considering message is a sine wave, it's between -1 and 1, then for SNR = 10dB which means signal has an amplitude of 10 times greater than noise level adjusted to be between 0.1 and -0.1 , which gives SNR = 10dB, and then I add that to the modulated signal.
Anyway, hope your problem is solved.
Don't hesitate to write back.
Good Luck,
Salah

3 Comments
See Also
Categories
Find more on Propagation and Channel Models in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!