3 transmitterfunction.m
来自「Here is transmitter function in matlab. 」· M 代码 · 共 59 行
M
59 行
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Transmitter function
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%transmitting
function dataoutput = tr(datainput3,numcar,ifftsize,wordsize)
carspace=1;
interfreq=ifftsize/4; % find the middle of the spectrum
start=interfreq-round(((numcar-1)*carspace/200));
finnal=interfreq+floor(((numcar-1)*carspace/2));
carriers= [start:carspace:finnal]+1;
oppocarriers=ifftsize-carriers+2; %find the symmtrical spectrum of carriers
numbersym=ciel(length(datainput3)/numcar); % find the total number of symbol per carrier
m=length(datainput3);
%zero padding
database=zeros(1,numbersym*numcar);
for k=1:m
database(k) = datainput3(k);
end
dataout=reshape(database,numcar,numbersym)';%reshape the data into the number of carriers
phaserefre=round(rand(1,numcar)*(2^worldsize)+0.5); %generate a random phase ref
DPSKdata = zeros(size(dataout,1)+1,size(dataout,2));
numbersym=size(dataout,1)+1; %find the total number of symbol per carrier including phase ref DPSKdata(1,:) = phaserefre;
% ******************
% DQPSK modulation
% ******************
for k = 1 :numbersym-1
DPSKdata(k+1, :)=rem((dataout(k,:) + DPSKdata(k,:)-1 ),(2 ^worldsize))+1;
end
[X,Y] = pol2cart(DPSKdata*(2*pi/(2^worldsize)),ones(size(DPSKdata))); %transform the angel and radius into X Y
complex1=X+i*Y;
complex2=X-i*Y; % negative spectrum
%%%%%%%%%%%%%%%%%%
% assign spectrum in carriers
%%***************************
signalspec=zeros(numbersym,ifftsize);
for k=1: numbersym
signalspec(k,carriers)=complex1(k,:);
signalspec(k,oppocarriers)=complex2(k,:);
end
%**********************'*****************************
% IFFT change (change the frequency into time domain)
%***************************************************
for k=1 :numbersym
timesignal(k, :)=ifft(signalspec(k,:));
end
[M,N]=size(timesignal);
dataoutput=reshape(timesignal, 1 ,M*N);
I=real(dataoutput); %divide the transmitting signal into I Q signal seperately Q=imag(dataoutput);
dataoutput=[ I; Q ];
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?