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

发布时间 : 星期三 文章数字频带传输系统的MATLAB仿真实现源代码更新完毕开始阅读99b81729eff9aef8941e06ba

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;