AM modulation and demodulation

조회 수: 4 (최근 30일)
Eleftherios Kostakis
Eleftherios Kostakis 2020년 5월 26일
답변: SINETHEMBA MNGUNI 2020년 10월 16일
Hello, I have this signal m(t) = cos(2*pi*t), and the AM signal of m : y = (Ac + m).*cos(2*fc*pi*t).
The first plot is the original signal, the second plot is the AM signal and the last is the envelope of the modulated signal.
I want to get the original signal so I try to do demodulation to AM signal, using z = amdemod(y,fc,fs) and next get the envelope of the demolated singal
but I get again the AM's signal envelope. As you see y axis is in range (1,3) but I want it in range (-1,1) like the orginal signal. I want just to deduct the Ac I added in (Ac + m), to get the original, but with amdemod() I don't get that result.

채택된 답변

Sebastien Dupertuis
Sebastien Dupertuis 2020년 5월 27일
I think that by removing the mean (DC offset) of your demodulated signal in figure 3, you will then get your signal within the range (-1,1):
m = m-mean(m);
I would write an amDemod function like this:
function m = amDemod(s,fc,fs,n)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Function amDemod()
% Goal : Demodulation of an AM signal
% IN : - s : AM modulated signal
% - fc: Carrier signal frequency
% - fs: Sampling frequency
% - n : Number of carrier signal periods
% IN/OUT: -
% OUT : - m : Original demodulated signal
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rectify the modulated signal
s = abs(s);
% Set the number of samples on which to do the moving average
k = round(n*fs/fc);
% Take the moving average
m = movmean(s,k);
% Remove the DC offset
m = m-mean(m);
end
Hope this helps.

추가 답변 (1개)

SINETHEMBA MNGUNI
SINETHEMBA MNGUNI 2020년 10월 16일
Hi, I need to modulate and demoduate an Audio.wav signal, how can I go about it?

카테고리

Help CenterFile Exchange에서 Modulation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by