已解决问题
OFDM虚子载波位置问题  (进入论坛模式)
提问者:nocefly   |  提问时间:2012-5-16 16:12
IFFT变换中N一般取2的n次幂,那如果子载波个数M小于N,那么IFFT变换前的输入序列X(k)(k=0、1、……M-1)需要补0,插0的位置一般在中间,有大牛能说明下原理么?还有,如果OFDM符号时间为Ts,不妨取N=M,那么IFFT输出的x(n)(n=0、1、……M-1)相当于就是OFDM复包络的时域采样点,采样时间间隔为Tc=Ts/(M-1),而OFDM复包络基带带宽为(M-1)f,f为子载波间隔,这里奈奎斯特采样定理成立么?
关闭所有答案回应     最佳答案


针对第一个问题:在中间插0,其实还是在两边加保护带,可以参考下边的代码,(与2楼的说法类似)

% http://creativecommons.org/licenses/by-nc/2.5/in/

% Author : Krishna
% Email : [email]krishna@dsplog.com[/email]
% Version : 1.0
% Date : 02 February 2008
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% script for generting OFDM transmit waveform (loosely based on
% IEEE 802.11A specifications)
%

clear
nFFTSize = 64;
% for each symbol bits a1 to a52 are assigned to subcarrier
% index [-26 to -1 1 to 26]
subcarrierIndex = [-26:-1 1:26];
nBit = 2500;
ip = rand(1,nBit) > 0.5; % generating 1's and 0's
nBitPerSymbol = 52;

nSymbol = ceil(nBit/nBitPerSymbol);

% BPSK modulation
% bit0 --> -1
% bit1 --> +1
ipMod = 2*ip - 1;
ipMod = [ipMod zeros(1,nBitPerSymbol*nSymbol-nBit)];
ipMod = reshape(ipMod,nSymbol,nBitPerSymbol);

st = []; % empty vector

for ii = 1:nSymbol

inputiFFT = zeros(1,nFFTSize);

% assigning bits a1 to a52 to subcarriers [-26 to -1, 1 to 26]
inputiFFT(subcarrierIndex+nFFTSize/2+1) = ipMod(ii,:);

% shift subcarriers at indices [-26 to -1] to fft input indices [38 to 63]
inputiFFT = fftshift(inputiFFT);

outputiFFT = ifft(inputiFFT,nFFTSize);

% adding cyclic prefix of 16 samples
outputiFFT_with_CP = [outputiFFT(49:64) outputiFFT];

st = [st outputiFFT_with_CP];

end

close all
fsMHz = 20;
[Pxx,W] = pwelch(st,[],[],4096,20);
plot([-2048:2047]*fsMHz/4096,10*log10(fftshift(Pxx)));
xlabel('frequency, MHz')
ylabel('power spectral density')
title('Transmit spectrum OFDM (based on 802.11a)');


第二个问题:其实信号带宽还是M*f,只不过一半是正频带一半是负频带,那么最高频率就是M*f/2,因此满足奈奎斯特采样定理。
 |  回应该答案 (0)  |  回答时间:2012-5-21 14:49
其他答案 ( 3 条 )
后一个问题我突然弄懂了,复包络的基带带宽应该是M*f/2,因为子载波间是重叠的,所以满足奈奎斯特采样定理,第一个问题有人能解释下么?不胜感激。。
 |  回应该答案 (0)  |  回答者:nocefly   |  2012-5-16 16:48
是不是因为实际IFFT时的序列被循环移位了N/2点的缘故?
 |  回应该答案 (0)  |  回答者:alonewind   |  2012-5-21 11:25
取小的啊,跟M、N大小有关系
回应该答案 (0)  |  回答者:htyjump   |  2012-6-6 17:47