📄 dab.m
字号:
5.1 OFDM Transmission
%DAB MODE I Transmission
%The available bandwidth is 1.536 MHz
clear all;
close all;
%DAB Parameters
Tu=1e-3; %有用OFDM符号的持续时间(单位为秒)
T=Tu/2048; %基带基本时间
G=0; %应选择 1/4(512T)(但标准中为504T)(保护间隔相对有用符号的比值)
delta=G*Tu; %保护带持续期
Ts=delta+Tu; %一整个OFDM符号的持续期
Kmax=1536; %载波数
Kmin=0;
FS=2048; %IFFT/FFT长度
q=19; %carrier period to elementary period ratio
fc=q*1/T; %载波频率 =19*2048*1/Tu=38.912M
Rs=4*fc; %仿真周期 ,修改
t=0:1/Rs:Tu;
%Data generator (A)
M=Kmax;
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)).']; %Zero padding
info((FS-((A/2)-1)):FS) = [ a(((A/2)+1):A).'];
%Subcarriers generation (B)
carriers=FS.*ifft(info,FS);
tt=0:T:Tu;
figure(1);
subplot(211);
stem(tt(1:20),real(carriers(1:20)));% 信号时域响应在B
subplot(212);
stem(tt(1:20),imag(carriers(1:20)));% 信号时域响应在B
figure(2);
f=(1/T)*(1:(FS))/(FS);%频率间隔*(1:2048)
subplot(211);
plot(f,abs(fft(carriers,FS))/FS);% 信号频域响应在B
[Pxx_2,f_2]=pwelch(carriers,[],[],FS,1/T);% 信号频域响应在B subplot(212);
plot_Pxx_2=10*log10(Pxx_2);
plot(f_2,plot_Pxx_2);
% D/A simulation(巴特沃斯滤波)
L = length(carriers);
chips = [ carriers.';zeros(4*q-1,L)];
p=1/Rs:1/Rs:T;
g=ones(length(p),1); %pulse shape
figure(3);
stem(p,g);% g(t)的脉冲波形
dummy=conv(g,chips(:));
u=[dummy(1:length(t))]; % (C)
figure(4);
subplot(211);
plot(t(1:1520),real(u(1:1520)));% 信号在C点的时间响应
subplot(212);
plot(t(1:1520),imag(u(1:1520)));% 信号在C点的时间响应
figure(5);
ff=(Rs)*(1:(q*FS))/(q*FS);
subplot(211);
plot(ff,abs(fft(u,q*FS))/FS);% 信号在C点的频率响应
[Pxx_5,f_5]=pwelch(u,[],[],[],Rs);
subplot(212);
plot_Pxx_5=10*log10(Pxx_5);
plot(f_5,plot_Pxx_5);
[b,a] = butter(10,1/76); %reconstruction filter
[H,F] = FREQZ(b,a,FS,Rs);
figure(6);
plot(F,20*log10(abs(H)));%D/A 滤波器响应
uoft = filter(b,a,u); %baseband signal (D)
figure(7);
subplot(211);
plot(t(20:1540),real(uoft(20:1540)));% 信号D点的时间响应
subplot(212);
plot(t(20:1540),imag(uoft(20:1540)));% 信号D点的时间响应
figure(8);
subplot(211);
plot(ff,abs(fft(uoft,q*FS))/FS);% 信号在D点的频率响应波形
[Pxx_8,f_8]=pwelch(uoft,[],[],FS,Rs);% 信号在D点的频率响应波形
subplot(212);
plot_Pxx_8=10*log10(Pxx_8);
plot(f_8,plot_Pxx_8);
%Upconverter
s_tilde=(uoft.').*exp(1i*2*pi*fc*t);
s=real(s_tilde); %passband signal (E)
figure(9);
plot(t(20:1540),s(20:1540));% 信号在E处的时间响应
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);% 信号在E处的频率响应
%pwelch(((real(uoft).').*cos(2*pi*fc*t)),[],[],[],Rs);
%pwelch(((imag(uoft).').*sin(2*pi*fc*t)),[],[],[],Rs);
[Pxx_10,f_10]=pwelch(s,[],[],[],Rs);
subplot(212);
plot_Pxx_10=10*log10(Pxx_10);
plot(f_10,plot_Pxx_10); % 信号在E处的频率响应
figure(11);subplot(211);
plot(ff,abs(fft(((real(uoft).').*cos(2*pi*fc*t)),q*FS))/FS);
[Pxx_11,f_11]=pwelch(((real(uoft).').*cos(2*pi*fc*t)),[],[],[],Rs);
subplot(212);
plot_Pxx_11=10*log10(Pxx_11);
plot(f_11,plot_Pxx_11); % 信号在E处的频率响应
figure(12);subplot(211);
plot(ff,abs(fft(((imag(uoft).').*sin(2*pi*fc*t)),q*FS))/FS);
[Pxx_12,f_12]=pwelch(((imag(uoft).').*sin(2*pi*fc*t)),[],[],[],Rs);
subplot(212);
plot_Pxx_12=10*log10(Pxx_12);
plot(f_12,plot_Pxx_12); % 信号在E处的频率响应
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -