您的位置:首页 > 编程语言 > MATLAB

OFDM信号仿真MATLAB程序

2013-03-04 00:23 525 查看
%-- OFDM信号产生仿真程序 --

clear all;clc;close all;

Fv=32; %原始输入数据流速率(Mb/s)

M=2; %子载波调制进制=2M,QPSK时M=2,,16QAM,M=4

N=8; %子信道数

I=50; %50倍内插

Fs=Fv/N/M; %调制符号速率(2Mb/s)

fs=I*Fs; %输出采样率(100MHz)

f1=25; %数字上变频中心频率(MHz)

d(1)=1+j; % 数据符号

d(2)=-1+j;

d(3)=-1-j;

d(4)=1-j;

d(5)=1+j;

d(6)=-1+j;

d(7)=-1-j;

d(8)=1-j;

s=ifft(d); %离散傅里叶反变换

for k=1:N

s(k)=s(k)*complex(cos(pi/N*(k-1)),sin(pi/N*(k-1)));%子载波搬移半个信道

end

[n0,f,m,w]=firpmord([0.9 1.1],[1 0],[0.001 0.001],fs);

b=firpm(n0,f,m,w);%内插滤波器

for n=1:N*I

if mod((n-1),I)==0

dd(n)=s((n-1)/I+1);

else

dd(n)=0.0; %内插(I-1)个0点。

end

end

y=conv(dd,b);%内插滤波

m=(N*I+n0);

for k=1:m

y1(k)=real(y(k))*cos(2*pi*f1*(k-1)/fs)+imag(y(k))*sin(2*pi*f1*(k-1)/fs);%数字上变频

l(k)=fs/m*(k-1);

end

yy=20*log10(abs(fft(y1)));

figure

plot(l(1:m/2),yy(1:m/2));

grid on;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: