⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dpsk.m

📁 msk调制
💻 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 + -