请问matlab里fft的问题
12-16
我试了一下
输入128位的复值序列data_in
data_out=ifft(data_in,128)
然后
data_chk=fft(data_out,128)
但是data_chk并不等于data_in
这是怎么回事?
输入128位的复值序列data_in
data_out=ifft(data_in,128)
然后
data_chk=fft(data_out,128)
但是data_chk并不等于data_in
这是怎么回事?
fft等于加窗,是输入信号谱与窗函数的卷积,窗不可能完全理想,因此结果存在误差,用这个结果做逆变换是不会得到原始值的...
那OFDM收发端如何通过IFFT和FFT实现恢复?
另外你说信号谱与窗函数卷积,不是很明白
难道不是信号本身直接与窗卷积?
我这边结果是一样的,当然abs(data_in-data_chk)存在1e-16量级的误差了。
你做出来结果完全一样?还是说有误差?
能具体说一下么,谢谢
我要做OFDM收发机
但是现在基本的IFFT和FFT对联输入输出结果都不一致啊
今天又试了试,是不是因为当序列为某些值得时候,计算结果会有精度误差
因此fft 和ifft的计算中不能完全恢复原始序列
如果给序列值加上round是不是就好了?
或者不用管,ifft----fft之后恢复的序列虽然有误差
但是很小,再解映射的时候不会影响对bit序列的恢复
不理会就行?
matlab很奇怪
A+jB 和(A+m*e-16)+j(B+n*e-16)
竟然不是很小的-16方级别的数
而显示的是一个4位有效数字没有e-16的一个复数……
再也不敢把x---ifft----fft---y这样的x和y直接相减看差别了……
哦,原来相减的结果最前面统一乘了一个e-16量级的因子……
怎么解决这个问题呢?
x和y在windows里显示的有效数字都一样,但是一减却不为0
或者这一点影响对OFDM的恢复没有影响?
这种精度误差对OFDM解调性能应该是没影响的。 -- 个人经验。
因为我也是在matlab里直接用fft,似乎没有觉察到过对性能的影响。
非常感谢!
只要不影响接收机的检测判断就好~
相关文章:
- 请问有没有简单的用matlab进行波束形成仿真的程序(05-08)
- 那位高手指点一下OFDM的基本仿真,用MATLAB,谢谢了(05-08)
- 请问有关多用户检测的仿真用matlab行不?(05-08)
- Re: Matlab程序请教:convenc和vitdec!(05-08)
- 请问:在matlab里如何实现删余卷积码的译码?(05-08)
- 急!MATLAB中的./在SIMULINK模块中用什么实现?(05-08)
射频专业培训教程推荐