博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OFDM仿真
阅读量:4874 次
发布时间:2019-06-11

本文共 972 字,大约阅读时间需要 3 分钟。

理论懒得推了,直接上代码吧。图也不上了,自己去画吧。

close all%% generate data source and map them to qpsk symbolsN = 512; M = 4; src = randi([1, M], N,1); qpsk_set = [1+1i -1+1i -1-1i 1-1i]'; src_sym =  qpsk_set(src); %% ifft and add cpcp_len = 32; src_mod = ifft(src_sym); src_mod = src_mod / max(abs(src_mod)); src_wave = [src_mod(end-cp_len+1:end); src_mod]; % add cp%% transmit sig through channel (isi and noise)h = [0.9 0.4 0.1]'; rx_wave = conv(src_wave, h); noise = randn(size(rx_wave)) / 1e15;rx_wave = rx_wave + noise; %% remove cp and fft sample_start = cp_len; rx_2fft = rx_wave(sample_start + 1:sample_start + N); % remove cprx_fft = fft(rx_2fft);  %% phase rotation compensation h_inverse_tmp1 = exp(-2*1i*pi*(0:N-1)'/N); h_inverse_tmp2 = h_inverse_tmp1.^2; h_inverse = 1 ./ ( 0.9 + 0.4 * h_inverse_tmp1 + 0.1 * h_inverse_tmp2 ); hat_src = h_inverse .* rx_fft; %% plot resultfigure;plot(src_sym,'ro'); figure; plot(hat_src,'b*');

转载于:https://www.cnblogs.com/songtianyu/p/7192534.html

你可能感兴趣的文章
selenide总结
查看>>
selenium--控制浏览器和简单元素操作
查看>>
[笔记] imooc《JavaScript深入浅出》对象与函数
查看>>
hdu1078FatMouse and Cheese
查看>>
jquery 处理密码输入框(input type="password" ) 模仿placeholder
查看>>
移动端touch触摸事件(滑动效果和手势操作)
查看>>
HTTP、TCP、 UDP、 IP 、 Socket的关系
查看>>
Linux终端使用技巧——个人总结
查看>>
简单通用线程池的实现
查看>>
KMP算法详解
查看>>
2019.4.27
查看>>
Linux 操作
查看>>
【3】JAVA---地址App小软件(AddPanel.class)(表现层)
查看>>
Java中的代理模式
查看>>
一个linux守护进程的编写(Ubuntu环境下)
查看>>
Leetcode-1002 Find Common Characters(查找常用字符)
查看>>
面向对象编程(基础)
查看>>
AOJ 802.运输宝物
查看>>
android studio C/C++ jni 编写以及调试方法
查看>>
Oracle RMAN 的 show,list,crosscheck,delete命令整理
查看>>