最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

数字频带传输系统的MATLAB仿真实现源代码

来源:动视网 责编:小OO 时间:2025-09-30 08:38:29
文档

数字频带传输系统的MATLAB仿真实现源代码

一、设计内容:数字频带传输系统的MATLAB仿真实现[1]个人部分:2PSK的调制、信道模拟、抽样判决及解调1、2PSK的调制基本任务:原始PCM脉冲编码信号的2PSK调制1)、主要步骤和要求:对原始的PCM脉冲编码信号进行2PSK调制。要求原始的PCM脉冲编码信号可以是数字型也可以是字符型;要求画出原始PCM脉冲编码信号和2PSK调制信号的波形图。2)2PSK调制程序代码及说明:functionpsk_sig=modulat_1(pcm,Fc,Fd,Fs)%输入信号pcm为原始的PCM脉冲编
推荐度:
导读一、设计内容:数字频带传输系统的MATLAB仿真实现[1]个人部分:2PSK的调制、信道模拟、抽样判决及解调1、2PSK的调制基本任务:原始PCM脉冲编码信号的2PSK调制1)、主要步骤和要求:对原始的PCM脉冲编码信号进行2PSK调制。要求原始的PCM脉冲编码信号可以是数字型也可以是字符型;要求画出原始PCM脉冲编码信号和2PSK调制信号的波形图。2)2PSK调制程序代码及说明:functionpsk_sig=modulat_1(pcm,Fc,Fd,Fs)%输入信号pcm为原始的PCM脉冲编
一、设计内容:数字频带传输系统的MATLAB仿真实现

[1]个人部分:2PSK的调制、信道模拟、抽样判决及解调

1、2PSK的调制

基本任务:原始PCM脉冲编码信号的2PSK调制

1)、主要步骤和要求:对原始的PCM脉冲编码信号进行2PSK调制。要求原始的PCM脉冲编码信号可以是数字型也可以是字符型;要求画出原始PCM脉冲编码信号和2PSK调制信号的波形图。

2)2PSK调制程序代码及说明:

function psk_sig=modulat_1(pcm ,Fc,Fd,Fs)

%输入信号pcm为原始的PCM脉冲编码信号,Fc为载波频率,Fd输出信号的抽样

%频率为,Fs为输入信号的抽样频率;输出信号psk_sig为2PSK调制后的信号。

%原始PCM脉冲编码信号的2PSK调制%

%检测输入信号的类型% 

2PSK调制程序代码:

function psk_sig=modulat_1(pcm,fc,fd,fs)

for i=1:length(pcm);         % 判断是数字还是字符

    if  ischar(pcm(i))==1;

        pcm(i)=str2num(pcm(i));

    end

    i=i+1;

end

psk_sig=dmod(pcm,fc,fd,fs,'psk'); 

subplot(2,1,1)

plot(pcm,'r*')

subplot(2,1,2)

plot(psk_sig,'b.')

实验截图:

2、随机噪声信道的MATLAB仿真实现

基本任务:简单随机噪声信道的MATLAB仿真实现。

1)、主要步骤和要求:要求2PSK调制信号经过一个常用的AWGN信道;要求2PSK调制信号可以是数字型也可以是字符型;要求信道信噪比snr可变;要求在同一个figure中给出输入信号psk_sig和输出信号psk_after_channel的波形图。

2)、2PSK+AWGN程序代码及说明:

function psk_after_channel=channel_1(psk_sig,snr)

%输入变量psk_sig为2PSK调制信号,snr为AWGN信道的信噪比;输出变量%psk_after_channel为经过AWGN信道后的2PSK调制信号。

%检测2PSK调制信号的类型%

2PSK+AWGN程序代码:

function psk_after_channel=channel_1(psk_sig,snr);

n1=length(psk_sig);

psk_sig=psk_sig(:);

psk_sig_a=zeros(n1,1);

psk_sig_a=psk_sig_a(:);     %产生列向量

for i=1:n1

    if ischar(psk_sig(i))==1

       psk_sig_a(i)=str2num(psk_sig(i));

   else psk_sig(i)=psk_sig(i);

   end

end

psk_after_channel=awgn(psk_sig,snr);

subplot(2,1,1)

plot(psk_sig,'r*')

subplot(2,1,2)

plot(psk_after_channel,'b.')

实验截图:

3、抽样判决的MATLAB仿真实现

基本任务:对经过随机噪声信道的2PSK和2FSK调制信号进行抽样判决,去除或减弱噪声的干扰。

1)、主要步骤和要求:对经过信噪比可变、输入信号功率值可调的随机噪声信道的2PSK调制信号进行抽样判决,去除噪声的干扰。要求2PSK调制信号可以是数字型也可以是字符型;要求画出判决前后的波形图。

2)、2PSK+AWGN+ADJUDGE程序代码及说明:

function adjudged_psk=adjudg_1(psk_after_channel,m)

%输入信号psk_after_channel为经过AWGN信道后的2PSK调制信号,m为判决

%门限值;输出变量adjudged_psk为抽样判决后的信号。

%检测2PSK调制信号的类型%

2PSK+AWGN+ADJUDGE程序代码:

function adjudge_psk=adjudg_1(psk_after_channel)

n4=length(psk_after_channel);

adjudge_psk=zeros(1,n4);

for i=1:n4

    if ischar(psk_after_channel)==1

    psk_after_channel(i)=str2num(psk_after_channel);

    end

end

for i=1:n2

    if round(psk_after_channel(i))==1

           adjudge_psk(i)=1;

     elseif round(psk_after_channel(i))==0

             adjudge_psk(i)=0;

     else  adjudge_psk(i)=-1;

       end

end

subplot(2,1,1)

plot(psk_after_channel,'r*')

subplot(2,1,2)

plot(adjudge_psk,'b.')

实验截图:

4、2PSK解调制

基本任务:由抽样判决后的2PSK调制信号恢复出原始的PCM脉冲编码信号。

1)、主要步骤和要求:由抽样判决后的2PSK调制信号恢复出原始的PCM脉冲编码信号(0、1信号)。要求抽样判决后的2PSK调制信号可以是数字型也可以是字符型;要求画出码型反变换前后的波形图。

2)、2PSK解调制程序代码及说明:

function re_pcm=demodul_1(adjudged_psk, Fc,Fd,Fs)

%输入信号adjudged_psk为抽样判决后的2PSK调制信号,Fc为载波频率,Fd输%出信号的抽样频率为,Fs为输入信号的抽样频率;输出信号re_pcm为恢复出的%原始PCM脉冲编码信号。

%检测抽样判决后的2PSK调制信号类型%

2PSK解调制程序代码:

function re_pcm=demodul_1(adjudge_psk,fc,fd,fs)

  for i=1:length(adjudge_psk)

     if  ischar(adjudge_psk(i))==1

        adjudge_psk=str2num(adjudge_psk(i));

      end

     end

re_pcm=ddemod(adjudge_psk,fc,fd,fs,'psk',2);

subplot(2,1,1)

plot(adjudge_psk,'r*')

subplot(2,1,2)

plot(re_pcm,'b.')

实验截图:

[2]级联部分:通信系统的建模和传输质量分析

(一)基本任务:数字基带传输系统的MATLAB仿真实现。(20分)

1、主要步骤和要求:

数字基带传输系统的MATLAB仿真包括以下内容:单频正弦波模拟信号经过抽样(要求仿真时间从0到2/F,抽样频率为Fs=20F)、均匀量化(量化电平数D可变)、PCM二进制自然编码、AMI码型变换后,发送到信噪比snr可变的AWGN信道,然后经过抽样判决、AMI码型反变换、D/A转换(内插点数N可变)后恢复出单频正弦波模拟信号。要求给出抽样后的输入信号sampl和恢复出的输入信号re_sampl的波形图。

2、程序代码及说明:

function [sampl,re_sampl]=system_1(A,F,P,D,snr,N)

%输入变量A ,F,P分别为输入信号的幅度、频率和相位,D为量化电平数,snr

%为信道信噪比,N为D/A转换时的内插点数;输出变量sampl为抽样后的输入

%信号,re_sampl为恢复出的输入信号。

数字频带传输通信系统仿真程序代码:

function [sampl,re_sampl]=system_1(A,F,P,D,snr,fc,fd,fs,N)

[sampl,quant,pcm2]=a_d_1(A,F,P,D);

if ischar(pcm2)==1 % 判断是数字还是字符

  pcm=str2num(pcm2);

else pcm2=pcm2;

end      

psk_sig=modulat_1(pcm2,fc,fd,fs);

psk_after_channel=channel_1(psk_sig,snr);

adjudge_psk=adjudg_1(psk_after_channel);

re_pcm=demodul_1(adjudge_psk,fc,fd,fs);

[re_voltag,re_sampl]=d_a_1(re_pcm,D,N);

numoferr=0;

for i=1:length(sampl),

    if(re_sampl~=sampl(i)),

    numoferr=numoferr+1;

   end;

end;

p=numoferr/length(sampl)

% A/D**********************************

function[sampl,quant,pcm2]=a_d_1(A,F,P,D)      

t=0:1/(20*F):2/F;

sampl=A*sin(2*pi*F*t+P);       

c=sampl/max(sampl);

partition=[-1:2/D:1];

codebook=[-1-1/D:2/D:1];

[indx,quant]=quantiz(c,partition,codebook);

indx=indx-1;

ind=zeros(length(indx),1);

i=1;

while i<=length(indx)

    if indx(i,1)==-1;

        indx(i,1)=0;

    end

    i=i+1;

end

a=min(quant);    %对信号消顶

i=1;

while i<=length(quant)

    if quant(1,i)==a;

        quant(1,i)=quant(1,i)+2/D;

    end

    i=i+1;

end

subplot(2,1,1);

plot(t,c,'b*-');

title('signal')

pcm=dec2bin(indx,ceil(log2(D)));    %对量化后信号编码

pcm1=reshape(pcm',1,length(pcm)*ceil(log2(D)));

for i=1:length(pcm1);

   pcm2(i)=str2num(pcm1(i));

    i=i+1;

end

%调制*****************************************

function psk_sig=modulat_1(pcm2,fc,fd,fs)

psk_sig=dmod(pcm2,fc,fd,fs,'psk'); 

%进入信道***************************************

function psk_after_channel=channel_1(psk_sig,snr);

n1=length(psk_sig);

psk_sig=psk_sig(:);

psk_sig_a=zeros(n1,1);

psk_sig_a=psk_sig_a(:);     %产生列向量

for i=1:n1

    if ischar(psk_sig(i))==1

       psk_sig_a(i)=str2num(psk_sig(i));

   else psk_sig(i)=psk_sig(i);

   end

end

psk_after_channel=awgn(psk_sig,snr);

%抽样判决******************************

function adjudge_psk=adjudg_1(psk_after_channel)

n2=length(psk_after_channel);

adjudge_psk=zeros(1,n2);

for i=1:n2

    if ischar(psk_after_channel)==1

    psk_after_channel(i)=str2num(psk_after_channel);

    end

end

for i=1:n2

    if round(psk_after_channel(i))==1

           adjudge_psk(i)=1;

     elseif round(psk_after_channel(i))==0

             adjudge_psk(i)=0;

     else  adjudge_psk(i)=-1;

       end

   end

%解调****************************************

function re_pcm=demodul_1(adjudge_psk,fc,fd,fs)

  for i=1:length(adjudge_psk)

     if  ischar(adjudge_psk(i))==1

        adjudge_psk=str2num(adjudge_psk(i));

      end

     end

re_pcm=ddemod(adjudge_psk,fc,fd,fs,'psk',2);

% d/a******************************************

function [re_voltag,re_sampl]=d_a_1(re_pcm,D,N)

for i=1:length(re_pcm)

    if ischar(re_pcm(i))==1;

        re_pcm(i)=str2num(re_pcm(i));

    end

end

n=ceil(log2(D)); 

for i=2:n

    if rem(length(re_pcm),n); 

        k=rem(length(re_pcm),n);

        B=zeros(1,(n-k));

        re_pcm1=[re_pcm,B];

    else re_pcm1=re_pcm;

    end

end

re_pcm1=re_pcm1(:);

m=ceil(length(re_pcm1)/n); 

for i=1:m

    A=re_pcm1((i-1)*n+1:(i-1)*n+n); 

    C=reshape(A,1,n);

    E=fliplr(C);

    sum=0;

    for j=1:n

        sum=sum+E(j)*2^(j-1);

       V(i)=sum;

    end

end

s=2/D;

for i=1:m

     re_voltag(i)=(V(i)*s+s/2-1);

 end

for i=1:length(re_voltag)

   re_sampl((i-1)*(N+1)+1)=re_voltag(i);

    for k=2:N

         re_sampl((i-1)*(N+1)+k)=0;

     end

end 

h1=zeros(1,N);

for j=1:N

    h1(j)=j/(N+1);

end

h=[0,h1,1,fliplr(h1),0]; 

h=h(:);

re_sampl=conv(h,re_sampl);

subplot(2,1,2)

plot(re_sampl,'r.');

title('re_signal');

测试信号: [sampl,re_sampl]=system_1(1,32000,0,10,10,32000000,16000000,1280000000,10)

实验截图:

p =

 1756

ans =

  Columns 1 through 11 

         0    0.3090    0.5878    0.8090    0.9511    1.0000    0.9511    0.8090    0.5878    0.3090    0.0000

  Columns 12 through 22 

   -0.3090   -0.5878   -0.8090   -0.9511   -1.0000   -0.9511   -0.8090   -0.5878   -0.3090   -0.0000    0.3090

  Columns 23 through 33 

    0.5878    0.8090    0.9511    1.0000    0.9511    0.8090    0.5878    0.3090    0.0000   -0.3090   -0.5878

  Columns 34 through 41 

   -0.8090   -0.9511   -1.0000   -0.9511   -0.8090   -0.5878   -0.3090   -0.0000         

文档

数字频带传输系统的MATLAB仿真实现源代码

一、设计内容:数字频带传输系统的MATLAB仿真实现[1]个人部分:2PSK的调制、信道模拟、抽样判决及解调1、2PSK的调制基本任务:原始PCM脉冲编码信号的2PSK调制1)、主要步骤和要求:对原始的PCM脉冲编码信号进行2PSK调制。要求原始的PCM脉冲编码信号可以是数字型也可以是字符型;要求画出原始PCM脉冲编码信号和2PSK调制信号的波形图。2)2PSK调制程序代码及说明:functionpsk_sig=modulat_1(pcm,Fc,Fd,Fs)%输入信号pcm为原始的PCM脉冲编
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top