模拟信号数字化的过程(一) 您所在的位置:网站首页 Matlab传感器采样频率 模拟信号数字化的过程(一)

模拟信号数字化的过程(一)

2023-11-06 08:47| 来源: 网络整理| 查看: 265

文章目录 前言一、为什么要数字化?二、采样过程三、量化过程总结

前言

众所周知,将模拟信号进行数字化时,通常的步骤有三步即:采样,量化和编码,本篇文章主要对前两个步骤,采样和量化进行讨论并给出在matlab下的仿真例程。

一、为什么要数字化?

我们知道,通信系统按照所传输的是模拟信号还是数字信号可以分为模拟通信系统和数字通信系统,模拟通信系统的系统模型如图所示。 在这里插入图片描述 数字通信系统的系统模型如图所示: 在这里插入图片描述 相比于模拟通信系统,数字通信系统有以下特点:

抗干扰能力强且噪声不累积; 传输差错可控; 便于利用现代化数字信号处理技术来处理 易于集成,使通信设备可以微型化 易于加密处理,保密性好 但是设备较为复杂,且占用信道较宽。

以上是樊昌信老师在《通信原理》中所作的总结,由于近几年集成电路技术的发展以及光纤技术的发展使数字通信系统的缺点逐渐得以解决,数字通信系统的使用范围越来越广泛。

二、采样过程

采样过程是进行模拟信号数字化的第一步,模拟信号被采样后,称为采样信号,采样信号在时间上是离散的,但在取值上仍然是连续的,因此仍然是模拟信号。在采样时就不得不提及采样定理:

若想能够从采样后信号中恢复出原始信号,则采样信号的频率至少为原始信号最大频率的2倍,该频率又被称为奈奎斯特频率。

在理想情况下可以看作是用一连串的冲激函数与原始信号进行相乘,若要对采样信号求频谱可以先求冲击串的傅里叶级数,再用傅里叶级数来表示其傅里叶变换,即可以较少的计算量求出采样信号的傅里叶变换。

但在matlab中则不常采用这种方式,常采用的方式为,规定好时间间隔和起始时间后,对原始信号的每个规定时间间隔后的点进行取样,即可得到采样函数,其代码表示和结果如下。

clear; clc; fm=45; dt=0.0001; t=-0.02:dt:0.02; fs=2000; sdt=1/fs; t1=-0.02:sdt:0.02; xt=cos(2*pi*fm*t); st=cos(2*pi*fm*t1); max = max(abs(st)); % 原始信号 plot(t,xt);title('原始信号');grid on; %原信号 stem(t1,st,'.');title('抽样信号');grid on; %抽样

在这里插入图片描述 在这里插入图片描述

三、量化过程

均匀量化: 设模拟抽样信号的取值范围在a和b之间,量化电平数为M,则在均匀量化时的量化间隔为: Δ v = b − a M \varDelta v=\frac{b-a}{M} Δv=Mb−a​ 且量化区间的端点为: m i = a + i Δ v m_{i}=a+i \Delta v mi​=a+iΔv 设对模拟信号的抽样值为: m ( k T s ) m\left( kT_s \right) m(kTs​),所选均匀量化的量化区间端点为: m 1 , m 2 , m 3 . . . . . . m n m_1,m_2,m_3......m_n m1​,m2​,m3​......mn​,则根据公式: m q ( k T s ) = q i ,( m i − 1 ⩽ m ( k T s ) ⩽ m i ) m_q\left( kT_s \right) =q_i\text{,(}m_{i-1}\leqslant m\left( kT_s \right) \leqslant m_i\text{)} mq​(kTs​)=qi​,(mi−1​⩽m(kTs​)⩽mi​) 就把模拟抽样信号 m ( k T s ) m\left( kT_s \right) m(kTs​)变换成了量化后的离散抽样信号,即量化信号。

非均匀量化:

A压缩率:所谓A压缩率也就是压缩器具有如下特性:

式中: x为归一化的压缩器输入电压;y为归一化的压缩器输出电压;A为压扩参数,表示压缩程度。 在这里插入图片描述 由图可以看出,除一二段外,其他各段的折线斜率都不相同。至于当x在-10及y在-10的第三象限中,压缩特性的形状与以上讨论的第一象限压缩特性的形状相同,且它们以原点为对称,负方向也有8段直线,合起来共有16个线段。由于正向- -、二两段和负向一、二两段的斜率相同,这4段实际上为-条直线,因此,正、负双向的折线总共有13条直线段构成,故称其为13折线。

非均匀量化与均匀量化的原理相同,均为取定端点值再与抽样信号的值进行比较,其不同为非均匀量化在抽样值小时,量化间隔也小,抽样值大时量化值也大,因此能增大小信号时的信噪比,降低噪声干扰。

%量化 Max = 1; Min = -1; delv = (Max - Min)/2^4; for i = 1 :2^4+1; m(i) = Min + delv*(i - 1); end % 向上取整 xt_riser = xt; for i = 1 : 400; for j = 1:2^4 if xt_riser(i) >= m(j) && xt_riser(i)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有