学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 R 设计 □ 创新 实验日期: 实验成绩:
实验名称
实验八 16QAM调制解调信道分析
二实验目
(1) 掌握QAM解调原理特性
(2) 解星座图原理途
(3) 分析高斯瑞利莱斯信道
三实验容
(1) 设计16QAM调制解调算法
(2) 较GMSK16QAM高斯莱斯瑞利信道条件误码性
(3) 撰写实验报告
四实验原理
正交振幅调制两独立基带数字信号两相互正交频载波进行抑制载波双边带调制利种已调信号带宽频谱正交性质实现两路行数字信息传输
正交振幅调制信号般表示式
16QAM指包含16种符号QAM调制方式产生框图图1
图 1 16QAM调制
相干解调原理图2
图 2 16QAM解调
五实验步骤
(1) 16QAM调制解调算法
先产生需二进制基带信号:
产生机二进制数流
M 16 信号星座尺寸
k log2(M) 符号特数
n 30000 处理特数目
numSamplesPerSymbol 1 采样子
创建二进制数流作列量
rng default 缺省机数发生器
dataIn randi([0 1]n1) 产生二进制矢量数
二进制信号转整数值信号
dataInMatrix reshape(dataInlength(dataIn)kk)数整形成二进制4元组
dataSymbolsIn bi2de(dataInMatrix) 转换整数
MATLAB函数qammod()进行QAM调制
16QAM调制
dataMod qammod(dataSymbolsIn'M'bin') 二进制编码相位偏移=0
scatterplot(dataMod)
title('未加噪声星座图')
axis([4 4 4 4])
信号中加入噪声
添加高斯白噪声
EbNo 10 信道SNR计算EBN010dB
snr EbNo + 10*log10(k) 10*log10(numSamplesPerSymbol)
信号通AWGN信道
rxSignal awgn(dataModsnr'measured')
显示星座图
scatterplot功展示星座图
sPlotFig scatterplot(rxSignal 10'g')
hold on
scatterplot(dataMod10'k*'sPlotFig)
title('加噪声星座图')
MATLAB函数qamdemod ()进行QAM解调
16QAM解调
dataSymbolsOut qamdemod(rxSignal M'bin')
整数值信号转二进制信号
dataOutMatrix de2bi(dataSymbolsOutk)
dataOut dataOutMatrix() 返回数列矢量
计算解调误码率
计算系统误码率(BER)
[numErrorsber] biterr(dataIndataOut)
fprintf('\nThe binary coding bit error rate 52e based on d errors\n'
bernumErrors)
运行效果图3
图 3 运行效果图
(2) QAM高斯莱斯瑞利信道条件误码性
思路:先产生16QAM信号然先通高斯信道引入噪声送入莱斯瑞利信道输出通定信噪画出误码率曲线效果结果图4示代码见附录1
图 4 16QAM信道误码率
中信道模型通Y FILTER(CHAN X)模拟信道Chanon信号X影响
A.高斯信道:AWGN:某信号中加入高斯白噪声
y awgn(xSNR) 信号x中加入高斯白噪声信噪SNRdB单位x强度假定0dBW果x复数加入复噪声
y awgn(xSNRSIGPOWER) 果SIGPOWER数值代表dBW单位信号强度果SIGPOWER'measured'函数加入噪声前测定信号强度
y awgn(xSNRSIGPOWERSTATE) 重置RANDN状态
y awgn(…POWERTYPE) 指定SNRSIGPOWER单位POWERTYPE'dB''linear'果POWERTYPE'dB'SNRdB单位SIGPOWERdBW单位果POWERTYPE'linear'SNR作值度量SIGPOWER瓦特单位
B.瑞利信道:RAYLEIGHCHAN(TS FD TAU PDB)
TS—输入信号采样周期
FD—Doppler频偏Hz单位速率换算关系v×fccfc载频
TAU—输入信道参数量包含径延时s单位
PDB—输入信道参数量包含径功率(然均值啦实际产生量均值机量)dB单位
C.莱斯信道:RICIANCHAN(TS FD K)
TS—输入信号采样时间秒单位
FD—普勒频移赫兹
K—线性尺度Rice K子
(3) GMSK高斯莱斯瑞利信道条件误码性
思路:先产生GMSK信号然先通高斯信道引入噪声送入莱斯瑞利信道输出通定信噪画出误码率曲线效果结果图5示代码见附录2
图 5 GMSK信道误码率
次程序设计信道模型MATLAB带模型类
A. GMSK生成器:
commGMSKModulator(BitInputPulseLength SamplesPerSymbol)
▷ BitInput—指定否输入特整数默认false
falsestep方法求输入带符号整数双精度型数值11列量
truestep方法求输入带符号整数双精度型数值01列量
▷ PulseLength—脉长度默认4
指定长度高斯脉形状符号间隔作实正整数GMSK4
▷ SamplesPerSymbol—输出符号样数目默认8
指定采样系数输出实数正数标量整数值采样系数数目step方法产生输入样输出采样
B. 高斯信道生成器:
commAWGNChannel('NoiseMethod''SNR')
▷ NoiseMethod—噪声方法
'Signal to noise ratio (EbNo)''Signal to noise ratio (EsNo)''Signal to noise ratio (SNR)'者'Variance'
▷ SNR—信号功率噪声功率分贝值
C. 莱斯信道生成器:
commRicianChannel(
'SampleRate'1e6
'KFactor'28
'MaximumDopplerShift'50
'DopplerSpectrum'doppler('Bell' 8)
'RandomStream''mt19937ar with seed'
'Seed'73
'PathGainsOutputPort'true)
▷ SampleRate—输入信号取样速率(Hz) 属性默认值1Hz
▷ KFactor—RicianK子(标量矢量线性尺度)该位默认值3
果KFactor标量第离散路径具Kras系数Rice k子莱斯衰落程剩离散路径独立瑞利衰落程果KFactor行量应K子量正元素离散路径具该元素指定瑞斯K子莱斯衰落程K子量零值元素相应离散路径瑞利衰落程
▷ MaximumDopplerShift—普勒频移(赫兹)属性默认值0001赫兹
普勒频移适信道路径值DoppReSHIFT设置0时通道整输入保持静态RESET方法生成新通道实现
▷ DopplerSpectrum—普勒频谱
指定述普勒频谱形状(路径)信道
▷ RandomStream—机数流源属性默认值Global stream
机数流源指定Global stream| mt19937ar种子
▷ Seed—初始种子mt19937ar机数流默认值73
▷ PathGainsOutputPort—输出信道路径增益属性默认值FALSE
属性设置true输出通道路径增益衰落程基础
E. 瑞利信道生成器:
commRayleighChannel(
'SampleRate'1e6
'MaximumDopplerShift'30
'DopplerSpectrum'doppler('Bell' 8)
'RandomStream''mt19937ar with seed'
'Seed'73
'PathGainsOutputPort'true)
▷ 属性莱斯信道相
六思考体会
通次实验信道模型定解通误码率曲线图直观信道信号影响学提供形象解释
附录1
QAM
M 16 信号星座尺寸
k log2(M) 符号特数
n 30000 处理特数目
numSamplesPerSymbol 1 采样子
创建二进制数流作列量
rng default 缺省机数发生器
dataIn randi([0 1]n1) 产生二进制矢量数
dataMod qam_mod(dataIn) 数调制
for N 5020
高斯
添加高斯白噪声
snr N
信号通AWGN信道
rxSignal_Gauss awgn(dataModsnr'measured') 信噪dB单位
16QAM解调
dataOut_Gauss qam_demod(rxSignal_Gauss)
计算系统误码率(BER)
[numErrors ber] biterr(dataIndataOut_Gauss)
fprintf('\nThe binary coding bit error rate 52e based on d errors\n'bernumErrors)
plot(snrber'r^')
hold on
瑞利
获瑞利信道函数
Rayleigh_chan rayleighchan(110000100) 采样频率110000普勒频移100
信号通Rayleigh信道
rxSignal_Rayleigh filter(Rayleigh_chan rxSignal_Gauss)
16QAM解调
dataOut_Rayleigh qam_demod(rxSignal_Rayleigh)
计算系统误码率(BER)
[numErrors ber] biterr(dataIndataOut_Rayleigh)
fprintf('\nThe binary coding bit error rate 52e based on d errors\n'bernumErrors)
plot(snrber'g*')
hold on
莱斯
获莱斯信道函数
Rician_chan ricianchan(1100001001)
信号通Rician信道
rxSignal_Rician filter(Rician_chan rxSignal_Gauss)
16QAM解调
dataOut_Rician qam_demod(rxSignal_Rician)
计算系统误码率(BER)
[numErrors ber] biterr(dataIndataOut_Rician)
fprintf('\nThe binary coding bit error rate 52e based on d errors\n'bernumErrors)
plot(snrber'b')
hold on
end
xlabel('信噪SNR')ylabel('误码率BER')
legend('高斯''瑞利''莱斯 K5dB''Location''NorthEastOutside')
title('16QAM 误码率 SXF')
hold off
scatterplot(dataMod)
title('16QAM 调制信号星座图 SXF')
axis([4 4 4 4])
附录2
GMSK
n 300 处理特数目
sps 8 符号采样
创建二进制数流作列量
rng default 缺省机数发生器
dataIn randi([0 1]n1) 产生二进制矢量数
创建GMSK调制器
gmskMod commGMSKModulator('BitInput'true'PulseLength'4 'SamplesPerSymbol'sps)
创建GMSK解调器
gmskDeMod commGMSKDemodulator('BitOutput'true'PulseLength'4 'SamplesPerSymbol'sps)
数调制
modSigGMSK step(gmskMod dataIn)
误码率器
hError commErrorRate('ReceiveDelay' gmskDeModTracebackDepth)
for N5020
高斯
snr N
创建高斯信道器
hAWGN commAWGNChannel('NoiseMethod''Signal to noise ratio (SNR)''SNR'snr)
信号通AWGN信道
rxSignal_Gauss step(hAWGN modSigGMSK)
GMSK解调
dataOut_Gauss step(gmskDeMod rxSignal_Gauss)
计算系统误码率(BER)
errorStats step(hError dataIn dataOut_Gauss)
fprintf('Error rate f\nNumber of errors d\n'errorStats(1) errorStats(2))
figure(3)
plot(snrerrorStats(1)'r^')
hold on
瑞利
RayleighChan commRayleighChannel(
'SampleRate'1e6
'MaximumDopplerShift'30
'DopplerSpectrum'doppler('Bell' 8)
'RandomStream''mt19937ar with seed'
'Seed'73
'PathGainsOutputPort'true)
信号通瑞利信道
[rxSignal_Rayleigh PathGains1] step(RayleighChanrxSignal_Gauss) 通AWGN信道信号通瑞利信道 modSigGMSK
GMSK解调
dataOut_Rayleigh step(gmskDeMod rxSignal_Rayleigh)
计算系统误码率(BER)
errorStats step(hError dataIn dataOut_Rayleigh)
fprintf('Error rate f\nNumber of errors d\n' errorStats(1) errorStats(2))
plot(snrerrorStats(1)'b')
hold on
莱斯
ricianChan commRicianChannel(
'SampleRate'1e6
'KFactor'28
'MaximumDopplerShift'50
'DopplerSpectrum'doppler('Bell' 8)
'RandomStream''mt19937ar with seed'
'Seed'73
'PathGainsOutputPort'true)
信号通莱斯信道
[rxSignal_Rician RicianPathGains1] step(ricianChanrxSignal_Gauss) 通AWGN信道信号通莱斯信道 modSigGMSK
GMSK解调
dataOut_Gauss step(gmskDeMod rxSignal_Rician)
计算系统误码率(BER)
errorStats step(hError dataIn dataOut_Gauss)
fprintf('Error rate f\nNumber of errors d\n' errorStats(1) errorStats(2))
plot(snrerrorStats(1)'g*')
hold on
end
xlabel('信噪SNR')ylabel('误码率BER')
legend('高斯''瑞利''莱斯 K5dB''Location''NorthEastOutside')
title('GMSK 误码率 SXF')
南昌学
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档