第一范文网 - 专业文章范例文档资料分享平台

OFDM技术仿真(MATLAB代码)

来源:用户分享 时间:2025/5/15 18:35:44 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

附录1:OFDM发送部分代码

clear all; close all; %DVB传送参数

Tu=224e-6; %可利用OFDM符号时间 T=Tu/2048; %原始基带周期

G=0; %允许保护时间间隔选择1/4, 1/8, 1/16或1/32 delta=G*Tu; %保护间隔持续时间 Ts=delta+Tu; % 整个OFDM持续时间 Kmax=1705; %子载波数目 Kmin=0;

FS=4096; %IFFT/FFT 长度 q=10; %载波周期与原始基带周期比 fc=q*1/T; %载波频率 Rs=4*fc; %模拟周期 t=0:1/Rs:Tu; %数据产生程序 (A) M=Kmax+1; rand('state',0);

a=-1+2*round(rand(M,1)).'+i*(-1+2*round(rand(M,1))).'; A=length(a); info=zeros(FS,1);

info(1:(A/2)) = [ a(1:(A/2)).']; %补充零 info((FS-((A/2)-1)):FS) = [ a(((A/2)+1):A).']; %子载波产生程序 (B) carriers=FS.*ifft(info,FS); tt=0:T/2:Tu; figure(1); subplot(211);

25

基于MATLAB实现OFDM的仿真

stem(tt(1:20),real(carriers(1:20))); subplot(212);

stem(tt(1:20),imag(carriers(1:20))); figure(2);

f=(2/T)*(1:(FS))/(FS); subplot(211);

plot(f,abs(fft(carriers,FS))/FS); subplot(212);

pwelch(carriers,[],[],[],2/T); % D/A 转换模拟 L = length(carriers);

chips = [ carriers.';zeros((2*q)-1,L)]; p=1/Rs:1/Rs:T/2;

g=ones(length(p),1); %脉冲形成 figure(3); stem(p,g);

dummy=conv(g,chips(:)); u=[dummy(1:length(t))]; % (C) figure(4); subplot(211);

plot(t(1:400),real(u(1:400))); subplot(212);

plot(t(1:400),imag(u(1:400))); figure(5);

ff=(Rs)*(1:(q*FS))/(q*FS); subplot(211);

plot(ff,abs(fft(u,q*FS))/FS); subplot(212); pwelch(u,[],[],[],Rs);

26

[b,a] = butter(13,1/20); %重构滤波器 [H,F] = FREQZ(b,a,FS,Rs); figure(6);

plot(F,20*log10(abs(H)));

uoft = filter(b,a,u); %基带信号 (D) figure(7); subplot(211);

plot(t(80:480),real(uoft(80:480))); subplot(212);

plot(t(80:480),imag(uoft(80:480))); figure(8); subplot(211);

plot(ff,abs(fft(uoft,q*FS))/FS); subplot(212);

pwelch(uoft,[],[],[],Rs); %Upconverter

s_tilde=(uoft.').*exp(1i*2*pi*fc*t); s=real(s_tilde); %通频带信号 (E) figure(9);

plot(t(80:480),s(80:480)); figure(10); subplot(211);

%plot(ff,abs(fft(((real(uoft).').*cos(2*pi*fc*t)),q*FS))/FS); %plot(ff,abs(fft(((imag(uoft).').*sin(2*pi*fc*t)),q*FS))/FS); plot(ff,abs(fft(s,q*FS))/FS); subplot(212);

%pwelch(((real(uoft).').*cos(2*pi*fc*t)),[],[],[],Rs); %pwelch(((imag(uoft).').*sin(2*pi*fc*t)),[],[],[],Rs); pwelch(s,[],[],[],Rs);

27

基于MATLAB实现OFDM的仿真

附录2:OFDM接收部分代码

%DVB 2K模式接收部分 clear all; close all;

Tu=224e-6; %有用OFDM符号持续时间 T=Tu/2048; %原始基带周期

G=0; %允许保护时间间隔选择1/4, 1/8, 1/16或1/32 delta=G*Tu; %保护间隔持续时间 Ts=delta+Tu; %整个OFDM符号持续时间 Kmax=1705; %子载波数 Kmin=0;

FS=4096; %IFFT/FFT 长度 q=10; %载波周期与原始基带周期比 fc=q*1/T; %载波频率 Rs=4*fc; %模拟周期 t=0:1/Rs:Tu; tt=0:T/2:Tu; %数据产生程序 sM = 2;

[x,y] = meshgrid((-sM+1):2:(sM-1),(-sM+1):2:(sM-1)); alphabet = x(:) + 1i*y(:); N=Kmax+1; rand('state',0);

a=-1+2*round(rand(N,1)).'+i*(-1+2*round(rand(N,1))).'; A=length(a); info=zeros(FS,1);

info(1:(A/2)) = [ a(1:(A/2)).'];

info((FS-((A/2)-1)):FS) = [ a(((A/2)+1):A).']; carriers=FS.*ifft(info,FS);

28

搜索更多关于: OFDM技术仿真(MATLAB代码) 的文档
OFDM技术仿真(MATLAB代码).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0qwob4545m7tdik036ax_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top