Danh mục

Báo cáo Hệ thống thu phát OFDM

Số trang: 10      Loại file: doc      Dung lượng: 636.00 KB      Lượt xem: 15      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Báo cáo tham khảo về Hệ thống thu phát OFDM sử dụng công nghệ DSP. Kỹ thuật OFDM (viết tắt của Orthogonal frequency-division multiplexing) là một trường hợp đặc biệt của phương pháp điều chế đa sóng mang, trong đó các sóng mang phụ trực giao với nhau, nhờ vậy phổ tính hiệu ở các sóng mang phụ cho phép chồng lấn lên nhau mà phía thu vẫn có thể khôi phục lại tín hiệu ban đầu.
Nội dung trích xuất từ tài liệu:
Báo cáo Hệ thống thu phát OFDMBÁO CÁO TỐT NGHIỆP Báo cáoHệ thống thu phát OFDM MỤC LỤCBÁO CÁO ....................................................................................................................... 31. Sơ đồ khối hệ thống ..................................................................................................... 32. Bên phát ...................................................................................................................... 43. QAMtrans(unsigned char * QamSymbolIn, CCHAR * QamSymbolOut, intQamsymbolLengh,int QamLevel) -> thực hiện ánh xạ QAM ........................................... 44. OrderPilotSymbol(PilotSymbolOrder, NullLow, NullHigh, IFFTLengh) ..................... 55. OrderDataSymhol(QamSymbolOut, ............. DataSymbolOrder, IFFTLengh, NullLow,NullHigh) 56. Bên thu ........................................................................................................................ 6 BÁO CÁO Hệ thống thu phát OFDM sử dụng công nghệ DSPSơ đồ khối hệ thống (Phần code lấy ở bản 28/2 nhận chính xác 100% của các anh K50)Bên phát a. Data2symbol(unsigned char * DataTrans, unsigned char * QamSymbolIn, int NumDataTrans, int QamLevel): NumDataTrans = 16 - Input: Mảng Char 8 bit (16 phần tử) - Output: Mảng đầu vào QAM (32 phần tử) Cách thực hiện: Input[k] gồm 8 bit vd: 10011010  Output[2k]= 1010 (lấy 4 bit thấp bằng cách lấy input[k] AND 00001111)  Output[2k+1] = 1001 (Lấy 4 bit cao bằng cách lấy kết quả của input[k] AND 11110000 đem dịch phải)  2 phần tử liên tiếp (output[k] & output[2k+1] chứa 1 kí tự kiểu Char)QAMtrans(unsigned char * QamSymbolIn, CCHAR * QamSymbolOut, intQamsymbolLengh,int QamLevel) -> thực hiện ánh xạ QAM - Input: Mảng QamSymbolIn gồm 32 phần tử 4bit  giá trị từ 0 -> 15  kiểu char không dấu. - Output: Mảng QamSymbolOut gồm 32 phần tử kiểu Cchar (Số phức ứng với các điểm trong chòm sao QAM)OrderPilotSymbol(PilotSymbolOrder, NullLow, NullHigh, IFFTLengh) IFFTLength =64  Tạo mảng PilotSymbolOrder gồm 64 phần tử kiểu Cint tạo thành 1 symbol Pilot trước khi biến đổi IFFT.  Mảng này không có NullLow & NullHighOrderDataSymhol(QamSymbolOut, DataSymbolOrder, IFFTLengh, NullLow,NullHigh) - Đầu tiên khởi tạo mảng 64 phần tử kiểu Cint gồm toàn phần tử {0,0} để đưa các phần tử NullLow & NullHigh vào vị trí - Sau đó chèn Data vào các vị trí còn lại Null Low Data NullHigh NullHigh Data NullLow 1 16 15 15 16 1 Tạo thành mảng DataSymbolOrder kiểu CIn chứa data trước khi đưa vào biến đổi IFFT b. IFFT - Đầu vào: Mảng PilotSymbolOrder & mảng DataSymbolOrder kiểu CIN (64 phần tử) - Đầu ra: Tương ứng là mảng OutIFFTPilot & mảng OutIFFTData kiểu CFLOAT (64 phần tử) c. InsertGard - Đầu vào: 64 phần tử mảng OutIFFTPilot or OutIFFTData. - Copy 32 phần tử cuối chèn vào phía đầu của mảng. - Đầu ra: 96 phần tử mảng SymbolOutPilot or SymbolOutData nnnbbbhhh. d. FramePack(SymbolOutPilot, SymbolOutData, gBufferXmtPong, NumDataofFrame, IFFTLengh + GardLengh)  Thực hiện đóng gói khung - Lần lượt 3 symbol (SymbolOutPilot – SymbolOutData – SymbolOutPilot) sẽ được đưa vào nửa trước bộ đệm gBufferXmtPing (hoặc gBufferXmtPong). - Khi đó mỗi phần tử của symbolOutPilot & symbolOutData sẽ được tách thành thực ảo rồi nhân với 10000 và làm tròn trước khi đưa vào bộ đệm. - Nửa bộ đệm còn lại là bản copy của nửa bộ đệm phía trước  Như vậy một MultiFrame sẽ bao gồm 2 Frame giống nhau.Bên thu a. SynFrameInReceiver(Int16 * DoubleFrame, int FFTLengh, int GardLengh, int NumDataofFrame)  Trả về điểm đồng bộ kiểu int o Đồng bộ thô  Tìm khoảng chứa điểm đồng bộChia dữ liệu nhận được ở bộ đệm bên thu thành các khối có chiều dài Lsymbol/2.Để đơn giản, ta coi các khối đó là một phần tử của mảng A i=0; MinSqr[0..5]=0 MinSqr[i]= ∑((A[i+2]-A[i])2) i=i+1 i 5 tìm min của Minsqr  i+2 là cửa sổ chứa điểm bắt đầu khung; TempPoint= (i+2)*ShiftLength o Đồng bộ tinh  Tìm điểm đồng bộ chính xác i=0; i=0; MinSqr[0..5]=0; MinSqr[0..5]=0; TempPoint < dịch TempPoint đi 1 độ dà ...

Tài liệu được xem nhiều: