(完整版)OFDMmatlab实现

上传人:guoxi****anyue 文档编号:33719473 上传时间:2021-10-18 格式:DOC 页数:8 大小:63.50KB
收藏 版权申诉 举报 下载
(完整版)OFDMmatlab实现_第1页
第1页 / 共8页
(完整版)OFDMmatlab实现_第2页
第2页 / 共8页
(完整版)OFDMmatlab实现_第3页
第3页 / 共8页
资源描述:

《(完整版)OFDMmatlab实现》由会员分享,可在线阅读,更多相关《(完整版)OFDMmatlab实现(8页珍藏版)》请在装配图网上搜索。

1、clear all; close all; carrier_cou nt=200;% 子载波数 symbols_per_carrier=12;% 每子载波含符号数 bits_per_symbol=4;% 每符号含比特数,16QAM 调制 IFFT_bin_le ngth=512;%FFT 点数 PrefixRatio=1/4;%保护间隔与 OFDM 数据的比例 1/61/4 GI=PrefixRatio*IFFT_bin_length ;% 每一个 OFDM 符号添加的循环前缀长度为 1/4*IFFT bin le ngth 即保护间隔长度为 128 beta=1/32;%窗函数滚降系数 GI

2、P=beta*(IFFT bin le ngth+GI);% 循环后缀的长度 20 SNR=15; % 信噪比 dB %= %=信号产生= baseba nd_out_le ngth = carrier_co unt * symbols_per_carrier * bits_per_symbol;% 所输入 的比特数目 carriers = (1:carrier_co unt) + (floor(IFFT_b in_len gth/4) - floor(carrier_co un t/2);% 共轭对称 子载波映射复数数据对应的 IFFT 点坐标 conjugate carriers = IF

3、FT bin le ngth - carriers + 2;% 共轭对称子载波映射 共轭复数对 应的 IFFT 点坐标 ran d( state,0); baseba nd_out=rou nd(ra nd(1,baseba nd_out_le ngth);% 输出待调制的二进制比特流 %=16QAM 调制= complex carrier matrix=qam16(baseba nd out);% 歹 U 向量 complex carrier matrix=reshape(complex carrier matrix,carrier co un t,symbols per car rier)

4、;%symbols per carrier*carrier co unt 矩阵 figure(1); plot(complex carrier matrix,*r);%16QAM 调制后星座图 axis(-4, 4, -4, 4); grid on %=IFFT= IFFT modulation=zeros(symbols per carrier,IFFT bin length);% 添 0 组成 IFFT bin le ngth IFFT 运算 IFFT_modulation(:,carriers ) = complex_carrier_matrix ;% 未添加导频信号 ,子载波映射在 此

5、处 IFFT modulati on (:,conjugate carriers ) = conj(complex carrier matrix);% 共轭复数映射 %= figure(2); stem(O:IFFT bin le ngth-1, abs(IFFT modulatio n(2,1:IFFT bin le ngth),b*-)% 第一个 OFDM 符号的频谱 grid on axis (0 IFFT bin length -0.5 4.5); ylabel(Mag nitude); xlabel(IFFT Bi n); title(OFDM Carrier Frequency M

6、agnitude); figure(3); plot(0:IFFT bin length-1, (180/pi)*angle(IFFT modulation(2,1:IFFT bin length), go) hold on stem(0:carriers-1, (180/pi)*angle(IFFT_modulation(2,1:carriers),b*-);% 第一个 OFDM 符 号的相位 stem(0:conjugate_carriers-1, (180/pi)*a ngle(IFFT_modulatio n(2,1:conjugate_carriers),b*-); axis (0

7、IFFT bin le ngth -200 +200) grid on ylabel(Phase (degrees) xlabel(IFFT Bi n) title(OFDM Carrier Phase) %= signal_after_IFFT=ifft(IFFT_modulation,IFFT_bin_length,2);%OFDM 调制即 IFFT 变换 time_wave_matrix =sig nal_after_IFFT;% 时域波形矩阵,行为每载波所含符号数,列 ITTF 点数,N 个子载波映射在其内,每一行即为一个 OFDM 符号 figure(4); subplot(3,1,

8、1); plot(0:IFFT bin le ngth-1,time wave matrix(2,:);% 第一个符号的波形 axis(0, 700,-0.2, 0.2); grid on; ylabel(Amplitude); xlabel(Time); title(OFDM Time Signal, One Symbol Period); %= %= 添加循环前缀与后缀 XX=zeros(symbols_per_carrier,IFFT_bine ngth+GI+GIP); for k=1:symbols per carrier; for i=1:IFFT bin le ngth; XX(

9、k,i+GI)=sig nal after IFFT(k,i); end for i=1:GI; XX(k,i)=sig nal_after_IFFT(k,i+IFFT_bin_le ngth-GI);% 添加循环前缀 end for j=1:GIP; XX(k,IFFT bin le ngth+GI+j)=sig nal after IFFT(k,j);% 添加循环后缀 end end time_wave_matrix_cp=XX;% 添加了循环前缀与后缀的时域信号矩阵 ,此时一个 OFDM 符号 长度为 IFFT_bin_length+GI+GIP=660 subplot(3,1,2);

10、plot(0:le ngth(time_wave_matrix_cp)-1,time_wave_matrix_cp(2,:);% 第一个符号添加循环 前缀后的波形 axis(0, 700,-0.2, 0.2); grid on; ylabel(Amplitude); xlabel(Time); title(OFDM Time Signal with CP, One Symbol Period); %=OFDM 符号加窗 wi ndowed time wave matrix cp=zeros(1,IFFT binen gth+GI+GIP); for i = 1:symbols per carr

11、ier wi ndowed time wave matrix cp(i,:)= real(time_wave_matrix_cp(i,:).*rcoswi ndow(beta,IFFT_bin_le ngth+GI);% 加窗升余弦窗 end subplot(3,1,3); plot(0:IFFT bin le ngth-1+GI+GIP,wi ndowed time wave matrix cp(2,:);% 第一个符号的 波形 axis(0, 700, -0.2, 0.2); grid on; ylabel(Amplitude); xlabel(Time); title(OFDM Time

12、 Signal Apply a Window , One Symbol Period); = 生成发送信号,并串变换 wi ndowed Tx data=zeros(1,symbols per carrier*(IFFT b inen gth+GI)+GIP); wi ndowed Tx data(1:IFFT bi n en gth+GI+GIP)=wi ndowed time wave matrix cp(1,:); for i = 1:symbols per carrier-1 ; wi ndowed_Tx_data(IFFT_bine ngth+GI)*i+1:(IFFT_bine n

13、gth+GI)*(i+1)+GIP)=wi ndow ed_time_wave_matrix_cp(i+1,:);% 并串转换,循环后缀与循环前缀相叠加 end %= Tx data withoutwi ndow =reshape(time_wave_matrix_cp,(symbols_per_carrier)*(IFFT_bi n_len gth+GI+GIP),1);% 没有加窗,只添加循环前缀与后缀的串行信号 Tx_data =reshape(w in dowed_time_wave_matrix_cp,(symbols_per_carrier)*(IFFT_b in_len gth+

14、GI +GIP),1);%加窗后 循环前缀与后缀不叠加 的串行信号 %= temp time1 = (symbols per carrier)*(IFFT bin length+GI+GIP);% 加窗后循环前缀与后 缀不叠加发送总位数 figure (5) subplot(2,1,1); plot(0:temp_time1-1,Tx_data );% 循环前缀与后缀不叠加 发送的信号波形 grid on ylabel(Amplitude (volts) xlabel(Time (samples) title(OFDM Time Sig nal) temp time2 =symbols per

15、 carrier*(IFFT b inen gth+GI)+GIP; subplot(2,1,2); plot(0:temp time2-1,wi ndowed Tx data);% 循环后缀与循环前缀相叠加 发送信号波形 grid on ylabel(Amplitude (volts) xlabel(Time (samples) title(OFDM Time Sig nal) %= 未加窗发送信号频谱 symbols_per_average = ceil(symbols_per_carrier/5);% 符号数的 1/5, 10 行 avg_temp_time = (IFFT_bin_le

16、ngth+GI+GIP)*symbols_per_average;% 点数,10 行数据, 10 个符号 averages = floor(temp_time1/avg_temp_time); average fft(1:avg temp time) = 0;% 分成 5 段 for a = 0:(averages-1) subset_ofdm = Tx_data_withoutwi ndow (a*avg_temp_time)+1):(a+1)*avg_temp_time);% subset_ofdm_f = abs(fft(subset_ofdm);% 将发送信号分段求频谱 average

17、 fft = average fft + (subset ofdm f/averages);% 总共的数据分为 5 段,分段进行 FFT,平均相加 end average fft log = 20*log10(average fft); figure (6) subplot(2,1,1); plot(0:(avg_temp_time-1)/avg_temp_time, average_fft_log)% 归一化 0/avg_temp_time : (avg_temp_time-1)/avg_temp_time hold on plot(0:1/IFFT bin le ngth:1, -35,

18、rd) grid on axis(0 0.5 -40 max(average_fft_log) ylabel(Mag ni tude (dB) xlabel(Normalized Freque ncy (0.5 = fs/2) title(OFDM Signal Spectrum without windowing) %=加窗的发送信号频谱= symbols per average = ceil(symbols per carrier/5);% 符号数的 1/5, 10 行 avg_temp_time = (IFFT_bin_length+GI+GIP)*symbols_per_average

19、;% 点数,10 行数据, 10 个符号 averages = floor(temp time1/avg temp time); average fft(1:avg temp time) = 0;% 分成 5 段 for a = 0:(averages-1) subset ofdm = Tx data(a*avg temp time)+1):(a+1)*avg temp time);% 利用循环前缀 后缀未叠加的串行加窗信号计算频谱 subset_ofdm_f = abs(fft(subset_ofdm);% 分段求频谱 average_fft = average_fft + (subset_

20、ofdm_f/averages);% 总共的数据分为 5 段,分段进行 FFT,平均相加 end average fft log = 20*log10(average fft); subplot(2,1,2) plot(0:(avg temp time-1)/avg temp time, average fft log)% 归一化 O/avg temp time : (avg temp time-1)/avg temp time hold on plot(0:1/IFFT bin le ngth:1, -35, rd) grid on axis(0 0.5 -40 max(average_ff

21、t_log) ylabel(Mag ni tude (dB) xlabel(Normalized Freque ncy (0.5 = fs/2) title(Wi ndowed OFDM Sig nal Spectrum) %=添加噪声 Tx sig nal power = var(w in dowed Tx data);% 发送信号功率 lin ear_SNR=10A(SNR/10);% 线性信噪比 no ise_sigma=Tx_sig nal_power/li near_SNR; noise_scale_factor = sqrt(noise_sigma);% 标准差 sigma no

22、ise=ra ndn( 1,(symbols_per_carrier)*(IFFT_b in_len gth+GI)+GIP)* no ise_scale_factor; %产生正态分布噪声序列 %noise=wgn(1,length(windowed_Tx_data),noise_sigma,complex);% 产生复 GAUSS 白噪 声信号 Rx_data=wi ndowed_Tx_data +no ise;% 接收到的信号加噪声 %= 接收信号 串/并变换去除前缀与后缀 Rx_data_matrix=zeros(symbols_per_carrier,IFFT_b in_len gt

23、h+GI+GIP); for i=1:symbols per carrier; Rx_data_matrix(i,:)=Rx_data(1,(i-1)*(IFFT_bin_le ngth+GI)+1:i*(IFFT_bin_le ngth+GI)+GI P);%串并变换 end Rx_data_complex_matrix=Rx_data_matrix(:,GI+1:IFFT_bin_le ngth+GI);% 去除循环前缀 与循环后缀,得到有用信号矩阵 %=% Rx_carriers=Y1(:,carriers);% 除去 IFFT/FFT 变换添加的 0,选出映射的子载波 %= % OFD

24、M 解码 16QAM 解码 %=FFT 变换= Y1=fft(Rx_data_complex_matrix,IFFT_bin_length,2);%OFDM 解码即 FFT 变换 Rx phase =an gle(Rx carriers);% 接收信号的相位 Rx mag = abs(Rx carriers);% 接收信号的幅度 figure(7); polar(Rx phase, Rx mag,bd);% 极坐标坐标下画出接收信号的星座图 %= M, N=pol2cart(Rx_phase, Rx_mag); Rx_complex_carrier_matrix = complex(M, N)

25、; figure(8); plot(Rx complex carrier matrix,*r);%XY 坐标接收信号的星座图 axis(-4, 4,-4, 4); grid on %=16qam 解调 Rx serial complex symbols = 1)*size(Rx_complex_carrier_matrix,2),1); Rx decoded bi nary symbols=demoduqam16(Rx serial complex symbols); %= baseba nd in = Rx decoded b in ary symbols; figure(9); subplot(2,1,1); stem(baseba nd_out(1:100); subplot(2,1,2); stem(baseba nd i n(1:100); %=误码率计算 bit errors=fi nd(baseba nd in =baseba nd out); bit error co unt = size(bit errors, 2) ber=bit error count/baseband out length

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!