4pam调制与解调(matlab实现)
生活随笔
收集整理的這篇文章主要介紹了
4pam调制与解调(matlab实现)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
實(shí)驗原理
這是一種使用脈沖幅度調(diào)制技術(shù)的線路編碼。PAM4信號有四個電壓電平,每個幅度電平分別對應(yīng)邏輯比特00、01、10和11。換言之,PAM4編碼的每個符號由2個比特組成,它們對應(yīng)一個電壓電平,即幅度。
00對應(yīng)-3,01對應(yīng)-1,10對應(yīng)1,11對應(yīng)3
matlab代碼
clear all; close all; clc; %% 參數(shù)設(shè)置 N = 10;%碼元個數(shù) Fs = 500;%采樣速率 Ts = 1/Fs;%采樣間隔 Rs = 50;%碼元速率 UpSampleRate = Fs/Rs; RollOff = 0.25; Span = 6; Sps = UpSampleRate; SNR = 20; %% %%發(fā)射端 sys = randi([0,3],1,N);%生成符號序列 sys_4pam = sys*2-3;%4-pam調(diào)制 figure(1); subplot(2,1,1); stem(sys); title("原始符號序列"); subplot(2,1,2); stem(sys_4pam); title("4-pam調(diào)制后的結(jié)果"); %升采樣 sys_4pam_upsmp = zeros(1,N*UpSampleRate); sys_4pam_upsmp(1:UpSampleRate:end) = sys_4pam; %脈沖成形(rcosdesign) h = rcosdesign(RollOff,Span,Sps,'sqrt'); rcos_sys_4pam =conv(h,sys_4pam_upsmp); sendSig = rcos_sys_4pam; %脈沖成形(rectangle) rectangle_h = ones(1,UpSampleRate); rectangle_sys_4pam=conv(rectangle_h,sys_4pam_upsmp); figure(2); subplot(2,1,1); plot(rectangle_sys_4pam); title("方波脈沖成形"); subplot(2,1,2); plot(rcos_sys_4pam); title("升余弦滾降脈沖成形"); %% %%信道 recvSig = awgn(sendSig,SNR); %% %%接收端 %匹配濾波 h1 = rcosdesign(RollOff,Span,Sps,'sqrt'); recvSig_MF =conv(h1,recvSig); %抽樣量化 delay = Sps*Span; recvSig_MF_Option = recvSig_MF(delay:UpSampleRate:end);%recvSig_MF_Option向量前N個抽樣值為有用值,后面的為無用值 [index,recvSig_MF_Option_judge]= quantiz(recvSig_MF_Option(1:N),[-2 0 2],[-3 -1 1 3]);%量化%4-pam解調(diào) sys_4pam_demod = (recvSig_MF_Option_judge + 3)/2; figure(3); subplot(3,1,1); stem(recvSig_MF_Option); title("抽樣后的結(jié)果"); subplot(3,1,2); stem(recvSig_MF_Option_judge); title("量化后的結(jié)果"); subplot(3,1,3); stem(sys_4pam_demod); title("4pam解調(diào)的結(jié)果");運(yùn)行結(jié)果
最后我們看一下誤碼率:
syserr_prob=sum(abs(sys - sys_4pam_demod)>0)/length(sys)
總結(jié)
以上是生活随笔為你收集整理的4pam调制与解调(matlab实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ld-linux.so.2 重定向,2-
- 下一篇: VBA实现窗口登录