主要内容

调制和脉冲整形滤波的例子

矩形脉冲整形

矩形脉冲形成重复每一个调制器的输出一个固定的次数来创建一个upsampled信号。虽然不如其他种类的脉冲整形,现实的矩形脉冲整形可以是一个或一个探索性步骤算法发展的第一步。如果发射机upsamples调制信号,接收机解调之前应该downsample接收信号。这段代码使用rectpulse函数在发射机和矩形脉冲整形intdump函数将采样接收机。集成和转储操作downsample接收到的信号的一种方法。

定义模拟变量和创建一个随机数字信息。

M = 16;%字母大小,16-QAMNsamp = 4;%过采样率信噪比= 15;在dB %信号噪声比x =兰迪([0 m - 1], 5000 1);%的消息信号

应用16-QAM调制和矩形脉冲整形。通过一个AWGN信道传输的信号。

y = qammod (x, M);ypulse = rectpulse (y, Nsamp);ynoisy = awgn (ypulse 15“测量”);

Downsample接收机。使用一个简介比较脉冲状传播信号之前和之后的情况。

ydownsamp = intdump (ynoisy Nsamp);sa1 =简介(Title =“与矩形脉冲整形16-QAM信号”,ChannelNames = {没有噪音的,“信噪比= 15分贝”});sa1 (ypulse ynoisy)

解调恢复消息。

z = qamdemod (ydownsamp, M);

使用提出了余弦滤波器脉冲整形

使用一对平方根过滤16-QAM信号提出了余弦匹配过滤器。情节的眼图和散点图的信号。后通过AWGN信道传递信号,计算有点错误的数量。

设置仿真参数。

M = 16;%调制顺序个基点= log2 (M);%比特/符号n = 20000;%传输比特sps = 4;每个符号%样本EbNo = 10;% Eb /不(dB)

设置滤波器参数。

跨度= 10;%过滤器跨符号滚边= 0.25;%滚边的因素

创建了余弦传输和接收过滤器使用前面定义的参数。

txfilter = comm.RaisedCosineTransmitFilter (RolloffFactor =滚边,FilterSpanInSymbols =跨度,OutputSamplesPerSymbol = sps);rxfilter = comm.RaisedCosineReceiveFilter (RolloffFactor =滚边,FilterSpanInSymbols =跨度,InputSamplesPerSymbol = sps,DecimationFactor = sps);

情节提出了余弦发送滤波器的脉冲响应对象txFilter

fvtool (txfilter分析=“冲动”)

图图1:脉冲响应包含一个坐标轴对象。坐标轴对象脉冲响应与标题,包含样本,ylabel振幅包含一个干细胞类型的对象。

通过匹配滤波器计算延迟。滤波器的群时延是半跨通过一个过滤器,因此,等于过滤器的过滤跨度。乘以每个符号的比特数的延迟。

filtDelay = bps *跨度;

创建一个错误率计数器系统对象™。设置ReceiveDelay房地产占延迟通过匹配过滤器。

errorRate = comm.ErrorRate (ReceiveDelay = filtDelay);

生成二进制数据。

x =兰迪([0,1],n, 1);

调整数据。

modSig = qammod (x, M, InputType =“一点”);

筛选调制信号。

txSig = txfilter (modSig);

情节的眼图第一个1000个样本。

eyediagram (txSig (1:1000), sps)

图眼图包含2轴对象。坐标轴对象1标题为同步信号眼图,包含时间,ylabel振幅包含一个类型的对象。该对象代表同相。坐标轴对象2标题为正交信号眼图,包含时间,ylabel振幅包含一个类型的对象。这个对象表示正交。

计算信噪比(信噪比)的数据库EbNo。通过传播信号通过AWGN信道使用情况下函数。

信噪比= EbNo + 10 * log10 (bps) - 10 * log10 (sps);noisySig = awgn (txSig,信噪比,“测量”);

过滤噪声信号,显示其散点图。

rxSig = rxfilter (noisySig);散点图(rxSig)

图散点图包含一个坐标轴对象。坐标轴对象标题散点图,包含同相,ylabel正交包含一行对象显示它的值只使用标记。这个对象表示通道1。

过滤信号解调和计算误差的统计数据。延迟通过过滤器所占ReceiveDelay财产errorRate

z = qamdemod (rxSig, M, OutputType =“一点”);errStat = errorRate (x, z);流(' \ nBER = % 5.2 e \ nBit错误= % d \ nBits传播= % d \ n ',errStat)
数量= 1.85 = 37位传播= 19960 e 03一点错误

相关的话题