精华内容
下载资源
问答
  • 基于Matlab的信源编码实验系统的设计.pdf
  • TETRA信源编码系统的研究及其在DSP上的优化实现、电子技术,开发板制作交流
  • 信源编码信源编码是一种以提高通信有效性为目的而对信源符号进行的变换,或者说为了减少或消除信源利余度而进行的信源符号变换。具体说,就是针对信源输出符号序列的统计特性来寻找某种方法,把信源输出符号序列变换...
  • 信源的数字化与压缩系统评价
  • 信源编码作为数字电视系统的核心构成部分,直接决定了数字电视的基本格式及其信号编码效率,决定了数字电视最终如何在实际的系统中实现。为了减少信源输出符号序列中的剩余度、提高符号的平均信息量,对信源输出的...
  • 本文以MPEG-2编码标准为主,谈信源编码、复用技术在有线数字电视系统中的应用。
  • 自主搭建直播信源组播流节目自动化采集系统.pdf
  • 电信设备-直接式卫星导航信源鉴别系统.zip
  • FPGA的信源系统复合加密技术及其应用.pdf
  • 描述播控系统中的几大系统之间的接口、流程,开机、注入、播放、用户管理、产品管理等。
  • 行业资料-电子功用-数字电视信源防非监控系统
  • #资源达人分享计划#
  • matlab绘制三元信源的熵的代码 兰州大学我的计算机本科课程和选修课 我的代码及答案 这个仓库提供的内容旨在帮助那些在学习过程中遇到困难的课程学习者。作业和答案由本人做出。 网络共享选修课来源为 上由兰州大学...
  • 信源编码 数字通信系统 为什么可以压缩 怎样选择编码技术
  • 数字视频技术广泛应用于通信、计算机、广播电视等领域, 带来了会议电视、可视电话及数字电视、媒体...下面就长治微波站在数字微波传输系统改造后, 探讨EN2200- M型编码器及数字电视信源编解码技术和应用。  1 数字电
  • 超详细的8psk调制解调通信系统讲解与仿真

    万次阅读 多人点赞 2019-04-25 14:09:00
    3.要想把通信专业学好的话,脑子里首先要有一个通信系统的全过程,从信源开始到信宿结束。但是在课本的系统框图中,有些模块在一般情况下并用不上。比如信道编码、信源编码、加密、解密等等。在本篇仿真过程中不涉及...

    原文链接:(更多文章移步链接)

    贼详细的8PSK调制与解调详细过程 - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/47258287

    一、关于

    1.花了几天写了一个8PSK调制的MATLAB程序,从产生序列到最后解调出原始信号。

    2.我在网上查资料的时候发现并没有详细的一个调制完整过程,于是我把写的完整过程贴出来。

    3.要想把通信专业学好的话,脑子里首先要有一个通信系统的全过程,从信源开始到信宿结束。但是在课本的系统框图中,有些模块在一般情况下并用不上。比如信道编码、信源编码、加密、解密等等。在本篇仿真过程中不涉及这几个模块,等有时间再额外写。而且在实际中又会涉及到源信息频率与发射设备所支持的频率不一致,这又如何解决?

    4.通信专业要学的真是太多了,想总结出来十分困难,在实现通信系统的每一步都涉及到很多技术,如采样、滤波、调制、同步(非常重要,但又十分难)、解调等等,而且还挺难,因为经历过这个过程,所以在本文中,尽量把涉及到的原理都解释一下。

     

    5.其实这个过程很简单,主要是加深对通信系统的了解。

     

    6.、、、、、、还不知道6写啥

    二、程序中未涉及到但是不得不知的一些知识点

    1. matlab信号处理工具规定单位频率为奈圭斯特频率(采样频率的一半),所以基本的滤波器设计函数的截止频率参数均以奈圭斯特频率为基准做归一化。例如,对于一个采样频率为1000Hz的系统,300Hz则对应300/500=0.6。若要将归一化频率转换为单位圆上的弧度,则将归一化值乘以π(pi)即可。

     

    2. 尽量对基带信号进行编码(本文使用的格雷码),对解决误比特率问题效果很好,在仿真过程中未编码之前百分之3左右,编码后为0。

     

    3. 数字通信系统中,由于总的传输特性不理想,会使传输波形产生畸变,会引起幅度失真和相位失真,表现为连续传输的脉冲波形会受到破坏,使得接收端前后脉冲不再能清晰的分开,也就是产生了码间串扰。时域中,抽样时刻无码间串扰的条件为,抽样时刻仅存在当前码元的抽样值,不存在历史时刻码元抽样值的加权值。

    在实际的传输系统中,很少利用方波作为基带脉冲波形,因为基带脉冲波形的功率谱形状为 Sa(f)形状,旁瓣功率大,容易对其他频带产生干扰, 也容易失真。这就需要对基带脉冲进行成型,来压缩带宽,但是由于压缩了带宽必然会带来时域信号的延长,这是无可避免的。 奎斯特第一准则告诉我们,理想成型滤波器是矩形成型滤波器,它是物理无法实现的,但我们并不为此感到失望,因为其频率响应没有过渡带,这导致了其冲击响应为 Sa(t)形式,拖尾严重,在位定时信息不精准的情况下,会引入较大的码间串扰值。

    在实际中最常用的成型滤波器为升余弦成型滤波器,它具有平滑的特性,拖尾幅度较小, 可以使得在对当前码元抽样时,免受码元串扰值的影响,同时在位定时不精准的情况下,由抽样引入的码间串扰值减小,增加了系统的可靠性,但滚降因子越大,会造成调制之后的信噪比(SNR)降低。为了降低滤波器的设计复杂度,升余弦成型滤波器的设计通常设计为匹配滤波器,也就是在发射端设置一个均方根升余弦滤波器,接收端同样地设置一个均方根升余弦滤波器,接收端的均方根升余弦滤波器的频率响应为发射端的共轭。在基带通信系统中,在满足无码间串扰的条件下,经过理想成型的频带利用率和经过升余弦程序的频带利用率的极值分别为: 2(Baud/Hz/s)和 2/(1+a)(Baud/Hz/s)。其中a为滚降因子。

     

    4. 升余弦滤波器:

    b = rcosdesign(beta,span,sps,shape)

    beta: 滚降系数,取值0~1之间,决定频宽和陡峭程度。取值一般大于0.2。

    span: 表示截断的符号范围。

    sps: 单个符号范围的采样个数。

    shape:可选参数。可不加,可加上'normal',可加上'sqrt'。

    当选择'sqrt'时,返回一个平方根升余弦滤波器。

    使用示例:

    d = 2 * randi([0 1], 20, 1) - 1;
    h = rcosdesign(rolloff,span,sps);
    x=conv(d,h,'same');
    

     

    5. 低通滤波器

    fir1是用窗函数法设计线性相位FIRDF的工具箱函数,以实现线性相位FIRDF的标准窗函数法设计。

    b=fir1(n,wn);

    b=fir1(n,wn,'ftype');

    b=fir1(n,wn,'ftype',window);

    %b为滤波器系数,n为滤波器阶数,wn为截止频率,当指定ftype时,可设计高通和带阻滤波器。ftype=high时设计高通,低通和带通无需输入ftype。

    程序中使用的是y_de7=fir1(127,1/10);

    使用示例:

    y_de7=fir1(127,1/10);
    sit_1600k_f=conv(sit_1600k,y_de7,'same');
    

    至于如何设计滤波器,这里不赘述,可以看看其他篇。

     

    6.成形滤波、匹配滤波器、均衡滤波器

    是什么呢?作用是干嘛的?

    6.1 成形滤波:

    1.作用是保证采样点不失真。如果没有它,那信号在经过带限信道后,眼图张不开,ISI非常严重。

    2.位置在基带调制之后在载波调制之前,仅挨着载波调制

    3.总之,一般是用的升余弦滤波器,就是在基带信号产生后用,参考程序食用。

    6.2 匹配滤波器

    1.目标:在存在高斯白噪声的条件下使已知信号的信噪比最大。

     

    2.适用于具有任意参数(如振幅、到达时间)的已知信号,可以看作与信号的已知形状匹配的模板。

     

    3.一般滤波器的目标是尽量保持有用信号的时域或频域结构,而匹配滤波器则通过集中与之相匹配的信号能量来改变信号的时间结构,并在输出码元的末端获得振幅最大值。

     

    4.实现:用输入信号与参考信号相关,选出匹配程度最大的信号。

    6.3 均衡滤波器

    1.作用是保证采样点不失真。如果没有它,那信号在经过带限信道后,眼图张不开,ISI非常严重。

     

    2.位置在基带调制之后在载波调制之前,仅挨着载波调制

    6.4 带通滤波器

    6.5 低通滤波器

     

    7. MATLAB提供了非常多的函数,多了解了解,能省去不少事。具体看看程序中使用的。

     

    三、通信系统框图以及相应的原理

    1.完整的通信系统框图

    一个完整的通信系统框图,圆框中的一般用不上

    2. 8PSK调制的框图

    8PSK调制的框图

    2.1 首先8PSK需要3bit来表示,按照格雷码的顺序,分别映射到坐标中的8个点,如下图:

    将每个码元映射到8PSK星座图的每一个相位点上,既得到对应的I路和Q路信号,即x、y轴坐标。如(0 0 0)对应的坐标就是(0.924 0.383)

    然后坐标 g_{k} 可以写成复数形式 g_{k}=x_{k}+jy_{k} 。于是:

    2.2 调制原理:

    看出来了吗,这样就将载波函数利用上了,在调制过程中只要I路和Q路的信号分别去乘再相加就解决了。注意sin函数前面有个负号。

    2.3 解调原理

    只要把已调信号再乘一遍载波,得到上式,看到了吗,如果在经过一个低通滤波器,就可以把原信号滤出来了。不过要注意系数这里除以2 ,在程序中乘以2 就解决了。

    四、 如何改变采样频率

    在实际中可能涉及到源信号的频率与发射设备不匹配的问题。比如我源信息的频率是16k但是发射设备支持的频率是250M,这就需要对信号的采样率进行调整。即抽取和插值。

    1.1 抽取

    (为什么先滤波再抽取 ,先插值再滤波?时间有限,可看看书上这一部分)???????

    1.1.1先滤波再抽取

    时域中研究

    h(n)为一理想低通滤波器:

    滤波后的输出为:

    对v(n)抽取后的序列为y(n) :

     

    频域中研究

    在(-π/M~π/M)内, 抽取后信号的频谱与原信号频谱只是幅度相差M倍

    1.1.2 画图理解

    将x(n)中每M个点中抽取一个,依次组成一个新的序列y(n),即:

    y(n)和x(n)的DTFT有如下关系:

    含意:将信号x(n)作M倍的抽取后,所得信号y(n)的频谱等于原信号x(n)的频谱先作M倍的扩展,再在ω轴上每隔 \frac{2\pi}{M} 作移位后再迭加。

    抽样之前,保证f(s)>2f(c);就可以保证信号不发生混叠!对于抽样之后的系统,只要保证f(s)>2Mf(c),同样系统也不会发生混叠现象。

    注意:若M是可变的,为防止抽取后在出现混迭,应对x(n)抽取前先作低通滤波,压缩其频带。

    1.2 插值(先插值再滤波)

    1.2.1 画图理解插值

    将x(n)中每两个点之中补L-1个0,组成一个新的序列v(n),即:

    插零后的信号及其频谱:

    插零后信号的频谱V(jω)在(-π/L~π/L)内等于X(ejω),相当于将X(ejω)作了周期压缩。换句话说,就是V(jω)在(-π~π)内包含了L个X(jω)的压缩样本。

    1.2.2 先插值再滤波

    频域中研究

    实际实现插值的方法是用v(n)和一低通滤波器作卷积 :

    所以应取c=L以保证y(n)=x(n/L) 。

    时域中研究

    注意:插值时补进来的零,不再是零此时再进行低通滤波,无非是想将我们的信号频谱恢复出来

    3.3 抽取与插值相结合的抽样率转换

    注意滤波器的使用和位置

    该滤波器既去除了插值后的映像又防止了抽取后的混迭。

    五、贴程序(具体看注释,仿真图就不放了,图太多)

    %% 8PSK 基本参数

    clc
    clear all
    close all
    Fc=700e6;%Fc载波频率
    

    %% 基带信号

    data_num=300;
    data = randint(1,data_num); %产生1行300列的矩阵,元数为0-1之间的随机数,包括0和1
    figure(1)
    subplot(211)
    plot(data);title('原始基带信号')%以data分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线
    ts=0:1:length(data)-1;
    subplot(212)
    stem(ts,data);title('原始基带信号');%“有时间向量的话,序列是冲激”
    

    %% 8psk调制

    fs_16k=16e3;%假设最开始采样频率是16e3
    it=[];qt=[];
    sit=[];sqt=[];
    for i=1:3:length(data)
        I(i) = data(i); 
        Q(i+1) = data(i+1);
        U(i+2) = data(i+2);   
        if I(i)==0 && Q(i+1)==0 && U(i+2)==0
            it=0.924*ones(1,1);%1行1列的全为1的矩阵
            qt=0.383*ones(1,1);
           
        elseif I(i)==0 && Q(i+1)==0 && U(i+2)==1
            it=0.383*ones(1,1);
            qt=0.924*ones(1,1);
           
        elseif I(i)==0 && Q(i+1)==1 && U(i+2)==1
            it=-0.383*ones(1,1);
            qt=0.924*ones(1,1);
           
        elseif I(i)==0 && Q(i+1)==1 && U(i+2)==0
            it=-0.924*ones(1,1);
            qt=0.383*ones(1,1);
         
        elseif I(i)==1 && Q(i+1)==1 && U(i+2)==0
            it=-0.924*ones(1,1);
            qt=-0.383*ones(1,1);
          
        elseif I(i)==1 && Q(i+1)==1 && U(i+2)==1
            it=-0.383*ones(1,1);
            qt=-0.924*ones(1,1); 
            
        elseif I(i)==1 && Q(i+1)==0 && U(i+2)==1 
            it=0.383*ones(1,1);
            qt=-0.924*ones(1,1);
           
        elseif I(i)==1 && Q(i+1)==0 && U(i+2)==0
            it=0.924*ones(1,1);
            qt=-0.383*ones(1,1);
           
        end
       sit=[sit it]; sqt=[sqt qt];
    end %映射
    figure(2)
    subplot(221)
    plot(sit);title('i路信号')
    subplot(222)
    plot(sqt);title('q路信号')
    subplot(223)
    plot(-fs_16k/2:fs_16k/length(sit):fs_16k/2-fs_16k/length(sit),fftshift(abs(fft(sit))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图')
    subplot(224)
    plot(-fs_16k/2:fs_16k/length(sqt):fs_16k/2-fs_16k/length(sqt),fftshift(abs(fft(sqt))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图')
    
    figure(3)
    scatter(sit,sqt);%星座图
    grid on
    

    %% 提高采样频率16k-160k,(插值:先插后滤,抽取:先抽后滤)

    fs_160k=160e3;
    sit_160k=upsample(sit,10);
    sqt_160k=upsample(sqt,10);
    
    beta=0.4;%r=0时是矩形
    span=length(sit_160k);
    sps=10;
    h = rcosdesign(beta,span,sps);
    sit_160k_f=conv(sit_160k,h,'same');
    sqt_160k_f=conv(sqt_160k,h,'same');
    
    figure(4)
    subplot(221)
    plot(sit_160k_f);title('10倍插值i路')
    subplot(222)
    plot(sqt_160k_f);title('10倍插值q路')
    subplot(223)
    plot(-fs_160k/2:fs_160k/length(sit_160k_f):fs_160k/2-fs_160k/length(sit_160k_f),fftshift(abs(fft(sit_160k_f))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(升余弦)')
    subplot(224)
    plot(-fs_160k/2:fs_160k/length(sqt_160k_f):fs_160k/2-fs_160k/length(sqt_160k_f),fftshift(abs(fft(sqt_160k_f))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(升余弦)')
    

    %% 160k-1600k,插值:先插后滤,抽取:先抽后滤

    fs_1600k=1600e3;
    sit_1600k=upsample(sit_160k_f,10);
    sqt_1600k=upsample(sqt_160k_f,10);
    
    y_de7=fir1(127,1/10);
    sit_1600k_f=conv(sit_1600k,y_de7,'same');
    sqt_1600k_f=conv(sqt_1600k,y_de7,'same');
    
    figure(5)
    subplot(221)
    plot(sit_1600k_f);title('100倍插值i路')
    subplot(222)
    plot(sqt_1600k_f);title('100倍插值q路')
    subplot(223)
    plot(-fs_1600k/2:fs_1600k/length(sit_1600k_f):fs_1600k/2-fs_1600k/length(sit_1600k_f),fftshift(abs(fft(sit_1600k_f))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_1600k/2:fs_1600k/length(sqt_1600k_f):fs_1600k/2-fs_1600k/length(sqt_1600k_f),fftshift(abs(fft(sqt_1600k_f))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)');
    

    %% 1600k-16M,插值:先插后滤,抽取:先抽后滤

    fs_16M=16e6;
    sit_16M=upsample(sit_1600k_f,10);
    sqt_16M=upsample(sqt_1600k_f,10);
    
    y_de7=fir1(127,1/10);
    sit_16M_f=conv(sit_16M,y_de7,'same');
    sqt_16M_f=conv(sqt_16M,y_de7,'same');
    
    figure(6)
    subplot(221)
    plot(sit_16M_f);title('1000倍插值i路')
    subplot(222)
    plot(sqt_16M_f);title('1000倍插值q路')
    subplot(223)
    plot(-fs_16M/2:fs_16M/length(sit_16M_f):fs_16M/2-fs_16M/length(sit_16M_f),fftshift(abs(fft(sit_16M_f))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_16M/2:fs_16M/length(sqt_16M_f):fs_16M/2-fs_16M/length(sqt_16M_f),fftshift(abs(fft(sqt_16M_f))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)');
    

    %% 16M-25M,由于原始采样频率与信道传输需要的采样频率不一致,故需要变频。

    fs_25M=25e6;
    %resample为信号降采样处理,理解如下:B=resample(x,90,250); 
    % 采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
    sit_25M=resample(sit_16M_f,25,16);
    sqt_25M=resample(sqt_16M_f,25,16);
    
    figure(7)
    subplot(221)
    plot(sit_25M);title('25/16倍插值i路')
    subplot(222)
    plot(sqt_25M);title('25/16倍插值q路')
    subplot(223)
    plot(-fs_25M/2:fs_25M/length(sit_25M):fs_25M/2-fs_25M/length(sit_25M),fftshift(abs(fft(sit_25M))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_25M/2:fs_25M/length(sqt_25M):fs_25M/2-fs_25M/length(sqt_25M),fftshift(abs(fft(sqt_25M))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)')
    

    %% 25M-250M

    fs_250M=250e6;
    %resample为信号降采样处理,理解如下:B=resample(x,90,250); 
    % 采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
    sit_250M=upsample(sit_25M,10);
    sqt_250M=upsample(sqt_25M,10);
    
    y_de7=fir1(127,1/10);
    sit_250M_f=conv(sit_250M,y_de7,'same');
    sqt_250M_f=conv(sqt_250M,y_de7,'same');
    
    figure(8)
    subplot(221)
    plot(sit_250M_f);title('10倍插值i路')
    subplot(222)
    plot(sqt_250M_f);title('10倍插值q路')
    subplot(223)
    plot(-fs_250M/2:fs_250M/length(sit_250M_f):fs_250M/2-fs_250M/length(sit_250M_f),fftshift(abs(fft(sit_250M_f))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_250M/2:fs_250M/length(sqt_250M_f):fs_250M/2-fs_250M/length(sqt_250M_f),fftshift(abs(fft(sqt_250M_f))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)')
    

    %% 带通调制

    fs_250M=250e6;
    T=length(sqt_250M_f);%T=
    t=0 : 1/fs_250M :T/fs_250M - 1/fs_250M;%fs = 100
    % c=exp(j*2*pi*Fc*t);	%载波信号,Fc=70e6
    c1=cos(2*pi*Fc*t);	%同相载波
    c2=-sin(2*pi*Fc*t);	%正交载波	
    psk8 = sit_250M_f.*c1 + sqt_250M_f.*c2;
    figure(9),
    % subplot(221);plot(t,c);title('载波信号')
    subplot(221);plot(t,c1);title('同相载波')
    subplot(222);plot(t,c2);title('正交载波')
    subplot(223);plot(t,psk8);	title('已调信号')
    subplot(224);
    plot(-fs_250M/2:fs_250M/length(psk8):fs_250M/2-fs_250M/length(psk8),fftshift(abs(fft(psk8))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('已调信号频谱图')
    

    %% 解调

    fs_250M=250e6;
    rit_250M_de=2*psk8.*c1;
    rqt_250M_de=2*psk8.*c2;
    y_de7=fir1(127,1/10);
    rit_250M_f=conv(rit_250M_de,y_de7,'same');
    rqt_250M_f=conv(rqt_250M_de,y_de7,'same');
    figure(10)
    subplot(221)
    plot(rit_250M_f);title('I路解调信号')
    subplot(222)
    plot(rqt_250M_f);title('Q路解调信号')
    subplot(223)
    plot(-fs_250M/2:fs_250M/length(rit_250M_f):fs_250M/2-fs_250M/length(rit_250M_f),fftshift(abs(fft(rit_250M_f))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路解调信号频谱图(低通)')
    subplot(224)
    plot(-fs_250M/2:fs_250M/length(rqt_250M_f):fs_250M/2-fs_250M/length(rqt_250M_f),fftshift(abs(fft(rqt_250M_f))));
    xlabel('Frequency(Hz)');
    title('Q路解调信号频谱图(低通)')
    

    %% 250M-25M,插值:先插后滤,抽取:先滤后抽

    fs_25M=25e6;
    %resample为信号降采样处理,理解如下:B=resample(x,90,250); 
    % 采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
    y_de7=fir1(127,1/10);
    rit_250M_f1=conv(rit_250M_f,y_de7,'same');
    rqt_250M_f1=conv(rqt_250M_f,y_de7,'same');
    
    rit_25M=downsample(rit_250M_f1,10);
    rqt_25M=downsample(rqt_250M_f1,10);
    
    figure(11)
    subplot(221)
    plot(rit_25M);title('10倍抽取i路')
    subplot(222)
    plot(rqt_25M);title('10倍抽取q路')
    subplot(223)
    plot(-fs_25M/2:fs_25M/length(rit_25M):fs_25M/2-fs_25M/length(rit_25M),fftshift(abs(fft(rit_25M))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_25M/2:fs_25M/length(rqt_25M):fs_25M/2-fs_25M/length(rqt_25M),fftshift(abs(fft(rqt_25M))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)')
    

    %% 25M-16M,插值:先插后滤,抽取:先滤后抽

    fs_16M=16e6;
    %resample为信号降采样处理,理解如下:B=resample(x,90,250); 
    % 采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
    % y_de7=fir1(127,1/10);
    % rit_25M_f=conv(rit_25M,y_de7,'same');
    % rqt_25M_f=conv(rqt_25M,y_de7,'same');
    
    rit_16M=resample(rit_25M,16,25);
    rqt_16M=resample(rqt_25M,16,25);
    
    figure(12)
    subplot(221)
    plot(rit_16M);title('10*25/16倍抽取i路')
    subplot(222)
    plot(rqt_16M);title('10*25/16倍抽取q路')
    subplot(223)
    plot(-fs_16M/2:fs_16M/length(rit_16M):fs_16M/2-fs_16M/length(rit_16M),fftshift(abs(fft(rit_16M))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_16M/2:fs_16M/length(rqt_16M):fs_16M/2-fs_16M/length(rqt_16M),fftshift(abs(fft(rqt_16M))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)')
    

    %% 16M-1600k,插值:先插后滤,抽取:先滤后抽

    fs_1600k=1600e3;
    %resample为信号降采样处理,理解如下:B=resample(x,90,250); 
    % 采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
    y_de7=fir1(127,1/10);
    rit_16M_f=conv(rit_16M,y_de7,'same');
    rqt_16M_f=conv(rqt_16M,y_de7,'same');
    
    rit_1600k=downsample(rit_16M_f,10);
    rqt_1600k=downsample(rqt_16M_f,10);
    
    figure(13)
    subplot(221)
    plot(rit_1600k);title('10倍抽取i路')
    subplot(222)
    plot(rqt_1600k);title('10倍抽取q路')
    subplot(223)
    plot(-fs_1600k/2:fs_1600k/length(rit_1600k):fs_1600k/2-fs_1600k/length(rit_1600k),fftshift(abs(fft(rit_1600k))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_1600k/2:fs_1600k/length(rqt_1600k):fs_1600k/2-fs_1600k/length(rqt_1600k),fftshift(abs(fft(rqt_1600k))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)')
    

    %% 1600k-160k,插值:先插后滤,抽取:先滤后抽

    fs_160k=160e3;
    %resample为信号降采样处理,理解如下:B=resample(x,90,250); 
    % 采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
    y_de7=fir1(127,1/10);
    rit_160k_f=conv(rit_1600k,y_de7,'same');
    rqt_160k_f=conv(rqt_1600k,y_de7,'same');
    
    rit_160k=downsample(rit_160k_f,10);
    rqt_160k=downsample(rqt_160k_f,10);
    
    figure(14)
    subplot(221)
    plot(rit_160k);title('10倍抽取i路')
    subplot(222)
    plot(rqt_160k);title('10倍抽取q路')
    subplot(223)
    plot(-fs_160k/2:fs_160k/length(rit_160k):fs_160k/2-fs_160k/length(rit_160k),fftshift(abs(fft(rit_160k))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_160k/2:fs_160k/length(rqt_160k):fs_160k/2-fs_160k/length(rqt_160k),fftshift(abs(fft(rqt_160k))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)')
    

    %% 160k-16k,插值:先插后滤,抽取:先滤后抽

    fs_16k=16e3;
    %resample为信号降采样处理,理解如下:B=resample(x,90,250); 
    % 采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
    
    y_de7=fir1(127,1/10);
    rit_160k_f=conv(rit_160k,y_de7,'same');
    rqt_160k_f=conv(rqt_160k,y_de7,'same');
    
    rit_16k=downsample(rit_160k_f,10);
    rqt_16k=downsample(rqt_160k_f,10);
    
    figure(15)
    subplot(221)
    plot(rit_16k);title('10倍抽取i路')
    subplot(222)
    plot(rqt_16k);title('10倍抽取q路')
    subplot(223)
    plot(-fs_16k/2:fs_16k/length(rit_16k):fs_16k/2-fs_16k/length(rit_16k),fftshift(abs(fft(rit_16k))));
    xlabel('Frequency(Hz)');
    ylabel('Amp');
    title('I路频谱图(低通)')
    subplot(224)
    plot(-fs_16k/2:fs_16k/length(rqt_16k):fs_16k/2-fs_16k/length(rqt_16k),fftshift(abs(fft(rqt_16k))));
    xlabel('Frequency(Hz)');
    title('Q路频谱图(低通)')
    

    %% 星座图

    figure(16)
    scatter(rit_16k,rqt_16k);
    grid on
    

    %% 8psk解调

    fs_16k=16e3;
    rt=[ ];
    rt1=[ ];  
    
    for m=1:length(rit_16k)/100:length(rit_16k)
        II(m) = rit_16k(m); 
        QQ(m) = rqt_16k(m);
    
        if II(m)<0 && QQ(m)<0 && QQ(m)<II(m)
          rt=[1 1 1];%7
           
        elseif II(m)<0 && QQ(m)<0 && QQ(m)>II(m)
         rt=[1 1 0];%6
                 
    	elseif II(m)>0 && QQ(m)<0 && abs(QQ(m))>II(m)
         rt=[1 0 1];%5
           
        elseif II(m)>0 && QQ(m)<0 && abs(QQ(m))<II(m)
         rt=[1 0 0];%4
           
        elseif II(m)<0 && QQ(m)>0 && abs(II(m))<QQ(m)
           rt=[0 1 1];%3
           
        elseif II(m)<0 && QQ(m)>0 && abs(II(m))>QQ(m)
           rt=[0 1 0];%2
           
        elseif II(m)>0 && QQ(m)>0 && II(m)>QQ(m)
           rt=[0 0 0];%0
           
        elseif II(m)>0 && QQ(m)>0 && II(m)<QQ(m)
           rt=[0 0 1];%1
           
        end
       rt1=[rt1 rt];
    end 
    figure(17),
    subplot(211)
    plot(rt1);title('解调出的基带信号')%以data分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线
    subplot(212)
    ts=0:1:length(rt1)-1;
    stem(ts,rt1);title('解调出的基带信号');
    

    %% 误比特率

    k=0;
    for i=1:length(data)
        if(data(i)==rt1(i))
            k=k;
        else
            k=k+1;
        end
    end
    rate1=k/length(data);
    fprintf('误比特率=%f',rate1);
    

    注:

    1.在上面这段程序中是没有经过信道的,那么如何达到让它经过信道的效果呢,就是在已调信号上加上一个加性高斯白噪声即可。就模拟了经过信道受到干扰的过程。

    2. 可以自己尝试着去加上高斯白噪声试试。需要那一段程序的就留言吧。我写了两份,有噪声的那一份在优盘里,忘带了。

     

    六、最后

    1.如果本文对你有所帮助,就点个赞吧,给点动力,大家一起努力。

    2.想着尽量写清楚一点,但是深入进去,内容很多,有些地方跳过了,如果哪里不清楚欢迎指出。

    3.欢迎指正。

    展开全文
  • 电信设备-RFID信源状态报障监测系统.zip
  • 基于算术编码的信源编码解码系统设计与仿真设计.doc
  • 阵列信号的信源数目估计——AIC,MDL,HQ,EDC法得比较!!MATLAB代码!
  • 室内分布系统信源设备安装监理规范标准.doc
  • 电信设备-两信源分布式LT码的系统编码方法.zip
  • 题目基于 MATLAB 的通信系统仿真 信道编码对通信系统性能的影响 专业 通信工程 姓名崔校通 学号 201300484316 日 期 : 2016.12.22 信道编码结课论文 目录 1 信道编码结课论文 基于 MATLAB 的通信系统仿真 信道编码对...
  • 通信系统的优化可用最优编码方式实现,不同的系统优化指标可产生不同的最佳编、译码方式。从通信系统的优化理论入手,论证了用信源信道联合编码(joint source
  • 信源编码与信道编码

    千次阅读 2014-01-02 22:33:06
    数字电视为何采用信源编码和信道编码? 信源编码主要是解决图片信号的压缩和保存问题,信道编码主要是解决图片信号的传输问题。 信源编码和信道编码都采用的MPEG2技术 采用信源编码可以有效的利用有限的宽带:图像...

    数字电视为何采用信源编码和信道编码?

    信源编码主要是解决图片信号的压缩和保存问题,信道编码主要是解决图片信号的传输问题。

    信源编码和信道编码都采用的MPEG2技术

    采用信源编码可以有效的利用有限的宽带:图像信号的数据量大, 如不进行压缩, 数字电视信号就无法实时传送, 而压缩的主要方式就是除去冗余信号。所谓冗余信号是指那些与信息无关的或对图像质量影响不大的多余部分,这就是MPEG - 2 图像压缩的原理。

    (1)空间冗余。一幅图像由数十万个像素组成,相邻两个甚至几个像素之间有很大的相似性(或称相关性), 在传送时会出现连续传送许多相同数据的情况, 称之为空间冗余, 利用某种编码方法(如正交变换编码), 去掉空间上的冗余信息, 减少传输和记录码率。

    (2)时间冗余。电视图像也有很强的时间相关性, 对于25帧/ s的图像来说,通常情况下前一帧图像和后一帧图像的差别很小, 大部分画面内容相同, 这表明相邻两幅图像的相关性非常大, 而图像之间相隔较远时, 其图像的相关性才逐步减小, 而且这种相关性很强的图像变化时一般都是有规律的,也就是说每一幅图像的变化是可预测的。利用图像的时间冗余特性,把图像信号在时间上的冗余信息去掉, 也可以减小传输和记录码率。

    (3)统计冗余。图像和声音信号数字化后遵循一定的统计规律, 如在图像预测编码系统下, 当前像素信号的预测值是由前几个相邻像素值或该像素在前一段上的时间值预测出来的。根据图像的空间相关性和时间相关性可知预测误差小的信号出现的概率大,相反则出现概率小。采用统计编码的方法, 对出现概率大的小误差信号值用短码, 而对出现概率小的大误差信号值用长码, 这样就去掉了信号在统计上的冗余信息。

    (4)知觉冗余。人的视听器官都具有某些不敏感性。知觉冗余是指处于人们视觉和听觉分辨力不敏感或达不到的视音频信号, 对这些无关紧要的信息给与较大的失真处理, 人们并不会明显地感到图像和声音质量的降低,甚至毫无觉察。因此在编码时可以分长码和短码来对不同的内容进行编码, 这叫作有所为和有所不为, 从而达到减小码率的目的。

    信道编码:提升信号传输的可靠性:由于数字信号具有很复杂的频率成分,频率特性也很不相同,直接传输会产生误码,降低可靠性。信道编码就是针对这种情况而提出的,信道编码传输的图像信号适应传输信道对频率特性的要求,抑制信道噪声对信号的干扰。

    主要实现方式:

    伪随机序列进行扰码

    奇偶校验码

    卷积交织码

    里德-所罗门码

    展开全文
  • 以一幅灰度图像为例对通信系统的通信过程进行仿真,过程如下图所示: 1、不经过信道编码与译码,图像经过BSC信道传输后的误码率,此处的编码方法为霍夫曼编码。MATLAB仿真程序如下: clear all clc I0=imread...

    以一幅灰度图像为例对通信系统的通信过程进行仿真,过程如下图所示:
    图1 通信过程
    1、不经过信道编码与译码,图像经过BSC信道传输后的误码率,此处的编码方法为霍夫曼编码。MATLAB仿真程序如下:

    clear all
    clc
    I0=imread('Penguinshead3.jpg');
    I1=rgb2gray(I0);
    subplot(1,3,1),imshow(I0),title('原图')
    subplot(1,3,2),imshow(I1),title('灰度图')
    [m,n]=size(I1);
    I=reshape(I1,m*n,1);
    P_value=zeros(1,256);
    %---------------------------------------概率;
     for i=0:255
         P_value(i+1)=length(find(I==i))/(m*n);  %各像素值概率
     end
    f=numel(I);                                      %频数
    P_symbol=zeros(m*n,1);
    for i=1:m
        for j=1:n
            P_symbol(i,j)=length(find(I==unique(i)))/f;%各信源符号概率矩阵
        end
    end 
    %--------------------------------霍夫曼编码
    k=0:255;
    dict=huffmandict(k,P_value);           %生成编码字典
    huffmancode=cell(length(I),2);         %元胞数组存放对应编码
    for i=1:m*n
        huffmancode{i,1}=I(i);
    end
    for i=1:length(I)
        for j=1:256
            if huffmancode{i,1}==dict{j,1}
                huffmancode{i,2}=dict{j,2};
            end
        end
    end
    %----------------------------通过BSC信道
    bsc_code=huffmancode;        %通过bsc信道后的编码
    for i=1:length(I)
        bsc_code{i,2}=bsc(huffmancode{i,2},0.001);
    end
    % --------------------------------译码
    bsccode=bsc_code{1,2};
    for i=2:length(I)
        bsccode0=bsc_code{i,2};
        L=length(bsccode0);
        bsccode(end+1:end+L)=bsccode0;       %转换为一串字符
    end
    deco=huffmandeco(bsccode',dict);         %译码
    %----------------------------------------译码后存在错误
    rdeco=zeros(length(I),1);                      %错误处理
    L=length(I)-length(deco);
    if L<=0
        rdeco=deco(1:end-abs(L));                  %截断
    else
        a=ones(abs(L),1);                          %补足   
        rdeco(1:length(deco))=deco;
        rdeco(length(deco)+1:end)=195*a;  
    end
    Ideco=reshape(rdeco,m,n);
    subplot(1,3,3),imshow(uint8(Ideco));title('经BSC信道传输后的图像');
    error=length(find(Ideco~=I1));
    fprintf('误码率:%.4f\n',error/length(I));
    

    传输结果如下图所示:
    图2 无信道译码与编码
    上图表示的是仅经信源编码与译码,新宿的得到的结果。可以看到图像存在失真,此时的误码率为:
    在这里插入图片描述
    2、经过信道译码,此处的信道编码采用汉明码。MATLAB仿真程序如下:

    clear all
    clc
    I0=imread('Penguinshead3.jpg');
    subplot(1,3,1),imshow(I0),title('原图')
    I1=rgb2gray(I0);
    subplot(1,3,2);imshow(I1);title('信源发出的消息');
    [m,n]=size(I1);
    I=I1(:);
    P=zeros(1,256);
    %---------------------------------------概率;
    for i=0:255
        P(i+1)=length(find(I==i))/(m*n);
    end
    %---------------------------------------编码译码
    k=0:255;
    dict=huffmandict(k,P);                    %生成霍夫曼码字典
    enco=huffmanenco(I,dict);                 %霍夫曼码信源编码
    code=encode(enco,15,11);                  %汉明码信道编码
    bsc_code=bsc(code,0.001);                 %通过BSC信道
    rcvcode=decode(bsc_code,15,11);           %汉明码信道译码
    deco=huffmandeco(enco,dict);              %霍夫曼码信源译码
    Ireco=reshape(deco,m,n);
    subplot(1,3,3);imshow(uint8(Ireco));title('信宿接收的消息');
    error=length(find(Ireco~=I1));            %误码数
    fprintf('误码率:%0.4f\n',error/length(I));
    

    经信道传输后的图像如下图所示:
    图3 经过信源信道编码与译码
    此时图像无失真,误码率为:
    在这里插入图片描述
    可以明显看到第二种方式的误码率远远小于第一种方式的误码率,由此可看出在通信过程中进行信道编码与译码的重要性。
    而方式1的误码率高的原因有以下三点:
    (1)传输图像较小,像素值少。图像越小,编码表的码字越少,经信道传输后,越容易出现非编码表码字。(2)对于编码表码字处理的译码译码方式简单,对于译码后的编码像素值采用舍弃译码后末尾的像素值与补足像素值(由于使用的图像右下角的像素值在195左右,因此对与译码后长度不足的像素值序列,补充像素值为195的像素)的方式存在较大的误差。(3)未经过信道编码与译码。
    必须说明的是由于上述第(2)点原因,在BSC信道的转移概率比较大的时候(p>0.1)时,方式1能够运行通过的概率很低,当信道的转移概率很小时,该方式的误码率也会比较小。

    展开全文
  • 本文以MPEG-2编码标准为主,谈信源编码、复用技术在有线数字电视系统中的应用。
  • 信息论的经典结果表明,信源信道分离编码是渐进最优的...但现代通信系统对时延、带宽等愈发敏 感,分离设计对解码具有无限计算能力这一假设难以成立。带宽有限时,相对于信源信道联合编码,分离编 码已被证明是次优的。
  • 信息化的概念起源于60年代的日本,首先是由一位日本学者提出来的,而后被译成英文传播到西方,西方社会普遍使用"信息社会"和"信息化"的概念是70年代后期才开始的。  关于信息化的表述,在中国学术界和政府内部作过...
  • 1.前言 自动语音识别、语音模式识别和说话人识别及确认等应用对噪声十分敏感,信源定位识别是音频和语音信号捕捉处理应用的一个关键的预处理功能。特别是基于微机电系统(MEMS) 的麦克风阵列出现后,麦克风阵列音频...
  • 第二章 信源的数字化与压缩系统评价第二章 信源的数字化与压缩系统评价第二章 信源的数字化与压缩系统评价第二章 信源的数字化与压缩系统评价

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,653
精华内容 3,461
关键字:

信源系统