SciLab Амплитудная модуляция

Feb 27, 2015 10:00

Пока жду свой SDR приёмник, побалуюсь в SciLab.



//Создадим два окна для графиков
figure0=scf(0); //creates figure with id==0
figure1=scf(1); //creates figure with id==1

//Генерация амплитудно модулированного сигнала
AMTime=1;//Длительность сигнала
AMCarrierFrequency=100;//Частота несущей
AMCarrierAmplitude=1;//Амплитуда несущей
AMSampleRate=AMCarrierFrequency*10;//Частота выборок
t=[0:(1/AMSampleRate):(AMTime-1/AMSampleRate)];//Время. По сто отсчётов на переод
AMCarrier=AMCarrierAmplitude*sin(2*%pi*t*AMCarrierFrequency);//Несущая

AMModulationFrequency=10;//Частота модулирующего колебания
AMModulationAmplitude=0.5;//Индекс модуляции
AMModulation=AMModulationAmplitude*sin(2*%pi*t*AMModulationFrequency);//Модуляция

AMSignal=AMCarrier.*(1 + AMModulation);//Модулируем несущую
//1 + ... - модуляция с несущей
//0 + ... - без несущей

//График сигнала
scf(figure0);
plot(AMSignal);

AMNumberOfSamples=size(t,'*');//Число отсчётово для FFT
AMFrequencyVector=AMSampleRate*(0:(AMNumberOfSamples/2))/AMNumberOfSamples;//Ыектор частота
AMSignalFFT=fft(AMSignal)/(AMNumberOfSamples/2);//Преобразование Фурье для полчуения спектра и нормирование амплитуды

AMNumberOfFrequency=size(AMFrequencyVector,'*');

//График спектра
scf(figure1);
clf()
plot(AMFrequencyVector,abs(AMSignalFFT(1:AMNumberOfFrequency)));

Полученный сигнал и его спектр




scilab, sdr, ЦОС

Previous post Next post
Up