《数字基带传输常用码型的MATLAB表示5页》由会员分享,可在线阅读,更多相关《数字基带传输常用码型的MATLAB表示5页(5页珍藏版)》请在金锄头文库上搜索。
1、数字基带传输常用码型的MATLAB表示 在某些具有低通特性的有线信道中,特别是传输距离较近的情况下,数字基带信号不经调制可以直接传输,这种系统称为数字基带系统。而具有调制解调过程的数字系统称为数字带通传输系统。在第七章中,将列举数字带通传输系统仿真的例子,在本章中,我们重点讨论数字基带常用码型的产生,即数字基带信号的产生。教材中,我们以单极性不归零码和单极性不归零码的实现作为参考。单极性不归零码MATLAB程序如下:function y=snrz(x) % 本函数实现输入二进制码,输出编号的单极性非归零码% 输入x为二进制码,输出y为单极性非归零码num=200; % 单极性非归零码每一个码元
2、包含的点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 endendy=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),就可以得到对应的单极
3、性不归零码。如输入以下指令,将出现图1所示的结果。图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=
4、1:num; y(i-1)*num+j)=0; % 对应的点赋值为0 end endendy=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);图2 单极性归零码 借鉴上面两种码型的产生方法,便可以轻松的写出双极性归零码、双极性不归零码、差分码等的程序。对基带数字调制与解调仿真,
5、在MATLAB通信工具箱中分别提供了函数dmodce和ddemodce来实现,读者可以通过help命令来获取相关信息。下面列举了一个2FSK基带调制解调的仿真示例。 MATLAB程序如下:% 本程序实现FSK调制解调基带仿真x=randint(1,1000); % 产生0 1随机序列fd=10; % 基带信号速率 fs=200; % 采样频率 M=2; % M-FSKtone=20;snr=-10; % 信噪比basefsk=dmodce(x,fd,fs,fsk,M,tone); % 调用dmodce函数进行fsk调制basefsk_awgn=awgn(basefsk,snr); % 叠加噪声
6、demod_basefsk=ddemodce(basefsk,fd,fs,fsk,M,tone); % 未加噪声的已调信号demod_basefsk_awgn=ddemodce(basefsk_awgn,fd,fs,fsk,M,tone); % 加噪声后的已调信号m=1:length(x);figure(1);subplot(3,1,1);stairs(m,x); axis(1 length(x) -0.5 1.5);title(基带信号波形); % 绘制基带信号subplot(3,1,2);stairs(m,demod_basefsk);axis(1 length(x) -0.5 1.5);
7、title(未加噪声的已调信号波形);subplot(3,1,3);stairs(m,demod_basefsk_awgn);axis(1 length(x) -0.5 1.5);title(加噪声后的已调信号波形);disp(通过理想信道时,误码数及误码率为:);n_error,err_rate=symerr(x,demod_basefsk)disp(通过非理想信道时,误码数及误码率为:);n_error1,err_rate1=symerr(x,demod_basefsk_awgn) 运行程序,可以得到2FSK基带信号、解调信号如图3。如果Num的值设为1000,snr的值设为-10 dB,运行程序在MATLAB命令行窗口,可得到理想信道以及非理想信道2FSK解调产生的误码数及误码率如下。如果改变snr的值,会发现snr的值越大,误码数及误码率会越小,即噪声对信号的影响会越小。通过理想信道时,误码数及误码率为:n_error = 0err_rate = 0通过非理想信道时,误码数及误码率为:n_error1 = 78err_rate1 = 0.0780图3 2FSK基带信号及解调信号波形