Why there is a modulation in case of frequency offset?
显示 更早的评论
There is modulation in a last graph of a signal (figure 1). At programm there is no such kind of modulation (there is only transfer of a signal on the carrier frequency). Why? Where a mistake?
MATLAB code:
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% +++++++++++++++++++++ Doppler Shift ++++++++++++++++++++++++++++++++++++
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%%Initialization
clear all; close all; clc; format longE;
% ~~~~~~~~~~~~~~~~~~~ Begin of the Programm ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
% Initial parameters of the Signal
f=100; %Frequency of the signal (sin), [Hz];
Fc=1e3; %Carrier frequency, [Hz];
Fd=30*f; %Sampling frequencym, [Hz];
A=1; %Amplitude
%%~~~~~~~~~~~~~~~~~~Initializing Doppler Shift~~~~~~~~~~~~~~~~~~~~~~~~~~
c=3e8; %Speed of light, [m/a];
%````````````````````````````````Speeds: ```````````````````````````````
Fdoppler=10; %Maximal Doppler Shift, [Hz]
Speed=(Fdoppler*c)/(Fc+f); %Necessary speed in [m/s] for receiving necessary shift.
speeedfordisp=(Fdoppler*3.6*c)/(Fc+f); %Necessary speed in [m/s] for receiving necessary shift.
fprintf('\n\n\n\nAt the set parameters for receiving shift on %d Hz\nspeed is necessary: \n \t -- [m/s]:\t %.3f;\n \t -- [km/h]:\t %3f.\n\n', Fdoppler, Speed, speeedfordisp);
%``````````````````````````````````````````````
%New wave frequency (after Doppler Effect):
betta=Speed/c;
alpha=0;
f_dopl=((Speed*(Fc+f))/c)*cosd(alpha);
%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%~~~~~~~ Passing a signal throught the channel with a Doppler Effect ~~~~~
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%Parametrs of the signal
t=(0:1/Fd:1);
N = length(t);
NFFT = 16000;
FrequencyAxe=Fd*linspace(0,1,NFFT); %Frequency Axe;
%Initializing the signal
Signal=A*sin(2*pi*f.*t);
%Modulating the signal:
SignalModulated=Signal.*exp(1i*2*pi*(Fc).*t);
%Add Doppler Effect:
Spectr = fft(SignalModulated); %Conver to the Frequency Domain
SignalModulated_D=ifft(circshift(Spectr, [0 f_dopl])); %Add shift
%Demodulation the signal
SignalDemodulated=SignalModulated_D.*exp(-1i*2*pi*(Fc).*t);
%`````````````````````````````````````````````````````````````````````````
%```````````````````````` END OF PROGRAMM'S PART `````````````````````````
%`````````````````````````````````````````````````````````````````````````
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%~~~~~~~~~~~~~~~~~ Calculating a spectr of the signals ~~~~~~~~~~~~~~~~~~~
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%Spectr of the initial signal:
SpectrInitialSignal=(1/NFFT).*fft(Signal, NFFT); Plot_SpectrInitialSignal=abs(SpectrInitialSignal(1:NFFT));
%Spectr of the modulated signal:
SpectrModulatedSignal=(1/NFFT).*fft(SignalModulated, NFFT); Plot_SpectrModulatedSignal=abs(SpectrModulatedSignal(1:NFFT));
%Spectr of the modulated signal with a Doppler Effect:
SpectrModulatedSignal_D=(1/NFFT).*fft(SignalModulated_D, NFFT); Plot_SpectrModulatedSignal_D=abs(SpectrModulatedSignal_D(1:NFFT));
%Spectr of the demodulated signal (with a Doppler Effect):
SpectrDemodulatedSignal=(1/NFFT).*fft(SignalDemodulated, NFFT); Plot_SpectrDemodulatedSignal=abs(SpectrDemodulatedSignal(1:NFFT));
%`````````````````````````````````````````````````````````````````````````
%```````````````````````` END OF PROGRAMM'S PART `````````````````````````
%`````````````````````````````````````````````````````````````````````````
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Plot ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%Intializing of label variables:
TimeAxe='Time, [s]';
FreqAxe='Frequency, [Hz]';
% TESTING PART (All plots are separated from each other)
figure(1)
%~~ SIGNALS ~~
%Plot the initial signal:
subplot(4,2,1);
plot(t, Signal);
xlabel(TimeAxe);
title('Initial signal');
%Plot the modulated signal
subplot(4,2,3);
plot(t,SignalModulated);
xlabel(TimeAxe);
title('Modulated signal');
%Plot the modulated signal with a Doppler Effect
subplot(4,2,5);
plot(t,SignalModulated_D);
xlabel(TimeAxe);
title('Modulated signal with a Doppler Effect');
%Plot the demodulated signal with a Doppler Effect
subplot(4,2,7);
plot(t,SignalDemodulated);
xlabel(TimeAxe);
title('Demodulated signal');
%`````````````
%~~ SPECTRS ~~
%Plot the SPECTR of the initial signal
subplot(4,2,2);
plot(FrequencyAxe,Plot_SpectrInitialSignal);
xlabel(FreqAxe);
title('Spectr of the initial signal');
%Plot the SPECTR of the modulated signal:
subplot(4,2,4);
plot(FrequencyAxe,Plot_SpectrModulatedSignal);
xlabel(FreqAxe);
title('Spectr of the modulated signal');
%Plot SPECTR of the modulated signal with Doppler Effect
subplot(4,2,6);
plot(FrequencyAxe,Plot_SpectrModulatedSignal_D);
xlabel(FreqAxe);
title('SPECTR of the modulated signal \bf with Doppler Effect');
%Plot SPECTR of the demodulated signal:
subplot(4,2,8);
plot(FrequencyAxe,Plot_SpectrDemodulatedSignal);
xlabel(FreqAxe);
title('Spectr of the demodulated signal');
%`````````````
%GRAPHICS
%~~ Signals ~~
figure(2);
%Plot the initial signal and demodulated signal:
subplot(2,1,1);
hold on;
%Plot the initial signal:
plot(t,Signal,'m');
%Plot the recieved signal:
plot(t,SignalDemodulated, 'r');
hold off;
xlabel(TimeAxe);
legend('Initial signal','Demodulated signal');
title('Initial signal and demodulated signal');
%Plot the modulated signal and the modulated signal with the Doppler Effect:
subplot(2,1,2);
hold on;
%Plot the modulated signal:
plot(t,SignalModulated, 'm');
%Plot the modulated signal with a Doppler Effect:
plot(t,SignalModulated_D, 'r');
xlabel(TimeAxe);
legend('Modulated signal','Modulated signal \bfwith Doppler Effect');
title('Modulated signal with/without Doppler Effect');
%~~ SPECTRS ~~
figure(3);
hold on;
%Plot the SPECTR of initial signal
plot(FrequencyAxe,Plot_SpectrInitialSignal, 'm');
%Plot the SPECTR of the recieved signal
plot(FrequencyAxe,Plot_SpectrDemodulatedSignal, 'r');
hold off;
xlabel(TimeAxe);
legend('Spectr of the initial signal','Spectr of the demodulated signal');
title('Spectrs of the initial signal and demodulated signal');
采纳的回答
更多回答(1 个)
Masoud Ghanbari
2013-3-17
0 个投票
you know what... Too Long Buddy
类别
在 帮助中心 和 File Exchange 中查找有关 Simulation, Tuning, and Visualization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!