基于matlab的多路BPSK调制—为什么采样率=码元速率x一个码元周期内对码元的采样点数

一、为什么“fs = Rb x N”

       其中, Rb(码元速率)、fs(采样率)、N(一个码元周期内对码元的采样点数)

        先说结论,因为调制时,信源序列与调制信号(正弦信号)的点数必须一样,尤其是多路信源序列一起调制时,因为最终的已调信号储存在一个矩阵的不同行里,而矩阵不同行的列数必须一样,也就是说不同码元速率的码元系列,最终的采样点数都是一样的。

二、对码元速率分别为1Msymbol/s、2Msymbol/s 4Msymbol/s 和5Msymbol/s的信源经过汉明编码后序列进行调制

采样率(fs)、每个码元上的采样点数(N)和码元速率(Rb)直接的关系是:

                              fs = Rb x N

    由实验要求我们可以知道:

    Rb = 1 / 2 / 4 / 5 Msybol/s;

    下面表格是采样率fs、码元速率Rb、不同码元速率序列的码元采样点数N和载波频率f的大小:

信源序列

fs

扫描二维码关注公众号,回复: 14972292 查看本文章

Rb

N

f

1、

1000 MHz

1 Msymbol/s

1000

90 MHz

2、

2000 MHz

2 Msymbol/s

1000

100 MHz

3、

4000 MHz

4 Msymbol/s

1000

110 MHz

4、

5000 MHz

5 Msymbol/s

1000

120 MHz

(1).观察4路已调信号

Figure1:码元速率为1Msymbol/s的信源序列经汉明码编码后波形及已调信号波形:

    Figure2:码元速率为2 Msymbol/s的信源序列经汉明码编码后波形及已调信号波形:

    Figure3:码元速率为4 Msymbol/s的信源序列经汉明码编码后波形及已调信号波形:

    Figure4:码元速率为5 Msymbol/s的信源序列经汉明码编码后波形及已调信号波形:

Figure5:4路信源序列编码后波形与调制后已调信号波行:

           

代码:

clc;
clear;
close all;
%% 信源产生序列
m=zeros(4,100);%m是一个4行100列的矩阵
for i = 1:4
    m(i,:)=randi([0,1],1,100);%m的每一行都是一组长度为100的随机序列
end
%% 信道编码
%使用MATLAB实现(7,4)汉明码编码
n=7;%码长
k=4;%信息位长
A=[1 1 1; 1 1 0;1 0 1;0 1 1];
%A代表了监督关系,监督关系是
%code(5)=code(1)^code(2)^code(3)
%code(6)=code(1)^code(2)^code(4)
%code(7)=code(1)^code(3)^code(4)
G=[eye(k) A];%生成矩阵
H=[A'  eye(n-k) ];%校验矩阵
%编码
code = zeros(4,175); %对于编码后序列进行定义
A=[0 0 0 0];
for i = 1:4
    for j = 1:4:100
        A=[m(i,j),m(i,j+1),m(i,j+2),m(i,j+3)];%将每路信源序列分成四个一组,作为信息位。
        A=mod(A*G , 2); %进行编码,四位的信息位变成七位的汉明码序列。
        for z = 1:7:175
            code(i,z)   = A(1);%对编码后的汉明码序列赋值给code
            code(i,z+1) = A(2);
            code(i,z+2) = A(3);
            code(i,z+3) = A(4);
            code(i,z+4) = A(5);
            code(i,z+5) = A(6);
            code(i,z+6) = A(7);
        end
    end
end

%% DBPSK调制
Rb = [1000000,2000000,4000000,5000000];%四路码元系列的码元速率,单位为sybol/s
fs = [1000000000,2000000000,4000000000,5000000000];%采样频率,单位为Hz;
N = 1000;%每个码元上的采样点数
total_t = 175 ./ Rb ;%总时间,传输完175个码元的时间。
f = [90000000,105000000,110000000,120000000];%载波频率,单位为Hz
M = 175;%汉明码长度
signal_DBPSK=zeros(4,N*M);
for i = 1:4
    t = 0:1/fs(i):total_t(i)-1/fs(i);%采样序列定义
    %对码元系列采样
    fz=ones(1,N); %定义复制的次数N,N为每码元的采样点数
    code_lone = code(i,:); 
    x1=code_lone(fz,:);   %复制的第1行复制N次
    dnrz=reshape(x1,1,N*M);   %产生单极性不归零矩形脉冲波形
    snrz=2*dnrz-1;   %产生双极性不归零矩形脉冲波形
    signal_tiaozhi = sin(2*pi*f(i)*t);%调制信号
    signal_DBPSK(i,:) = snrz.* signal_tiaozhi;%调制,产生已调信号。
    figure;
    subplot(211);
    plot(t,snrz),axis([0,0.0000008 -1.2 1.2]),title('汉明码双极性不归零脉冲波形'),
    xlabel('t/s'),ylabel('幅度');
    subplot(212);
    plot(t,signal_DBPSK(i,:)),axis([0,0.0000008 -1.2 1.2]),title('已调信号时域波形'),
    xlabel('t/s'),ylabel('幅度');
end

猜你喜欢

转载自blog.csdn.net/marujie123/article/details/122071607