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

📄 qpsk.m

📁 QPSK程序代码 非常有用的东西 尽管不是本人原创
💻 M
字号:
data=rand(1,10)>0.5;
fb=500;fc=500;
M=32;       
tb=1/fb;tc=1/fc;
step=tb/M; ebn0=25; fs=M/tb;
data1=data*2-1;
datai=data1(1:2:10-1);
dataq=data1(2:2:10);
for i = 1:10
           for j = 1:M
              m((i-1)*M+j)=data1(i);   
           end
end
  m1=abs(fft(m));  
for j = 1:5
           for i = 1:2*M
               mi((j-1)*2*M+i)=datai(j);
           end
         for i= 1:2*M
                mq((j-1)*2*M+i)=dataq(j);
         end
end
for k=1:M*10
        t(k)=(k-1)*step;
        si(k)=mi(k)*cos(2*pi*fc*t(k));
        sq(k)=mq(k)*sin(2*pi*t(k)*fc);
        s(k)=si(k)+sq(k);
end
s1=abs(fft(s));
spow=sum(mi.*mi+mq.*mq)/10;   
	attn=0.5*spow*250/fb*10.^(-ebn0/10); 
	attn=sqrt(attn);  
 n0=randn(1,320).*attn;
 ss=s+n0;
 mi_r=ss.*cos(2*pi*fc*t);
 mq_r=ss.*sin(2*pi*fc*t);
 B=fir1(60,0.01);
 i_filter=filter(B,1,mi_r); 
 q_filter=filter(B,1,mq_r);  
         
%    f=0:0.01:0.1;   
% xrc=0.5+0.5*cos(pi*f);     
% i_filter=conv(mi_r,xrc)/5.5;   
%  q_filter=conv(mq_r,xrc)/5.5;
for j=1:5
     ichsum(j)=sum(i_filter((j-1)/step+1:j/step))*step; 
     
        if ichsum(j)>=0
         i_r(j)=1;
        else
            i_r(j)=0;
        end
   
    
        qchsum(j)=sum(q_filter((j-1)/step+1:j/step))*step; 
   
         if qchsum(j)>=0
             q_r(j)=1;
         else
             q_r(j)=0;
         end
  end
     
 datar=zeros(1,10); 
 for i=1:5
     datar(2*i-1)=i_r(i);
     datar(2*i)=q_r(i);
 end
 int=0;
 for i=1:10
     if datar(i)~=data(i)
         int=int+1;
     end
 end
 
   pe=int/10      
 
 h = spectrum.welch;  
figure
subplot(3,1,1)
plot(t,m)
grid
title('Input Waveform')
subplot(3,1,2)
plot(t,mi)
grid
title('I Channel Waveform')
subplot(3,1,3)
plot(t,mq)
grid
title('Q Channel Waveform')
figure
subplot(3,1,1)
plot(t,si)
grid
title('I Channel Modulated Waveform')
subplot(3,1,2)
plot(t,sq)
grid
title('Q Channel Modulated Waveform')
subplot(3,1,3)
plot(t,s)
grid
title('QPSK Waveform')
figure
plot(t,ss)
title('QPSK of adding noise')
figure
subplot(2,1,1)
plot(t,mi_r)
subplot(2,1,2)
plot(t,mq_r)
figure
subplot(2,1,1)
plot(i_filter)
subplot(2,1,2)
plot(q_filter)

figure
subplot(2,1,1)
plot(fftshift(m1)),title('base signal spectrum')
subplot(2,1,2)
psd(h,m,'fs',fs),title('baseband signal power spectrum'); 
figure
subplot(2,1,1)
plot(fftshift(s1))
subplot(2,1,2)
psd(h,s,'fs',fs),title('Modulated signal power spectrum'); 
figure
for i=1:10/2 
    
plot(si(i),sq(i),'ro'),title('constellation');hold on;


axis([-2 2 -2 2]); 
plot(i_r(i),q_r(i),'*');hold on; 
legend('before channel','after channel'); 
end 

⌨️ 快捷键说明

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