日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU)

發布時間:2025/1/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 一. 總體思路:
      • 二. 內容
        • 2.1 第一個實驗部分:2ASK (二進制幅度調制)
          • 2.1.1 2ASK
          • 2.1.2 信道
          • 2.1.3 符號解釋
          • 2.1.4 問題思考
        • 3.1 第二個實驗部分:2FSK (二進制頻率調制)
          • 3.1.1思路:
        • 4.1 第三個實驗部分:2PSK (二進制相位調制)
        • 5.1 第四部分 2DSK

一. 總體思路:

針對2ASK調制使用相干解調法:對整個過程進行分析
相比實驗二:數字基帶傳輸實驗(GZHU) 這里只是增加了調制和解調兩個部分,同時對于2ASK 這里選擇的碼型是單極性不歸零碼型;剩下的部分跟實驗二是一樣的;調制方法:包絡法和模擬相乘法進行調制和相干解調;

二. 內容

采用Matlab對數字調制解調系統進行搭建并仿真,基本參數設置如下:
? 1. 信源為長度N=1000的隨機“0”、“1”序列,發送端符號速率RB=1000Baud;
? 2. 基帶數字信號根據具體調制方式采用合適的基帶編碼;
? 3. 發送端的發送濾波器采用平方根升余弦濾波器,采樣頻率fs=16000Hz,滾降系數α=0.25,延遲delay=5;
? 4. 信道為awgn信道,信噪比snr=-5dB、5dB;
? 5. 接收端的低通濾波器采用平方根升余弦濾波器進行匹配濾波;
請實驗仿真并給出以下信息:、

  • 2ASK
    載波頻率fc=4000Hz
    (1) 發送端采用平方根升余弦脈沖成型后的時域和頻域波形;
    (2) 發送端進行2ASK調制后的時域和頻域波形;%
    (3) 接收端進行2ASK相干解調后的時域和頻域波形;
    (4) 接收端進行匹配濾波的時域和頻域波形;
    (5) 發送端輸入信號和接收判決器輸出的信號波形對比圖;
    (6) 誤碼率;
    (7) 分析接收端抽樣判決閾值的選取對誤碼率的影響。
    簡單實驗使用單極性不歸零碼型;
  • 2.1 第一個實驗部分:2ASK (二進制幅度調制)

    代碼:跟實驗二不同的是信號在輸入信道前進行調制,輸出信道后進行解調,剩下的都是跟實驗二一樣!

    2.1.1 2ASK
    fc = 4000; % 載波頻率% f_up = 2000 % 上分支載波頻率 % f_down = 4000 % 下分支載波頻率x_len = length(x_shaped); % 發送信號長度ln = 0:x_len - 1;t = ln/fs; % 時間t 2ASK調制cari_x = cos(2*pi*fc*t); % 載波 m_x_c = x_shaped .* cari_x; % 模擬相乘法進行調制
    2.1.2 信道
    m_x_c_n = awgn(m_x_c, snr, 'measured', 'db'); % 添加高斯白噪聲 1 相干解調 x_c_n = m_x_c_n .* cari_x; % 與同頻率相乘 .* 1 脈沖成型 res = conv(x_c_n, h_sqrt); % 接收端脈沖成型,濾波器還是使用平方根升余弦 1

    接收端同步抽樣

    % 抽樣同步 SynPosi = delay * oversamp * 2 + 1; % 兩個時延*過采樣率 SymPosi = SynPosi + (0:oversamp:(N-1) * oversamp); % 采樣點res_signl = res(SymPosi); % 接收端采樣信號判決 for i = 1:Nif res_signl(i) > 0.5res_match(i) = 1;elseif res_signl(i) <= 0.5res_match(i) = 0;end end

    計算誤碼率

    for i = 1:Nif res_match(i) ~= s_nrz(i)c_error = c_error endend
    2.1.3 符號解釋


    fc : 載波頻率
    cari_x : 載波
    m_x_c : 調制后信號
    m_x_c_n : 調制后信號在信道上添加高斯白噪聲
    x_c_n : 接收端解調后信號
    res : 經過卷積后的接收端信號,此時已經是低頻信號
    res_signl : 經過抽樣判決后的信號
    res_match: 接收通過判決匹配信號
    c_error : 錯誤碼元個數
    elv : 誤碼率

    2.1.4 問題思考
  • 基帶信號有碼間串擾,那么調制信道是否有碼間串擾?

    有,只要是帶限信道就會產生碼間串擾

  • 怎么避免碼間串擾呢?

  • 組成 一起就能避免碼間串擾!

  • 碼型的選擇?
  • 單極性不歸零碼

  • 為什么不選擇雙極性?
  • 因為如果選擇雙極性碼型的時候,表示0或者1的正弦波的幅度的絕對值是相等;而單極性表示0或者1的時候表示1是正弦波,表示0是0;

  • 載波的時候為什么使用 .*(點乘),而不使用(乘);
  • 這是因為載波的是將基帶信號搬移到載波頻譜上,所以是將每個基帶信號與載波對應元素進行相乘,而乘法是矩陣乘法,也就是mxn維度*nxm維度點乘是nxm維度*nxm維度


    6. 接受端解調

    解調方法:相干解調和包絡解調(以下是相干解調)

    就是將經過載波的信號通過相乘器(與載波信號(同頻同相)進行相乘),進行簡單的頻譜搬移,之后通過低通濾波器將高頻成分過濾,得到的就是基帶信號的低頻成分;

  • 抽樣判決的閾值的選擇
  • 選擇0.5,因為使用的是單極性碼元

    3.1 第二個實驗部分:2FSK (二進制頻率調制)

    3.1.1思路:

    • 2FSK = 2ASK + 2ASK

    4.1 第三個實驗部分:2PSK (二進制相位調制)

    在2ASP的基礎上進修改

    將2ASK的碼型由原來的單極性不歸零碼改為雙極性不歸零碼
    修改接受端的判別閾值有原來的0.5修改為0

    不發生倒pi現象:

    • 這是因為使用了雙極性不歸零碼的時候-1 會將同頻同相的載波在-1 的位置與1 進行倒置,得到的是相位的變化來表示原來的-1和1;

    不發生倒pi現象:

    • 將接收端載波在相位上偏移pi個單位,實現倒pi 效果

    carri_x_1 = cos(2 * pi * fc * t + pi); %接收端在倒pi現象

    對接收端載波進行一個pi相位的偏移部分代碼:

    ln = 0:length(x_shaped) - 1; t = ln / fs; carri_x_1 = cos(2*pi*fc*t + pi); % 接受端的載波比發送端的載波在時域上多個pi單位 發送端載波 cari_x = cos(2*pi*fc*t); x_c_n_1 = m_x_c_n .* carri_x_1; %乘以與發送端同頻不同相的載波 figure('name', '倒pi接收端'); subplot(2,1,1),plot(x_c_n_1); axis([0 800 -1 1]); %時域波形 title('----時域');f_x_c_n_1 = fft(x_c_n_1, N); %傅里葉變換 f_x_c_n_1_abs = abs(f_x_c_n_1); %取絕對值 subplot(2,1,2),plot(f,f_x_c_n_1_abs); %頻域波形 title('----頻域');%時域上卷積濾波 res1 = conv(x_c_n_1, h_sqrt); %頻域乘積,時域卷積 figure('name', '2PSK相干解調'); subplot(2,1,1),plot(res1);axis([0 800 -1 1]); %接收端時域波形 title('----倒π時域');f_res1 = fft(res1, N); %傅里葉變換 f_res1_abs = abs(f_res1); %取絕對值 subplot(2,1,2),plot(f,f_res1_abs); title('----倒π頻域'); grid on;%接收端同步 res_signal1 = res1(SymPosi); %倒π現象%接收端采樣 res_match1 = zeros(length(res_signal1)); %初始化一個長度為 N 的全零數組,存放接收端抽樣判決得到的碼元 for i = 1:Nif res_signal1(i) > 0res_match1(i) = 1;elseif res_signal1(i) <= 0res_match1(i) = -1;end endfigure('name', '----2PSK匹配波形'); subplot(2,1,1),stem(D_x);axis([0 100 -1 1]); title('----原始波形'); subplot(2,1,2),stem(res_match1);axis([0 100 -1 1]); title('----2PSK抽樣判決波形'); RecBit2 = zeros(N); %誤碼率 error = 0;%求誤碼率方法1 % for j = 1:N % if RecBit2(j) ~= D_x(j) % error = error + 1; % end % end % elv1 = error / N; %sprintf('誤碼率:%0.5f% ',elv1);% 方法2: [error, radio] = symerr(RecBit2,D_x)sprintf('錯誤碼元數量:%d ',error); sprintf('誤碼率:%0.5f%',radio);

    5.1 第四部分 2DSK

    實驗完整代碼:后續…

    【2ASK】:https://download.csdn.net/download/zcw1234515/19547248
    【2FSK】:https://download.csdn.net/download/zcw1234515/19547258
    【2PSK】:https://download.csdn.net/download/zcw1234515/19547270
    github[本來先把代碼放github避免下載花積分,后來知道原來可以把下載積分設置為0]
    參考文獻:
    [1] 基于MATLAB仿真的模擬乘法器AM波分析
    [2]講解傅里葉變換的知乎

    總結

    以上是生活随笔為你收集整理的【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。