demod.m

来自「本文件是有关于QPSK仿真的matlab源码。」· M 代码 · 共 87 行

M
87
字号
% QPSK Demod Test
clear
load sc1000.dat;
%load c:\qpsk\lecroy_1\sc1000.dat;
offset=100;
size=1024*4;
wave=sc1000';
fs=1e9;

% Display wave form

plot(wave(1:100));
grid
title('IF Signal');
%pause;

data_fft=10*log10(abs(fftshift(fft(kaiser(size,11.)'.*...
      (wave(offset:offset+size-1))))));
   data_fft=data_fft-max(data_fft);
   nnnn=size;
   ff=-nnnn/2:nnnn/2-1;
   ff=ff/nnnn*2*fs/2;
   plot(ff,data_fft);
	title(' IF Data Spectrum Before Filtering ');
	axis([400e6, 600e6 -50 0]);
	grid;
	xlabel('FREQUENCY (HZ)');
	ylabel('MAGNITUDE (dB) ');
   pause;
   
   % generate local carrier
   
   fc=480e6-3e6;   % carrier
   t=[0:length(wave)-1]/fs;
c_sin=sin(2*pi*fc*t); 	% carrier sine;
c_cos=cos(2*pi*fc*t); 	% carrier cosine;

i_data=wave.*c_cos;	% down converting
q_data=wave.*c_sin;	% down converting

%	% plot spectrum;
	data_fft=20*log10(abs(fftshift(fft(kaiser(size,11.)'.*...
		 i_data(offset:offset+size-1)))));
	ff=-nnnn/2:nnnn/2-1;
	ff=ff/nnnn*2*fs/2;
   plot(ff,data_fft);
	title(' I Data Spectrum After Demodulation');
	grid;
   %pause;
   
   n_decimate=4*2*2;
   i_data=decimate(i_data,2);
   i_data=decimate(i_data,2);
   i_data=decimate(i_data,2);
   i_data=decimate(i_data,2);
   q_data=decimate(q_data,2);
   q_data=decimate(q_data,2);
   q_data=decimate(q_data,2);
   q_data=decimate(q_data,2);


   
   size=size/n_decimate;
   offset=10;
   
   data_fft=20*log10(abs(fftshift(fft(kaiser(size,11.)'.*...
      i_data(offset:offset+size-1)))));
   nnnn=nnnn/n_decimate;
	ff=-nnnn/2:nnnn/2-1;
	ff=ff/nnnn*2*fs/2/n_decimate;
   plot(ff,data_fft);
	title(' I Data Spectrum After Demodulation');
	grid;
   %pause;
   for kk=1:200
   iq=i_data+1i*q_data;
   plot(iq(kk), '*');
   axis([-1 1 -1 1]*.2);
   grid
   pause
   end
   


   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?