数字基带传输常用码型的MATLAB表示演示教学 下载本文

内容发布更新时间 : 2024/11/14 23:46:26星期一 下面是文章的全部内容请认真阅读。

数字基带传输常用码型的MATLAB表示

在某些具有低通特性的有线信道中,特别是传输距离较近的情况

下,数字基带信号不经调制可以直接传输,这种系统称为数字基带系统。而具有调制解调过程的数字系统称为数字带通传输系统。在第七章中,将列举数字带通传输系统仿真的例子,在本章中,我们重点讨论数字基带常用码型的产生,即数字基带信号的产生。教材中,我们以单极性不归零码和单极性不归零码的实现作为参考。 单极性不归零码MATLAB程序如下:

function y=snrz(x)

% 本函数实现输入二进制码,输出编号的单极性非归零码 % 输入x为二进制码,输出y为单极性非归零码

num=200; % 单极性非归零码每一个码元包含的点 t=0:1/num:length(x); for i=1:length(x); if x(i)==1;

for j=1:num;

y((i-1)*num+j)=1; % 对应的点赋值为1 end else

for j=1:num;

y((i-1)*num+j)=0; % 对应的点赋值为0 end end end

y=[y,x(i)]; % 为了绘制图形,注意要将y序列加最后一位

plot(t,y); grid on; axis([0 i -0.2 1.2]); title('单极性非归零码 1 0 0 1 0 1'); % 绘图

在MATLAB命令行窗口中键入x的值,并调用函数snrz(x),就可以得到对应的单极性不归零码。如输入以下指令,将出现图1所示的结果。

单极性非归零码 1 0 0 1 0 110.80.60.40.20-0.20123456

图1 单极性不归零码

单极性不归零码MATLAB程序如下:

function y=srz(x)

% 本函数实现输入二进制码,输出编号的单极性归零码 % 输入x为二进制码,输出y为单极性归零码

num=200; % 单极性非归零码每一个码元包含的点 t=0:1/num:length(x); for i=1:length(x); if x(i)==1;

for j=1:num/2;

y((i*2-2)*num/2+j)=1; % 对1而言,前半部分时间值为1 y((i*2-1)*num/2+j)=0; % 对1而言,后半部分时间值为0 end else

for j=1:num;

y((i-1)*num+j)=0; % 对应的点赋值为0 end end end

y=[y,x(i)]; % 为了绘制图形,注意要将y序列加最后一位

plot(t,y); grid on; axis([0 i -0.2 1.2]); title('单极性非归零码 1 0 0 1 0 1');

同上,在MATLAB命令行窗口中键入x的值,并调用函数srz(x),就可以得到对应的单极性归零码。如输入以下指令,将出现图2所示

的结果。

x=[1 0 0 1 0 1]; srz(x);

单极性归零码 1 0 0 1 0 110.80.60.40.20-0.20123456

图2 单极性归零码

借鉴上面两种码型的产生方法,便可以轻松的写出双极性归零码、双极性不归零码、差分码等的程序。

对基带数字调制与解调仿真,在MATLAB通信工具箱中分别提供了函数dmodce和ddemodce来实现,读者可以通过help命令来获取相关信息。下面列举了一个2FSK基带调制解调的仿真示例。

MATLAB程序如下:

% 本程序实现FSK调制解调基带仿真 x=randint(1,1000); % 产生0 1随机序列 fd=10; % 基带信号速率 fs=200; % 采样频率 M=2; % M-FSK tone=20;

snr=-10; % 信噪比

basefsk=dmodce(x,fd,fs,'fsk',M,tone); % 调用dmodce函数进行fsk调制 basefsk_awgn=awgn(basefsk,snr); % 叠加噪声

demod_basefsk=ddemodce(basefsk,fd,fs,'fsk',M,tone); % 未加噪声的已调信号