登录论坛

查看完整版本 : [原创]CDMA多用户检测的Simulink仿真研究


yesman
2007-05-16, 21:47
实用的第三代移动通信系统(3G)已经走入我们的生活。多用户检测技术作为TD-SCDMA、cdma2000、WCDMA的增强性技术之一,愈来愈受到学术界、产业界的重视。本课题要求在深入剖析CDMA多用户检测理论的基础上,基于Simulink平台,实现基本的多用户检测算法的仿真研究。

我已做完,共享出来,欢迎大家多提提意见!
Matlab程序包括3个文件:mseries.m编写了一个产生m序列的函数;mud.m用来比较传统单用户检测、线性解相关多用户检测、最小均方误差多用户检测的误码率;mud_plot比较后并画出误码率-信噪比曲线。
Simulink模型包括2个文件:mud.mdl为模型文件;sfun_userinfo.m为一个s-function,用来产生用户信息。仿真时两个要放到同一目录下,注意Matlab中的Current Directory中也要选到这个目录。

其实自己这个毕设做的很粗糙,都不好意思贴出来,刚开始做的时候不知道从何下手,特别是如何用simulink仿真,憋了一两个月都没做出来,后来眼看着时间就要到了,有一天急得在电脑前坐了整整一个下午,记得那一天是星期六,直到晚上2点才睡,功夫不负有心人,终于调出结果了!思路其实很简单,看到大家还有些疑问,因此这次把我毕业论文中的部分内容贴出来,就算个说明吧,做的很简单,见笑了。若哪位高人有更好的想法,可以进一步交流。

以下是论文的部分内容:

4.2 仿真模型的建立
本文利用Simulink平台,模拟了一个小区内十个用户的码元发送,扩频,接收,解扩,判决的CDMA通信基本过程,仿真基本流程如图4-1所示:

图4-1 Simulink仿真基本流程
在每一个仿真步长(1秒)内,每个用户发送一个信息码元,10个用户则对应发送10个用户信息码元,然后用10个P=31的m序列分别对这10个用户的信息码元进行扩频(相乘)处理,然后合路相加并加入高斯白噪声。在接收端用和发送端相同的10个m序列分别对信息码元进行解扩(相乘)处理,最后进行积分,判决,完成了对这10个用户的信息码元的恢复,即对于这10个用户中的每一个用户,一个仿真步长(1秒)内完成了一个信息码元的恢复,若要发送5000个码元,仿真时间设置为5000秒即可,这是传统单用户检测的情况。对于线性解相关多用户检测和最小均方误差多用户检测,只需在传统单用户检测输出的基础上乘以相应算法的线性算子即可,如线性解相关多用户检测的线性算子 ,最小均方误差多用户检测的线性算子 。最后,分别计算这三种检测方法的误码率,比较它们的性能。
下面详细介绍一下仿真模型中各个主要的模块:
(1)用户信号生成模块
用户信号生成模块是利用S-函数编写了一个自定义模块,它的功能是生成随机±1序列,在S-函数的主程序中调用mdlInitializeSizes例程进行初始化,设sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=0;sizes.DirFeedthrough=0;sizes.NumSampleTimes=1;x0=[];ts=[1 0];调用mdlOutputs例程进行输出,sys=2*randint-1即可生成随机±1序列。紧跟在用户信号生成模块之后,是一个gain模块,设置相应的增益参数即可对各个用户的功率进行控制。
(2) m序列发生器模块
运用Embedded MATLAB Function block编写了一个m序列发生器模块,模块有一个输入,一个输出,输入为对应的5级左移移位寄存器的反馈系数,输出为一个P=31的m序列。
(3)信号合路用了一个Add模块,加入一个Random Number模块,生成均值是0,方差为1的高斯正态分布随机信号做为噪声。
(4)积分判决
由于解扩后的输出后的信号是一个离散量,因此用一个求均值功能的模块,相当于在连续域的时间上求积分平均,判决输出用sign模块完成。
(5)解相关多用户检测和最小均方误差多用户检测的线性算子用自定义模块或和其它一些模块组合完成,如图4-2所示。

(a)解相关检测器线性算子

(b)最小均方误差检测器线性算子
图4-2 线性算子模块
(6)误码率求解模块直接运用Error Rate Calculation模块。

第五章 仿真测试报告
本章中给出了仿真测试报告,5.1节中用编写好的MATLAB程序给出仿真结果,分析比较了传统单用户检测、线性解相关多用户检测和最小均方误差多用检测之间的误码率性能;5.2节中根据编写好的Simulink仿真模型,设置好相应的仿真参数,对比了这几种不同检测方法的误码率,以达到分析它们之间性能差异的目的。
5.1 MATLAB仿真
5.1.1测试传码5000个情况下10个用户的误码率
mud.m是一个比较传统单用户检测,线性解相关多用户检测,最小均方误差多用户检测之间的误码率性能的程序,运行本程序首先出现一个对话框,等待输入相应的仿真参数,如图5-1所示:

图5-1 仿真界面
其中第一行为用户数,第二行为用户信息码元个数,第三行为各个用户对应的信号功率,第四行为噪声功率,第五行为要观察的用户,默认值如图中所示。
设置用户信号功率依次为1,2,3,4,5,6,7,8,9,10是由于用户距离基站的远近不同,故信号功率有差别,用此来模拟远近效应。信噪比的计算拿第一个用户作为基准,当噪声功率设置为10时,信噪比s/n=20lg(1/10)=-20dB。第五行设置为1表示要观察第一个用户。
按照默认值点OK后,程序将计算第一个用户的误码率。分别设置要检测的用户为1到10,将得到的数据整理成表格如下:
表5-1三种检测方法的误码率比较(SNR=-20dB)
用户 1 2 3 4 5 6 7 8 9 10
用户功率 1 2 3 4 5 6 7 8 9 10
传统单用户检测BER(%) 29.90 15.16 5.74 2.04 0.08 0.00 0.00 0 0 0
DEC-MUD BER (%) 28.04 14.18 4.96 1.84 0.02 0.02 0.00 0 0 0
MMSE-MUD BER(%) 29.14 14.16 4.94 1.78 0.02 0.02 0.00 0 0 0
5.1.2测试传码100000个情况下各用户误码率
为了更精确的测试这三种检测方法的优劣,以及由于远近效应引起的各用户误码率的变化,我们把用户信息码元长度设为100000,其他参数不变,得到的误码率情况如表5-2所示:
表5-2三种检测方法的误码率比较(信噪比SNR=-20dB)
用户 1 2 3 4 5 6 7 8 9 10
用户功率 1 2 3 4 5 6 7 8 9 10
传统单用户检测BER(%) 30.03 14.64 5.73 1.75 0.42 0.076 0.011 0.001 0 0
DEC-MUD BER(%) 29.24 13.76 5.12 1.42 0.29 0.053 0.006 0 0 0
MMSE-MUD BER(%) 29.17 13.66 5.04 1.42 0.29 0.052 0.006 0 0 0

通过表5-1和表5-2的统计数据,可以发现:
(1)在信噪比一定的条件下,总体上,线性解相关多用户检测要优于传统单用户检测,最小均方误差多用户检测要优于线性解相关多用户检测。
(2)信号功率较大的用户的误码率明显低于信号功率较小的用户。
5.1.3 测试误码率随信噪比变化情况(考虑远近效应)
mud_plot.m是一个比较传统单用户检测,线性解相关多用户检测,最小均方误差多用户检测之间的误码率性能的程序,并做出了误码率-信噪比曲线。程序设置为:传码5000个,保持噪声功率30不变,10个用户初始功率为[1 2 3 4 5 6 7 8 9 10],改变用户的功率值,每次增加用户功率的10%,计算1000次,这样误码率从-30dB到10dB变化,做出三种检测方法误码率随信噪比变换的曲线,如图5-2所示:

图5-2 误码率-信噪比曲线
从图5-2可以看出:
(1)不论是传统单用户检测,线性解相关多用户检测,还是最小均方误差多用户检测,其误码率都随着信噪比的增大而减少。
(2)在相同的信噪比水平下,解相关多用户检测器和最小均方误差多用户检测的性能明显要好于传统多用户检测,由于程序有一定的误差存在,解相关多用户检测和最小均方误差多用户检测两者的误码率性能相仿(实际上后者的性能要稍好于前者)。
5.1.4 测试误码率随信噪比变化情况(去掉远近效应的影响)
若设置mud_plot.m中10个用户初始功率为[1 1 1 1 1 1 1 1 1 1](设置10个用户的功率相同是为了消除远近效应的影响),其他参数不变,做出这三种检测方法误码率随信噪比变换的曲线,如下图所示:

图5-3 误码率-信噪比曲线(无远近效应)
从图5-3可以看出:三条曲线几乎重合,这说明若去掉远近效应的影响,解相关多用户检测和最小均方误差多用户检测的性能接近于传统单用户检测。
5.1.5 测试单用户情况
最后我们再来测试一下单用户的情况,运行mud.m文件,设置用户数为1,传码5000个,用户功率为1,噪声功率为10,需要检测的用户为1。多运行几次程序,从仿真结果可以看出三种检测方法的误码率完全相同,例如其中一次的结果都为29.32%,这说明单用户条件下三种检测方法的性能相同。
5.2 Simulink仿真
根据在4.2节中介绍的仿真模型,设置相应的参数,观察三种检测方法的误码率,分析比较它们的性能。
5.2.1改变噪声功率测试误码率随信噪比变化的情况
设置用户信息功率依次为1 1 1 1 1 1 1 1 1 3,噪声功率从10开始逐渐增大,仿真时间设置为5000秒,观察三种检测方法误码率的变化情况。
图5-4给出了三种检测方法的误码率比较结果, 图(a),(b),(c)表示Pn分别为10,15,20时的三种情况,从上到下依次为传统单用户检测,线性解相关多用户检测,最小均方误差多用户检测。

图5-4 三种检测方法的误码性能比较
通过结果可以看出,三种检测方法的误码率都随着信噪比的逐渐降低而增大,并且可以明显的看出同一个信噪比时,线性解相关多用户检测和最小均方误差多用检测性能要好于传统单用户检测。


对应的word文件(有图):

直流特性
2007-05-22, 13:32
想知道楼主CDMA信号是如何产生的,可否分享下
邮箱是[email protected]
如能帮忙,感激不尽啊

tmaczn
2007-05-31, 15:21
:confused:

yesman
2007-06-12, 19:54
自己顶一下,欢迎大家批评指正

liudingtao
2007-06-15, 15:32
楼主好样的。.

谢谢

chianelxie
2007-06-19, 23:40
谢谢资料共享,已奖励!再接再厉!

chenquan
2007-06-28, 15:35
太贵了,买不起

yesman
2007-06-28, 22:52
太贵了,买不起
已经不贵了啊,我辛苦做了很长时间的,才10个金币,体谅一下吧。

lizk
2007-07-01, 17:59
谢谢楼主!

b01050432
2007-07-13, 09:45
谢谢楼主,我的qq:510555798,可否交流一下呢?

okinawabbs
2007-08-31, 19:00
想知道楼主CDMA信号是如何产生的,可否分享下

yesman
2007-08-31, 23:40
想知道楼主CDMA信号是如何产生的,可否分享下

已经更新!

icecontrol
2008-02-29, 00:09
既然要交流还要购买做什么?现在又不能下载,看不到内容,怎么交流啊?

wbx_123
2008-03-05, 19:36
想知道楼主CDMA信号是如何产生的,可否分享下
邮箱是[email protected]
如能帮忙,感激不尽啊

wbx_123
2008-03-05, 19:38
想知道楼主CDMA信号是如何产生的,可否分享下
邮箱是[email protected]
如能帮忙,感激不尽啊d

soulgrave
2008-03-10, 20:56
楼主好样的。.

谢谢

duoduomao
2008-03-13, 18:35
实用的第三代移动通信系统(3G)已经走入我们的生活。多用户检测技术作为TD-SCDMA、cdma2000、WCDMA的增强性技术之一,愈来愈受到学术界、产业界的重视。本课题要求在深入剖析CDMA多用户检测理论的基础上,基于Simulink平台,实现基本的多用户检测算法的仿真研究。

我已做完,共享...
可惜没有那么多币阿

crc2
2008-03-18, 16:03
我怎么还看不到?

yangbofeng
2008-04-06, 14:36
:cry: 要是我可以下就好了

shyg2003
2008-04-07, 21:16
谢谢楼主啊 。。太感谢了 。。:tongue:

homlee
2008-04-10, 20:44
太感谢lz的无私!!呵呵:smile:

niuchuan
2008-04-13, 14:22
太好了 谢谢

fyqwcm
2008-04-16, 08:46
:rolleyes: xiexie

fyqwcm
2008-04-16, 08:49
:ft: thanks:rolleyes: xiexie

qqtian008
2008-04-24, 21:08
:lol: 谢谢楼主
先收下了
希望有机会交流

qiu.caizhen
2008-04-29, 19:06
我也是做相关题目的,希望有人和我讨论一下
我觉得楼主的仿真图形误码率很大,而且曲线的曲率变化有点问题,不知道产生这样的结果的原因是什么?如何避免这些问题?希望高手指教一下。谢谢

qiu.caizhen
2008-04-29, 19:10
希望能和各位交流一下多用户检测的程序
我的QQ是175711688
邮箱是[email protected]

008yangpeng
2008-05-27, 23:48
请问MMSE的方程正确吗?还有就是你的sigma的值,我有疑问,可以解释下吗?

008yangpeng
2008-05-27, 23:49
MMSE的方程好像有问题。sigma定义有疑问,可否解释下?谢谢!

xinlan369
2008-05-30, 19:22
好东西共享一下很好!顶了!楼主!

没啥意思
2008-05-31, 15:59
:redface: 非常感谢楼主

xypjack
2008-06-04, 08:48
谢谢了,辛苦了

3238137
2008-06-13, 04:00
刚好我需要。谢谢楼主了

3238137
2008-06-13, 18:03
下的PHP文件不知道怎么打开。。楼主能不能把程序和模型发下我油箱啊
[email protected]

litwei
2008-07-18, 23:54
谢谢啊 啊啊啊

xiaoning0228
2008-07-19, 09:36
确实很好啊

my_id
2008-08-26, 20:49
感谢楼主
向您致敬

xiaoxiyu
2008-08-31, 14:36
是不错。怎么不能下第一个呢?

Jeminy
2008-09-03, 11:39
好干净的信道......
看到题目吓我一跳,以为Lz做的是TD或者W系统的联合检测...

stardust
2008-09-06, 16:20
参考一下。。。。

cj095
2008-09-07, 23:57
多谢。。。。。。。。。。。。。多谢

hyneal
2008-12-02, 15:11
:smile: 谢谢楼主

liyuan314219
2008-12-02, 20:46
很不错啊,感谢!

hyneal
2008-12-08, 14:33
:cry: 搂住,好像simulink有问题啊。。。

mingxing66613
2008-12-22, 19:59
太感谢楼主了,我正需要这方面的资料

mingxing66613
2008-12-23, 11:03
模块好像有问题

zhych466
2008-12-27, 09:05
为什么我下了后无法解压!!!!!

gaofei
2009-01-07, 09:15
谢谢,下来看看,

longzhizhe
2009-01-07, 16:35
楼主 可否把详细资料 及思路说一下啊特别是信号产生 我的邮箱 [email protected]

wangwei-banana
2009-02-03, 02:06
谢谢楼主分享,先看看了!:biggrin:

wanderingcat
2009-02-05, 14:59
:cry: 下载不了,没钱钱
好心人,发到我邮箱吧:[email protected]

xyzstar
2009-02-17, 12:59
多谢楼主!

wanderingcat
2009-03-01, 02:15
为什么下载的无法解压啊:cry:

fallchan
2009-03-05, 19:21
向楼主学习!

webzhou
2009-03-06, 08:56
很不错谢谢楼主

silas_xue
2009-03-06, 10:03
二楼 m序列和CDMA信号的联系你不知道么 可以参考一下《移动通信原理》

Thx for reading.

yodasky
2009-03-09, 09:07
我支持你了

大砍刀
2009-03-20, 08:46
:cry: 多谢搂住!
我是解放军通院的。 有缘交个朋友。`

cquwsh
2009-05-20, 22:03
谢谢楼主!谢谢楼主!

yuanbin
2009-07-19, 19:50
楼主写的不错,感谢共享

lifansnow
2009-11-02, 14:07
可以给我发邮箱里吗?下的打不开
[email protected]

gwt&gm
2009-11-02, 15:17
楼主:
1.如果把小区中的用户设置为K>=1,程序应该如何改进?
2.仿真曲线各算法的交点太多,该如何改进?(我成倍加大了运算次数和改变单个用户功率,但是效果不大):)

gwt&gm
2009-11-02, 15:18
接上条:
我的邮箱是[email protected]
希望多交流,谢谢

andyred999
2009-12-12, 23:27
谢谢楼主,感谢,真是太好了

ffgg214
2011-05-17, 09:18
谢谢分享!已奖励!再接再厉!

lyfxdh2011
2011-06-04, 09:25
感谢 很好 谢谢 顶 哈哈

meiguo7758521
2011-09-05, 14:39
不错,顶一下,感谢分享

Norpaul
2017-05-13, 19:27
楼主好人!感激不尽!
对毕设的帮助好大!