版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 ofdm的系統(tǒng)仿真與實現(xiàn)一、 實驗器件matlab編程軟件、pc機二、 實驗目的1、通過實驗過程熟悉ofdm的系統(tǒng)運行過程.2、進一步練習通過matlab解決通信系統(tǒng)的仿真問題.3、掌握導頻插入、訓練序列等原理與實際運用.4、掌握通過實際仿真與理論分析的結合的方法.三、ofdm的基本原理ofdm(orthogonal frequency division multiplexing)即正交頻分復用技術,實際上ofdm是多載波調(diào)制的一種。其主要思想是:將信道分成若干正交子信道,將高速數(shù)據(jù)信號轉(zhuǎn)換成并行的低速子數(shù)據(jù)流,調(diào)制到在每個子信道上進行傳輸。正交信號可以通過在接收端采用相關技術來分開,這樣可
2、以減少子信道之間的相互干擾 ici 。每個子信道上的信號帶寬小于信道的相關帶寬,因此每個子信道上的可以看成平坦性衰落,從而可以消除符號間干擾。而且由于每個子信道的帶寬僅僅是原信道帶寬的一小部分,信道均衡變得相對容易。在向b3g/4g演進的過程中,ofdm是關鍵的技術之一,可以結合分集,時空編碼,干擾和信道間干擾抑制以及智能天線技術,最大限度的提高了系統(tǒng)性能。包括以下類型:v-ofdm,w-ofdm,f-ofdm,mimo-ofdm,多帶-ofdm。ofdm是一種無線環(huán)境下的高速傳輸技術。無線信道的頻率響應曲線大多是非平坦的,而ofdm技術的主要思想就是在頻域內(nèi)將給定信道分成許多正交子信道,在每
3、個子信道上使用一個子載波進行調(diào)制,并且各子載波并行傳輸。這樣,盡管總的信道是非平坦的,具有頻率選擇性,但是每個子信道是相對平坦的,在每個子信道上進行的是窄帶傳輸,信號帶寬小于信道的相應帶寬,因此就可以大大消除信號波形間的干擾。由于在ofdm系統(tǒng)中各個子信道的載波相互正交,它們的頻譜是相互重疊的,這樣不但減小了子載波間的相互干擾,同時又提高了頻譜利用率。ofdm技術屬于多載波調(diào)制(multicarriermodulation,mcm)技術。有些文獻上將ofdm和mcm混用,實際上不夠嚴密。mcm與ofdm常用于無線信道,它們的區(qū)別在于:ofdm技術特指將信道劃分成正交的子信道,頻道利用率高;而m
4、cm,可以是更多種信道劃分方法。 ofdm技術的推出其實是為了提高載波的頻譜利用率,或者是為了改進對多載波的調(diào)制,它的特點是各子載波相互正交,使擴頻調(diào)制后的頻譜可以相互重疊,從而減小了子載波間的相互干擾。在對每個載波完成調(diào)制以后,為了增加數(shù)據(jù)的吞吐量、提高數(shù)據(jù)傳輸?shù)乃俣龋植捎昧艘环N叫作homeplug的處理技術,來對所有將要被發(fā)送數(shù)據(jù)信號位的載波進行合并處理,把眾多的單個信號合并成一個獨立的傳輸信號進行發(fā)送。另外ofdm之所以備受關注,其中一條重要的原因是它可以利用離散傅立葉反變換/離散傅立葉變換(idft/dft)代替多載波調(diào)制和解調(diào)。ofdm增強了抗頻率選擇性衰落和抗窄帶干擾的能力。在
5、單載波系統(tǒng)中,單個衰落或者干擾可能導致整個鏈路不可用,但在多載波的ofdm系統(tǒng)中,只會有一小部分載波受影響。此外,糾錯碼的使用還可以幫助其恢復一些載波上的信息。通過合理地挑選子載波位置,可以使ofdm的頻譜波形保持平坦,同時保證了各載波之間的正交。ofdm盡管還是一種頻分復用(fdm),但已完全不同于過去的fdm。ofdm的接收機實際上是通過fft實現(xiàn)的一組解調(diào)器。它將不同載波搬移至零頻,然后在一個碼元周期內(nèi)積分,其他載波信號由于與所積分的信號正交,因此不會對信息的提取產(chǎn)生影響。ofdm的數(shù)據(jù)傳輸速率也與子載波的數(shù)量有關。ofdm每個載波所使用的調(diào)制方法可以不同。各個載波能夠根據(jù)信道狀況的不同
6、選擇不同的調(diào)制方式,比如bpsk、qpsk、8psk、16qam、64qam等等,以頻譜利用率和誤碼率之間的最佳平衡為原則。我們通過選擇滿足一定誤碼率的最佳調(diào)制方式就可以獲得最大頻譜效率。無線多徑信道的頻率選擇性衰落會使接收信號功率大幅下降,經(jīng)常會達到30db之多,信噪比也隨之大幅下降。為了提高頻譜利用率,應該使用與信噪比相匹配的調(diào)制方式??煽啃允峭ㄐ畔到y(tǒng)正常運行的基本考核指標,所以很多通信系統(tǒng)都傾向于選擇bpsk或qpsk調(diào)制,以確保在信道最壞條件下的信噪比要求,但是這兩種調(diào)制方式的頻譜效率很低。ofdm技術使用了自適應調(diào)制,根據(jù)信道條件的好壞來選擇不同的調(diào)制方式。比如在終端靠近基站時,信道
7、條件一般會比較好,調(diào)制方式就可以由bpsk(頻譜效率1bit/s/hz)轉(zhuǎn)化成16qam64qam(頻譜效率46bit/s/hz),整個系統(tǒng)的頻譜利用率就會得到大幅度的提高。自適應調(diào)制能夠擴大系統(tǒng)容量,但它要求信號必須包含一定的開銷比特,以告知接收端發(fā)射信號所應采用的調(diào)制方式。終端還要定期更新調(diào)制信息,這也會增加更多的開銷比特。ofdm還采用了功率控制和自適應調(diào)制相協(xié)調(diào)工作方式。信道好的時候,發(fā)射功率不變,可以增強調(diào)制方式(如64qam),或者在低調(diào)制方式(如qpsk)時降低發(fā)射功率。功率控制與自適應調(diào)制要取得平衡。也就是說對于一個發(fā)射臺,如果它有良好的信道,在發(fā)送功率保持不變的情況下,可使用
8、較高的調(diào)制方案如64qam;如果功率減小,調(diào)制方案也就可以相應降低,使用qpsk方式等。自適應調(diào)制要求系統(tǒng)必須對信道的性能有及時和精確的了解,如果在差的信道上使用較強的調(diào)制方式,那么就會產(chǎn)生很高的誤碼率,影響系統(tǒng)的可用性。ofdm系統(tǒng)可以用導頻信號或參考碼字來測試信道的好壞。發(fā)送一個已知數(shù)據(jù)的碼字,測出每條信道的信噪比,根據(jù)這個信噪比來確定最適合的調(diào)制方式。三、ofdm系統(tǒng)實現(xiàn)的整體思路1、系統(tǒng)圖如下:2、具體實現(xiàn)過程(1)先進行信道編碼為了提高數(shù)字通信系統(tǒng)的性能,信道編碼(通常還伴有交織)是普遍采用的方法。在ofdm系統(tǒng)中,如果信道衰落不是太嚴重,均衡是無法再利用信道的分集特性來改善系統(tǒng)性能
9、的,因為ofdm系統(tǒng)自身具有利用信道分集特性的能力,一般的信道特性信息已經(jīng)被ofdm這種調(diào)制方式本身所利用了。但是,ofdm系統(tǒng)的結構卻為在子載波間進行編碼提供了機會,形成cofdm(前置編碼ofdm)方式。編碼可以采用各種碼,如分組碼、卷積碼等,其中卷積碼的效果要比分組碼好,但分組碼的編解碼實現(xiàn)更為簡單。 (2)子載波調(diào)制傳輸信號進行信道編碼后,要進行子載波的數(shù)字調(diào)制將其轉(zhuǎn)換成載波幅度和相位的映射,一般采用qam或mpsk方式。各子載波不必要采用相同的狀態(tài)數(shù)(進制數(shù)),甚至不必要采用相同的調(diào)制方式。這使得ofdm支持的傳輸速率可以在一個較大的范圍內(nèi)變化,并可以根據(jù)子信道的干擾情況,在不同的子
10、信道上采用不同狀態(tài)數(shù)的調(diào)制,甚至采用不同的調(diào)制方式。調(diào)制信號星座在ifft之前根據(jù)調(diào)制模式形成。(3)加入保護間隔應用ofdm的一個重要原因在于它可以有效地對抗多徑時延擴展。把輸入數(shù)據(jù)流串并變換到 個并行的子信道中,使得每一個調(diào)制子載波的數(shù)據(jù)周期可以擴大為原始數(shù)據(jù)符號周期的n倍,因此時延擴展與符號周期的數(shù)值比也同樣降低n倍。另外,通過在每個ofdm符號間插入保護間隔可以進一步抵制符號間干擾(isi),還可以減少在接收端的定時偏移錯誤。這種保護間隔是一種循環(huán)復制,增加了符號的波形長度,在符號的數(shù)據(jù)部分,每一個子載波內(nèi)有一個整數(shù)倍的循環(huán),此種符號的復制產(chǎn)生了一個循環(huán)的信號,即將每個ofdm符號的后
11、 時間中的樣點復制到ofdm符號的前面,形成循環(huán)前綴,在交接點沒有任何的間斷。因此將一個符號的尾端復制并補充到起始點增加了符號時間的長度。符號的總長度為 ,其中 為ofdm符號的總長度,為抽樣的保護間隔長度,tfft為fft變化產(chǎn)生的無保護間隔的ofdm符號長度, 則可以完全克服isi的影響。同時,由于ofdm延時副本內(nèi)所包含的子載波的周期個數(shù)也為整數(shù),時延信號就不會破壞子載波間的正交性,在fft解調(diào)過程中就不會產(chǎn)生載波間干擾(ici)。(3)將信號進行上變頻(載波調(diào)制)后,發(fā)送出去,在接收端經(jīng)過解調(diào)、逆快速傅里葉變換、去掉保護間隔等過程即可恢復原始的信號。四、ofdm系統(tǒng)的具體實現(xiàn)1、詳細設
12、計思路接收端采用的算法和程序流程與發(fā)送端發(fā)送的ofdm符號的幀結構有關系。具體的幀結構,以及定時估計,頻偏估計,剩余誤差跟蹤的算法可參考算法說明文檔。這里對程序的流程進行說明。首先根據(jù)短訓練字的特性進行相關運算,進行信號到達檢測,當檢測到相關值大于門限一定次數(shù)后,認為有信號到達。然后根據(jù)長訓練字的特性,進行相關運算,進行ofdm符號fft窗口起始位置的估計。估計出fft窗口的位置后,先在時域進行小頻偏的估計,將兩個長訓練字進行小頻偏補償后,進行fft運算,根據(jù)fft運算的結果進行整數(shù)倍頻偏的估計。這些參數(shù)估計完成后,就可以進行數(shù)據(jù)解調(diào)了。先對數(shù)據(jù)部分進行完整的頻偏補償,然后根據(jù)估計的fft窗口
13、位置進行fft運算得到頻域的數(shù)據(jù),進行解調(diào)。然后在對應于導頻的子載波位置上提取出導頻信息,根據(jù)導頻信息估計出剩余定時誤差以及剩余的信道響應誤差,將誤差量送入環(huán)路進行跟蹤。當收到所有數(shù)據(jù)后,重新回到信號到達檢測狀態(tài),進行下一次信號到達的檢測和信號接收。2、程序流程圖3、具體代碼實現(xiàn)nfft=128*2; %256 進行256點的fftng=32*2; %64nzero=0;nzerosub=floor(nfft*0.5)/2); %for padding ntotal=ng+2*nzero+nfft; %320constellation_num=16;symbol_num=20; %ablen=
14、symbol_num*nfft; %totalns=symbol_num*ntotal;pnum_least(1:symbol_num)=10000;pnum(1:symbol_num)=0;ndata_o=symbol_num*(nfft/2-nfft/16/2);sita=0;sita1=1;sita2=0;sita3=0; % 測試變量sign=1;%for filterlhbf1=23; % 半帶濾波器長度% i1=zeros(1,ndata_o);% i2=zeros(1,ndata_o);% i3=zeros(1,ndata_o);% i4=zeros(1,ndata_o);chb
15、f1(1:lhbf1)=0;insertgiout(1:symbol_num,1:ntotal)=0;% 半帶濾波器系數(shù)fid2=fopen('hbf23.txt','r');chbf1=fscanf(fid2,'%f');fclose(fid2);ihbf1in(1:lhbf1)=0;qhbf1in(1:lhbf1)=0; % 進行半帶濾波時的緩沖區(qū)ihbf1out(1:2*ns)=0;qhbf1out(1:2:ns)=0; % 兩倍上采樣后時域數(shù)據(jù)的存放數(shù)組 % i、q分別表示i、q兩路信號ii=1;k=1;k1=1;k2=1;k3=1;k4
16、=1;k5=1;t=1;t2=1;t3=1;souti(1:ns)=0;soutq(1:ns)=0; % 沒有進行兩倍上采樣之前的時域數(shù)據(jù)存放數(shù)組 % i、q分別表示i、q兩路信號ifftouti(1:symbol_num,1:nfft)=0;ifftoutq(1:symbol_num,1:nfft)=0;ifftoutiq(1:symbol_num,1:nfft)=0;ifftoutiqs(1:symbol_num,1:nfft)=0; % 進行ifft運算后ofdm符號存放數(shù)組 % i、q分別表示i、q兩路信號 % iq表示復數(shù)信息fftout_t_1(1:symbol_num,1:2*n
17、fft)=0;fftout_t_2(1:symbol_num,1:4*nfft)=0;fftout_t_3(1:symbol_num,1:8*nfft)=0; % 測試變量ii=1;m_pilot=8;subcarrier(1:n)=0;subcarriercom(1:n)=0;%train_word% 獲得短前導字頻域信息fid3=fopen('data_i_train_word_re_i0_256.txt','r');i_train_word_re_temp=fscanf(fid3,'%f');fclose(fid3);i_train_wor
18、d_re = (i_train_word_re_temp)'fid3=fopen('data_q_train_word_re_i0_256.txt','r');q_train_word_re_temp=fscanf(fid3,'%f');fclose(fid3);q_train_word_re = (q_train_word_re_temp)'% 獲得一個長前導字頻域信息fid3=fopen('data_i_train_word_1_i0_256.txt','r');i_train_word_1_t
19、emp=fscanf(fid3,'%f');fclose(fid3);i_train_word_1 = (i_train_word_1_temp)'fid3=fopen('data_q_train_word_1_i0_256.txt','r');q_train_word_1_temp=fscanf(fid3,'%f');fclose(fid3);q_train_word_1 = (q_train_word_1_temp)'% 獲得二個長前導字頻域信息fid3=fopen('data_i_train_word
20、_2_i0_256.txt','r');i_train_word_2_temp=fscanf(fid3,'%f');fclose(fid3);i_train_word_2 = (i_train_word_2_temp)'fid3=fopen('data_q_train_word_2_i0_256.txt','r');q_train_word_2_temp=fscanf(fid3,'%f');fclose(fid3);q_train_word_2 = (q_train_word_2_temp)'
21、;l=1;% 加窗處理的參數(shù)設置wind=zeros(1,(nfft+ng);windo=hamming(nfft+ng);wind(ng+1):nfft)=windo(ng+1):nfft);wind(1:ng)=windo(ng+1);wind(nfft+1):(nfft+ng)=windo(nfft);stst=1;% 獲得隨機數(shù),當作用戶信息,調(diào)制到各個子載波上fid3=fopen('i1.txt','r');i1=fscanf(fid3,'%d,');fclose(fid3);fid3=fopen('i2.txt',
22、39;r');i2=fscanf(fid3,'%d,');fclose(fid3);fid3=fopen('i3.txt','r');i3=fscanf(fid3,'%d,');fclose(fid3);fid3=fopen('i4.txt','r');i4=fscanf(fid3,'%d,');fclose(fid3);% bits mapping to constellationsfor i=1:n % 前面4個符號是前導字 if(i < nfft*4+1) % 短
23、前導字 if( i>0 & i < 2*nfft+1) if(rem(i,nfft) = 0) imapped(i) = i_train_word_re(nfft); qmapped(i) = q_train_word_re(nfft); else imapped(i) = i_train_word_re(rem(i,nfft); qmapped(i) = q_train_word_re(rem(i,nfft); end end % 第一個長前導字 if( i>2*nfft & i < 3*nfft+1) if(rem(i,nfft) = 0) imap
24、ped(i) = i_train_word_1(nfft); qmapped(i) = q_train_word_1(nfft); else imapped(i) = i_train_word_1(rem(i,nfft); qmapped(i) = q_train_word_1(rem(i,nfft); end end % 第二個長前導字 if (i>3*nfft & i<nfft*4+1) if(rem(i,nfft) = 0) imapped(i) = i_train_word_2(nfft); qmapped(i) = q_train_word_2(nfft); el
25、se imapped(i) = i_train_word_2(rem(i,nfft); qmapped(i) = q_train_word_2(rem(i,nfft); end end else % 前導字發(fā)送完后,發(fā)送用戶信息,這里用隨機數(shù)代替用戶信息 % 中間查0的虛擬子載波沒有用戶信息 if (rem(i,nfft) < (nfft/2-nzerosub+1) | (rem(i,nfft) > (nfft/2+nzerosub) if(rem(i,nfft/(2*m_pilot)=0) % insert pilots if (sign=1) isignal=3*1.414;
26、qsignal=0; else isignal=-3*1.414; qsignal=0; end % sub-carrier polit scheme is bpsk stst=stst+1; else % 插入導頻信息 isignal = 2*(i1(l)*1+i2(l)*2)-3; qsignal = 2*(i3(l)*1+i4(l)*2)-3; l=l+1; end imapped(i)=isignal; qmapped(i)=qsignal; else % 中間查0的虛擬子載波沒有用戶信息 imapped(i)=0; qmapped(i)=0; end endif (rem(i,nff
27、t)=0) now_step = num2str(ii) sign=rem(sign+1,2); imappedfs(1:nfft)=imapped(i-nfft+1:i); qmappedfs(1:nfft)=qmapped(i-nfft+1:i); % 對頻域信息進行ifft變換,獲得時域信息 ifftouti(ii,1:nfft)=ifft(imappedfs,nfft); ifftoutq(ii,1:nfft)=ifft(qmappedfs,nfft); %ifftoutiq(ii,1:nfft)=ifftouti+j*ifftoutq; ifftoutiqs(ii,1:nfft)=i
28、fft(imappedfs(1:nfft)+j*qmappedfs(1:nfft),nfft); ifftoutiq(ii,1:nfft)=ifftoutiqs(ii,1:nfft); ii=ii+1;end;end; % end of fft symbol generationfor (ig=1:symbol_num) % 插入循環(huán)前綴 insertgiout(ig,1:nzero)=0; insertgiout(ig,ng+nzero+1:(ng+nfft+nzero)=ifftoutiq(ig,1:nfft); insertgiout(ig,nzero+1:(ng+nzero)=ifft
29、outiq(ig,(nfft-ng)+1:nfft); insertgiout(ig,(ng+nfft+nzero)+1:ntotal)=0; % 加窗處理 if(ig > 4) insertgiouta(ig,1:ntotal)=insertgiout(ig,1:ntotal); insertgiout(ig,1:ntotal)=insertgiouta(ig,1:ntotal).*wind; endfftout_t(ig,1:nfft)=fft(insertgiout(ig,ng+1-sita:nfft+ng-sita),nfft); % 進行中間變量的測試 % 將生成的ofdm時域
30、信號依次寫入一個數(shù)組里,形成一個連續(xù)的ofdm時域數(shù)據(jù)流 for (is=1:ntotal) souti(ig-1)*ntotal+is)=real(insertgiout(ig,is); soutq(ig-1)*ntotal+is)=imag(insertgiout(ig,is); end; end;% 對生成的ofdm時域信號進行兩倍上采樣% sample rate interpolation and modulationfor(k=1:ns) % hbf1 for j1=1:2 ihbf1in(2:lhbf1)=ihbf1in(1:lhbf1-1); qhbf1in(2:lhbf1)=q
31、hbf1in(1:lhbf1-1); if (j1=1) ihbf1in(1)=souti(k); qhbf1in(1)=soutq(k); else ihbf1in(1)=0; qhbf1in(1)=0; end; ihbf1out(k1)=2*ihbf1in*chbf1; qhbf1out(k1)=2*qhbf1in*chbf1; if (rem(k1,2*ntotal)=0)fftout_t_1(t,1:2*nfft)=fft(ihbf1out(k1-2*nfft+1-sita1:k1-sita1),2*nfft)+j*fft(qhbf1out(k1-2*nfft+1-sita1:k1-
32、sita1),2*nfft); t=t+1; end; k1=k1+1; end;% end of j1end; %end of k% modulation% 將基帶信號轉(zhuǎn)換成中頻信號m=2;nn=length(ihbf1out);phase0=pi/30;error_f=0;w=pi/m; % if=8*(symbol rate) or (sample rate)/4imod(1:nn)=0;qmod(1:nn)=0;modout(1:nn)=0;for i=1:nn imod(i)=cos(rem(i*w+phase0,2*pi)*ihbf1out(i); qmod(i)=-sin(rem(i*w
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)大全【人事管理】
- 三角形的面積推導課件
- 第4單元 民族團結與祖國統(tǒng)一 測試卷-2021-2022學年部編版八年級歷史下冊
- DBJT 13-317-2019 裝配式輕型鋼結構住宅
- 《電鍍錫工藝學》課件
- 2024年大學生攝影大賽活動總結
- 《焊接基本知識》課件
- 中小學家長會122
- 美術:源起與影響
- 醫(yī)療行業(yè)專業(yè)技能培訓體會
- 醫(yī)院后勤管理作業(yè)指導書
- 六年級下冊心理健康教育教案-8 男女生交往小鬧鐘遼大版
- 【課件】第五單元化學反應的定量關系新版教材單元分析九年級化學人教版(2024)上冊
- 國庫資金支付管理辦法
- 中醫(yī)調(diào)理理療免責協(xié)議書模板
- 小學二年級語文(人教版)下冊生字筆順
- 2024 錦綸深度報告:消費升級帶動需求增長原材料國產(chǎn)化促進產(chǎn)能釋放
- 外研版高一英語上學期必修1-2期末考試試卷
- 連鑄工職業(yè)技能大賽考試題庫500題(含各題型)
- 2024年執(zhí)法資格考試題庫(附答案)
- 激光切割機市場需求與消費特點分析
評論
0/150
提交評論