freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的16qam調(diào)制解調(diào)電路設(shè)計畢業(yè)論文(編輯修改稿)

2024-07-24 17:27 本頁面
 

【文章內(nèi)容簡介】 字位寬范圍為0到16位,頻率字隨著CLK累加,即每個系統(tǒng)頻率上升沿,頻率字都會在相位累加器中累加一次。在DDS模塊中,采用系統(tǒng)時鐘10Mhz,由公式可知:但取頻率字為K=3239。b11001100110011001100110011001, fc=10MHZ, N=32時,可得到輸出的正余弦波的頻率為1MHz。對每一次的頻率字累加值,即相位累加器累加結(jié)果截取高8位輸出作為地址以查表的方法輸出兩路正交正弦波的二進制電平值。由公式可知頻率字越大,輸出正弦載波頻率越高,分辨率越低;頻率字越小,輸出正弦載波頻率越低,分辨率越高。 DDS正弦內(nèi)存單元對DDS模塊進行編譯仿真。 DDS仿真波形,相位差為的正交載波。兩個PAM信號分別調(diào)制同相和正交載波,每一個調(diào)制器有4種可能的輸出,經(jīng)線性加法器合并產(chǎn)生16QAM信號。DDS 和加法器模塊源代碼//DDS 和加法器模塊module add(clk_dds, //輸入信號時鐘rst,en,data, dataout,)。 //16QAM信號input rst,en,clk_dds。input [3:0] data。output signed[17:0] dataout。reg signed[16:0] csignal,ssignal。wire signed [15:0] cosine。 //cos值wire signed [15:0] sine。 //sin值wire [31:0] addra。 // DDS頻率字assign addra=39。b11001100110011001100110011001。assign dataout= {csignal[16],csignal}+ {ssignal[16],ssignal}。always @ (posedge clk_dds or posedge rst)begin if(rst) begin csignal = 0。 ssignal = 0。 end else begin case(data) 439。b0000: begin //2cos2sin csignal[16:1] = ~cosine[15:0]。 csignal[0] = 0。 ssignal[16:1] = ~sine[15:0]。 ssignal[0] = 0。 end 439。b0001: begin // 2cossin csignal[16:1] = ~cosine[15:0]。 csignal[0] = 0。 ssignal[16] = ~sine[15]。 ssignal[15:0] = ~sine[15:0]。 end 439。b0010: begin // 2cos+2sin csignal[16:1] = ~cosine[15:0]。 csignal[0] = 0。 ssignal[16:1] = sine[15:0]。 ssignal[0] = 0。 end 439。b0011: begin // 2cos+sin csignal[16:1] = ~cosine[15:0]。 csignal[0] = 0。 ssignal[16] = sine[15]。 ssignal[15:0] = sine[15:0]。 end 439。b0100: begin // cos2sin csignal[16] = ~cosine[15]。 csignal[15:0] = ~cosine[15:0]。 ssignal[16:1] = ~sine[15:0]。 ssignal[0] = 0。 end 439。b0101: begin // cossin csignal[16] = ~cosine[15]。 csignal[15:0] = ~cosine[15:0]。 ssignal[16] = ~sine[15]。 ssignal[15:0] = ~sine[15:0]。 end 439。b0110: begin// cos+2sin csignal[16] = ~cosine[15]。 csignal[15:0] = ~cosine[15:0]。 ssignal[16:1] = sine[15:0]。 ssignal[0] = 0。 end 439。b0111: begin // cos+sin csignal[16] = ~cosine[15]。 csignal[15:0] = ~cosine[15:0]。 ssignal[16] = sine[15]。 ssignal[15:0] = sine[15:0]。 end 439。b1000: begin // 2cos2sin csignal[16:1] = cosine[15:0]。 csignal[0] = 0。 ssignal[16:1] = ~sine[15:0]。 ssignal[0] = 0。 end 439。b1001: begin // 2cossin csignal[16:1] = cosine[15:0]。 csignal[0] = 0。 ssignal[16:1] = ~sine[15:0]。 ssignal[0] = 0。 end 439。b1010: begin //2cos+2sin csignal[16:1] = cosine[15:0]。 csignal[0] = 0。 ssignal[16:1] = sine[15:0]。 ssignal[0] = 0。 end 439。b1011: begin // 2cos+sin csignal[16:1] = cosine[15:0]。 csignal[0] = 0。 ssignal[16] = sine[15]。 ssignal[15:0] = sine[15:0]。 end 439。b1100: begin // cos2sin csignal[16] = cosine[15]。 csignal[15:0] = cosine[15:0]。 ssignal[16:1] = ~sine[15:0]。 ssignal[0] = 0。 end 439。b1101: begin // cossin csignal[16] = cosine[15]。 csignal[15:0] = cosine[15:0]。 ssignal[16] = ~sine[15]。 ssignal[15:0] = ~sine[15:0]。 end 439。b1110: begin // cos+2sin csignal[16] = cosine[15]。 csignal[15:0] = cosine[15:0]。 ssignal[16:1] = sine[15:0]。 ssignal[0] = 0。 end 439。b1111: begin // cos+sin csignal[16] = cosine[15]。 csignal[15:0] = cosine[15:0]。 ssignal[16] = sine[15]。 ssignal[15:0] = sine[15:0]。 end default: begin csignal = 0。 ssignal = 0。 end endcase endend dds ddsqam( .data(addra), .en(en), .reset(rst), .clk(clk_dds), .sine(sine), .cose(cosine) )。 Endmodule/////////////////////////////////////////////////////////////////module dds(data, en, clk, reset, sine, cose)。 /// DDS模塊input [31 : 0] data。 //頻率控制字input en。 //頻率控制字寫使能input clk。 input reset。 output signed[15 : 0] sine。 //正弦信號輸出output signed[15 : 0] cose。 //余弦信號輸出reg [31 : 0] ADD_A。 //正弦波產(chǎn)生模塊的相位累加器reg [31 : 0] ADD_B。 //余弦波產(chǎn)生模塊的相位累加器reg signed [15 : 0] cose_DR。 //余弦波的查找表地址reg signed [15 : 0] sine_DR。 wire [31 : 0] data。 //頻率控制字wire [9 : 0] ROM_A。wire signed [15 : 0] cose_D。wire signed [15 : 0]sine_D。assign cose = cose_DR。assign sine = sine_DR。assign ROM_A = ADD_B[31 : 22]。 begin if(reset) //系統(tǒng)初始化時,默認的頻率控制字為0 ADD_A = 0。 else if(en) ADD_A = data。 else ADD_A = ADD_A 。endalways @ (posedge clk or posedge reset)begin if(reset) ADD_B = 0。 else ADD_B = ADD_B + ADD_A。 //ADD_B為累加的結(jié)果endalways @ (posedge clk or posedge reset)begin if(reset) cose_DR = 0。 else cose_DR = cose_D。endalways @ (posedge clk or posedge reset)begin if(reset) sine_DR = 0。 else sine_DR = sine_D。end//調(diào)用兩個ROM,存儲著正余弦波形一個周期的數(shù)值。rom_cose cose1( .addra(ROM_A), .clka(clk), .douta(cose_D))。 rom_sine sine1( .addra(ROM_A), .clka(clk), .douta(sine_D))。endmodule module rom_sine( //產(chǎn)生sin信號模塊addra,clka,douta)。input clka。input [9:0] addra。output [15:0] douta。reg signed[15:0] douta。always @(posedge clka) begin case(addra)1039。d 1 : douta= 1639。d 1 。1039。d 2 : douta= 1639。d 1 。1039。d 3 : douta= 1639。d 2 。 …………………………endcaseend endmodulemodule rom_cose( //產(chǎn)生cos信號模塊addra,clka,douta)。input clka。input [9:0] addra。output [15:0] douta。reg signed[15:0] douta。always @(posedge clka) begin case(addra)1039。d 0 : douta=1639。d1 。1039。d 1 : douta=1639。d1 。1039。d 2 : douta=1639。d2 。1039。d 3 : douta=1639。d3 。103
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1