matlab中OFDM循环前缀怎么加?

问题描述:

matlab中OFDM循环前缀怎么加?
我看循环前缀的定义是每个OFDM符号之前加,那么比如我子载波数为200,每个子载波上12个符号,那么IFFT之后得到的是一个2400的行矩阵,这2400个符号都在里面,怎么给每个符号加循环前缀?
我们要求200个子载波,16QAM映射,做256点IFFT,那么我一共要输入多少数据?我在网上看到的是假设每个子载波12个符号,那么一共要输入200*12*4=9600个数据(0或1),但是我看同学的输入的数据点数是200*256,做16QAM映射之后填充0,做256点IFFT,他好像没考虑每个子载波上的符号数以及16QAM中每四位表示一个符号,这两种哪种是对的?
1个回答 分类:综合 2014-10-23

问题解答:

我来补答
按照符号加的话 ,根据FFT/IFFT 原理 ,你每个符号的时域数据是200个点 ,

CP 是保证在有时延迟的情况下,可以取到完整的符号周期,所以就是把这200个点的后面N点放在前面就行.

举个例子, 如果第N个符号200个点, 时延是10个点,没有CP的话,你取这个符号的200个的数据,将会取到上个符号(N-1)的10个点和 自己的190个点, 如果有CP 10个点,就是把自己最后的10个点 放在前面复制了一份, 那你将取到了自己完整周期的200个点.
再问: 我们要求200个子载波,16QAM映射,做256点IFFT,那么我一共要输入多少数据?我在网上看到的是假设每个子载波12个符号,那么一共要输入200*12*4=9600个数据(0或1),但是我看同学的输入的数据点数是200*256,做16QAM映射之后填充0,做256点IFFT,他好像没考虑每个子载波上的符号数以及16QAM中每四位表示一个符号,这两种哪种是对的? 非常感谢你的帮助~~~
再答: 我的理解是这样的 首先你200个子载波数据要做256点的IFFT 。可以在频域的两端插入56/2 个空载波,作为GP ,就是频域的隔离带,可以防止不同带宽的冲突。频域补零,相对时域是平滑,不影响你的时域实际的图形。 这样你每一个符号就有了256个点来 IFFT。 你需要的数据也就是200*12*4, 映射到频域子载波上则是256*12子载波,其中频域两端 的各28个空的,IFFT 后的时域点数为 256*12 ,然后 你需要将 单个256个符号的最后几个点复制到CP上你的数据长度为 (256+CP)*12 这个是最终的结果。如果有时域数据长度的限制,可以在时域使用降采样。 另外 如果是出的题 ,有标准答案了,记得贴上让大家看看 。。。。。
 
 
展开全文阅读
剩余:2000
上一页:合外力做功,