📄 dpsk.m
字号:
%******************** Preparation part **********************
symbolrate = 2400; %Symbol rate
nb =10;% Number of symbols every loop
m=1;%m=1 bpsk, m=2 qpsk, m=8 8psk
bitrate=symbolrate*m; %Bit rate
nc = 2; % Carrier frequency should be the mutiple of bit duration
fc = nc*bitrate; % Carrier frequency
fs = 32*bitrate; % Sampling frequency
t=0:1/fs:nb/symbolrate-1/fs;
%******************** Data generation **********************
inputoriginal=[1 1 0 0 1 0 0 0 1 0]; ; %Generate the random input sequence
inputdiff=diffcode(inputoriginal'); % Differential coding
out=zeros(1,fs*nb/symbolrate);
for i=1:fs/symbolrate:fs*nb/symbolrate-1,
for j=1:fs/symbolrate,
out(i+j-1)=inputdiff(fix(i*symbolrate/fs)+1);
end
end
%******************** Modulation **********************
xals=2*out-1;
mod=xals.*cos(2*pi*fc*t);
%******************** Attenuation calculation **********
snr_in_dB=2;
snr=10^(snr_in_dB/10);
xxx=sum(mod.^2)/length(mod);
psymbol=sum(mod.^2)/(length(mod)*bitrate);
np=(psymbol/snr)*fs;
attn=sqrt(0.5*np);
%******************** Add White Gaussian Noise ******
inoise=randn(1,length(mod)).*attn;
modawgn=mod+inoise;
%******************** Demodualtion **********************
%delay=[1*cos(2*pi*fc*(0:1/fs:1/symbolrate-1/fs)),modawgn(1:(nb-1)*fs/symbolrate)];
%demod=modawgn.*delay;
delay=[-1*cos(2*pi*fc*(0:1/fs:1/symbolrate-1/fs)),mod(1:(nb-1)*fs/symbolrate)];
demod=mod.*delay;
%******************** Output data *******************
output=zeros(1,nb);
output1=zeros(1,fs/symbolrate);
for i=1:nb
for j=1:fs/symbolrate
output1(j)=demod(j+(i-1)*fs/symbolrate);
output(i)=mean(output1)<0;
end
end
%******************** Bit Error Rate **********************
%[number, ratio]=biterr(inputoriginal', output);
%******************** End of file **********************
figure(1);
stem([1:nb],inputoriginal);
xlabel('Number');
ylabel('');
title('Original input symbol');
axis([1,nb,-2,2]);
figure(2);
stem([1:nb],inputdiff);
xlabel('Number');
ylabel('');
title('Differential encoding input symbol');
axis([1,nb,-2,2]);
figure(3);
plot(t,mod);
xlabel('Time');
ylabel('Magnitude');
title('Modulated wave');
axis([0,nb/symbolrate,-2,2]);
figure(4);
plot(t,delay);
xlabel('Time');
ylabel('Magnitude');
title('Delay reference wave');
axis([0,nb/symbolrate,-2,2]);
figure(5);
plot(t,demod);
xlabel('Time');
ylabel('Magnitude');
title('Demodulation wave');
axis([0,nb/symbolrate,-2,2]);
figure(6);
stem([1:nb],output);
xlabel('Number');
ylabel('Magnitude');
title('Output symbol');
axis([1,nb,-2,2]);
figure(7);
stem(t,out);
xlabel('Time');
ylabel('Magnitude');
title('Sampling wave');
axis([0,nb/symbolrate,-2,2]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -