OFDM源程序及解析(共10页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《OFDM源程序及解析(共10页).doc》由会员分享,可在线阅读,更多相关《OFDM源程序及解析(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上OFDM简单实现%a_run_design.m文件 setup%系统设置OFDM%OFDM调制方式Analysis%OFDM的收发数据及误码1setup %初始化部分% setupdisp( ), disp(-)disp(Simulation Setup)% OFDM Setup -fft_size = 128% should be a power of 2 for fast computation% more points = more time domain samples (smoother & more cycles)num_carriers = 32% sh
2、ould be 60disp(strcat(Time for OFDM simulation=, num2str(OFDM_simulation_time/60), minutes.);elsedisp(strcat(Time for OFDM simulation=, num2str(OFDM_simulation_time), seconds.);end3.1发送% txdisp(Transmitting)read %read original datadata_in_pol = bin2pol(data_in); % Converts binary data to polar datat
3、x_chunk %convert polar data into chunks. % perform ifft to create time domain waveform representing datatd_sets = zeros(num_chunks,fft_size);for i = 1:num_chunkstd_sets(i,1:fft_size) = real(ifft(spaced_chunks(i,1:fft_size);endtx_dechunk % Construct signal to transmit by placing time domain sets in s
4、eries3.1.1 % tx_chunk %双极性数组转化成OFDM字符串,串并子程序data_length = length(data_in_pol) %number of symbols in original inputnum_chunks = ceil(data_length/(2*num_carriers)%2 data on each carrier (real and imaginary)r = rem(data_length,2*num_carriers)if r = 0for i = 1:num_carriers*2-rdata_in_pol(data_length+i)
5、= 0;%pad input with zeros to complete last data setend%speed improve possibleend% break data into chunkschunks = zeros(num_chunks,num_carriers);% for speedfor i = 1:num_chunks% *chunk donefor k = 1:num_carrierschunks(i,k) = data_in_pol(2*num_carriers*(i-1)+k) + data_in_pol(2*num_carriers*(i-1)+k+num
6、_carriers)*j;endendchunks% Padding chunks with zeros so num_carriers and fft_size are compatible% Once compatible, further spacing is simplifiednum_desired_carriers = num_carriers;num_zeros = 0;thinking = 1;while thinking = 1 % Continue if num_carriers and fft_size are not compatibleif rem(fft_size/
7、2,num_desired_carriers) = 0thinking = 0;elsenum_desired_carriers = num_desired_carriers + 1;num_zeros = num_zeros + 1;endendpadded_chunks = zeros(num_chunks,num_carriers + num_zeros); % for speedpadded_chunks(1:num_chunks,num_zeros + 1:num_carriers + num_zeros) = chunks;%compute zeros_betweenzeros_b
8、etween = (fft_size/2) - (num_carriers + num_zeros)/(num_carriers + num_zeros);spaced_chunks = zeros(num_chunks,fft_size); % for speed - extra room for folding later%add zeros_betweeni = 1;for k = zeros_between +1:zeros_between +1:fft_size/2spaced_chunks(1:num_chunks,k) = padded_chunks(1:num_chunks,i
9、);i = i+1;end% folding data to produce an odd function for ifft inputfor i = 1:num_chunks% Note: index = 1 is actually DC freq for ifft - it does not get copied over y-axisspaced_chunks(i,fft_size:-1:fft_size/2+2) = conj(spaced_chunks(i,2:fft_size/2);end3.1.2 tx_dechunk并串子程序% tx_dechunk% Construct s
10、ignal to transmit by placing time domain sets in seriesxmit = zeros(1,num_chunks*fft_size);for i = 1:num_chunksfor k = 1:fft_sizexmit(k + (i-1)*fft_size) = td_sets(i,k);endend3.2 %ch.m% chrecv = xmit;% channel is applied to recv, dont modify transmitted dataif channel_on = 1disp(Simulating Channel)n
11、orm_factor = max(abs(recv);% Normalize all data before applyingrecv = (1/norm_factor) * recv;% channel for a fair comparisonch_clipping %clipp datach_multipath %ch_noise %recv = norm_factor * recv;% Restore data magnitude for proper decodingend3.2.1 %ch_clipping.m% ch_clippingfor i = 1:length(recv)i
12、f recv(i) clip_levelrecv(i) = clip_level;endif recv(i) recv_padded_chunksrecv_padded_chunks = zeros(num_chunks, num_carriers+num_zeros);i = 1;for k = zeros_between +1:zeros_between +1:fft_size/2recv_padded_chunks(1:num_chunks,i) = recv_spaced_chunks(1:num_chunks,k);i = i+1;end% take out num_zeros fr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OFDM 源程序 解析 10
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内