matlab眼图工具箱,基于MATLAB的QAM 眼图和星座图.docx

基于MATLAB的QAM 眼图和星座图

南昌大学信息工程学院《随机信号分析》课程作业题 目:QAM调制信号的眼图及星座图仿真指导老师:虞贵财作 者:毕圣昭日 期:2011-12-05QAM调制信号的眼图及星座图仿真1. 眼图眼图是在数字通信的工程实践中测试数字传输信道质量的一种应用广泛、简单易行的方法。实际上它的一个扫描周期是数据码元宽度1~2倍并且与之同步的示波器。对于二进制码元,显然1和0的差别越大,接受判别时错判的可能性就越小。由于传输过程中受到频带限制,噪声的叠加使得1和0的差别变小。在接收机的判决点,将“1”和“0”的差别用眼图上“眼睛”张开的大小来表示,十分形象、直观和实用。MATLAB工具箱中有显示眼图和星座图的仪器,下面通过具体的例子说明它们的应用。图1-1所示是MATLAB Toolbox\Commblks中的部分内容,展示了四进制随机数据通过基带QPSK调制、升余弦滤波(插补)及加性高斯白噪声传输环境后信号的眼图。图1-1 通过QPSK基带调制升余弦滤波及噪声环境后观察眼图的仿真实验系统图1-2所示是仿真运行后的两幅眼图,上图是I(同相)信号,下图是Q(正交)信号。图1-2 通过QPSK基带调制及噪声传输环境后观察到的眼图2. 星座图星座图是多元调制技术应用中的一种重要的测量方法。它可以在信号空间展示信号所在的位置,为系统的传输特性分析提供直观的、具体的显示结果。为了是系统的功率利用率、频带利用率得到充分的利用,在特定的调制方式下,在信号空间中如何排列与分布信号?在传输过程中叠加上噪声以后,信号之间的最小距离是否能保证既定的误码率的要求这些问题的研究用星座图仪十分直观方便。多元调制都可以分解为In-phase(同相)分量及Quadrature(正交)分量。将同相分量用我们习惯的二维空间的X轴表示,正交分量用Y轴表示。信号在X-Y平面(同相-正交平面)的位置就是星座图。 MATLAB通信系统的工具箱里有着使用方便、界面美观的星座图仪。图1-3所示是随机数据通过基带QAM调制及噪声环境传输后,观察星座图的仿真系统。图1-3 通过基带QAM调制及噪声环境传输后观察星座图的仿真系统图1-4所示是运行仿真后的星座图图1-4 通过基带QAM调制及噪声环境传输后观察到的星座图3. 用MATLAB程序实现QAM的眼图和星座图MATLAB通信工具箱中提供了眼图显示函数“eyediagram”。其调用格式为eyediagram(x,n,period,offset,plotstring);其中:x是输入信号序列;n是每一波形轨迹的样值数;period是作图的时间范围刻度,在-period/2 到period/2之间;offset是偏移量,在0~n-1之间;plotstring是作图线型选项。MATLAB中观察多元数字调制输出的星座图可用指令“scatterplot”。其调用格式为scatterplot(x,n,offset,plotstring,h);下面用程序实现QAM的I路、Q路眼图及星座图,程序如下:%QAM的眼图和星座图实现M=16;Fd=1;Fs=10; %定义M元数和采样率Pd=100; %计算的轨迹数msg_d=randint(Pd,1,M); %产生在(0,M-1)范围内的随机整数%使用矩形星座图的QASK调制msg_a=modmap(msg_d,Fd,Fd,'qask',M);%假定信道等价于升余弦滤波器delay=3; %升余弦滤波器的延时rcv=rcosflt(msg_a,Fd,Fs,'fir/normal',0.5,delay); %通过滤波器%去掉升余弦滤波器的暂时响应部分的数据propdelay=delay.*Fs/Fd+1; %滤波器的适合的时延rcv1=rcv(propdelay:end-(propdelay-1),:);N=Fs/Fd;%作出接收信号的眼图和星座图(无噪声无串扰)offset1=0;h1=eyediagram(rcv1,N,1/Fd,offset1);h2=scatterplot(rcv1,N,0,'bx');rcv2=rcv1+0.1*randn(size(rcv1)); %接受QASK信号加高斯噪声%作出接收信号的眼图和星座图(加入噪声的情况)h3=eyediagram(rcv2,N,1/Fd,offset1);h4=scatterplot(rcv2,N,

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在MATLAB中绘制16QAM、32QAM和64QAM眼图的示例代码: ```matlab M = [16, 32, 64]; % 星座图中符号的数量 Fs = 100; % 采样率 n = 1000; % 信号长度 samples_per_symbol = 4; % 每个符号的采样点数 offset = samples_per_symbol/2; for i = 1:length(M) % 生成星座图 constellation = qammod(0:M(i)-1, M(i)); % 生成数字信号 data = randi([0 M(i)-1], n, 1); % 生成调制信号 tx_signal = qammod(data, M(i), 'gray', 'InputType', 'bit'); % 仿真信道 h = [0.9 0.2 0.1]; rx_signal = filter(h, 1, tx_signal); % 采样并绘制眼图 s = upsample(rx_signal, samples_per_symbol); r = conv(s, ones(samples_per_symbol, 1)); r = r(offset+1:end-offset); eyediagram(r, 2*samples_per_symbol); title(sprintf('%dQAM Eye Diagram', M(i))); pause(1); end ``` 在这个例子中,我们使用了一个循环来绘制16QAM、32QAM和64QAM眼图。对于每个星座图,我们首先生成了一个星座图,并随机生成了一个数字信号。然后,我们使用`qammod`函数将数字信号调制成星座图中的符号,并通过一个仿真信道进行传输。最后,我们将接收到的信号进行采样,并使用`eyediagram`函数绘制眼图。 尽管这些星座图的大小和形状有所不同,但绘制它们的眼图的方法都是相同的。我们首先将接收到的信号进行上采样,并使用`conv`函数将其通过一个移动平均滤波器进行平滑处理。接着,我们使用`offset`变量来将信号向右移动半个符号,以保证每个符号的中心落在眼图的中央。 运行这段代码将依次生成16QAM、32QAM和64QAM眼图,帮助你分析和理解接收到的信号质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值