数字信号处理及MATLAB仿真(4)——量化的其他概念

上回书说到AD转换的两个步骤------量化与采样两个步骤。现在更加深入的去了解以下对应的概念。学无止境,要不断地努力才有好的收获。万丈高楼平地起,唯有打好基础,才能踏实前行。

不说了,今天咱们继续说说这两个步骤,首先说一下量化吧,我们从上篇文章的程序当中,很明显的可以看出,不管是通过在一段时间内取最小值作为量化电平,还是通过取整函数来进行量化的功能。二者所做出的量化信号与原信号之间都存在着一定的误差。而这个偏差就是我们常称的量化误差。量化误差是指在将模拟信号或连续取值的信号转换为有限个离散值(量化)的过程中,由于量化导致的信号值与原始信号值之间的偏差。简单来说,量化是对连续信号进行近似表示,必然会引入一定的误差。这个误差就是量化误差。当然这个量化误差好像也可以称为量化噪声。

接下来,看看评估量化系统性能的重要指标之一------量化信噪比(Signal-to-Noise Ratio,SNR)。在将模拟信号转换为数字信号的量化过程中,由于量化的有限精度,不可避免地会引入量化误差,而量化误差可视为一种噪声。量化信噪比定义为信号功率与量化噪声功率的比值,记。而计算它的公式为 SNR = 6.02N+1.76dB。当然了,这两个形式计算的方差在实际中一定相等吗?理论是否等于实际?还是需要通过MATLAB来简单的看一下。以下是量化信噪比的程序。

Matlab 复制代码
%量化信噪比是评估量化系统性能的重要指标之一
%它表示信号功率与量化噪声功率之间的比率
%

close all;
clear all;
clc
Fs = 10000; % 采样频率
t = 0:1/Fs:1; % 时间序列

f = 1000; % 正弦信号频率
signal = sin(2*pi*f*t); % 正弦信号

quantization_level = 2^8;  %ADC的位数为8位,量化电平为2^8。
quantization_signal = round(signal*quantization_level)/quantization_level;
quantization_error = signal- quantization_signal;     %量化噪声

% 计算信号和噪声的功率(能量)
signal_energy = sum(signal.^2)/length(signal); % 信号功率
noise_energy = sum(quantization_error.^2)/length(signal); % 噪声功率

% 计算信噪比(SQNR)
sqnr = 10 * log10(signal_energy / noise_energy);

fprintf('实际量化信噪比(SQNR)= %.2f dB\n',sqnr);

%验证公式:量化噪声的计算公式:SNR=6.02N+1.76dB;N是阶数此处N为8。
%理论值
SNR = 6.02*8+1.76;

fprintf('理论量化信噪比(SQNR)= %.2f dB\n',SNR);

看看实际与理论的差别。

这里大家不要我写啥就是啥。可以调高采样率,或者这是修改信号的频率看看,是什么样子的。要学会自己去探索。接下来看几个概念。

1、量化噪声有什么特点?量化噪声是由于信号在模数转换(A/D转换)过程中产生的误差引入的,具有以下特点:均匀分布: 在理想情况下,量化噪声是均匀分布的,意味着在每个量化间隔内的误差是随机的。量化噪声的功率: 量化噪声的功率与信号的量化级数有关,通常在低频段上具有显著的能量。量化噪声的幅度: 量化噪声的幅度与量化级数相关,通常用均方根误差(RMSE)来度量。

2、回顾一下量化信噪比的概念。量化信噪比(Signal-to-Noise Ratio, SNR)是指信号的功率与量化噪声的功率之比,通常以分贝(dB)为单位表示。高SNR表示量化过程中噪声较小,信号质量较高。

3、低通采样和带通采样的差异:低通采样: 在低通采样中,信号在进行采样之前首先通过一个低通滤波器。低通滤波器会去除信号中超过Nyquist频率(采样频率的一半)的高频成分,以防止折叠现象的发生。折叠现象是指高频信号在低采样频率下被错误地表示为低频信号。带通采样: 带通采样是在采样之前使用带通滤波器选择感兴趣的频率带。这种方法用于处理带通信号,只保留特定频率范围内的信号成分。

4、频率如何通过采样来完成折叠?频率折叠是指在采样过程中,超过Nyquist频率(采样频率的一半)的信号频率被错误地表示为低于Nyquist频率的信号。这是因为在离散时间中,信号的频谱是周期性的。通过适当选择采样率和使用低通滤波器预处理信号,可以避免频率折叠现象的发生。

好了,今天就说这么多吧,把量化的其他概念说完了。明天继续采样的一些概念。

欲知后事如何,且听下回分解。OVO.......

相关推荐
郝学胜-神的一滴18 分钟前
【技术实战】500G单行大文件读取难题破解!生成器+自定义函数最优方案解析
开发语言·python·程序人生·面试
愤豆22 分钟前
02-Java语言核心-语法特性-注解体系详解
java·开发语言·python
是翔仔呐37 分钟前
第13章 SPI通信协议全解:底层时序、4种工作模式与W25Qxx Flash芯片读写实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
2401_878530211 小时前
自定义内存布局控制
开发语言·c++·算法
wjs20241 小时前
SQLite 子查询
开发语言
AndrewMe82111 小时前
detailed-docx:一个能保住格式的 Word 文档操作库
开发语言·python·word
IT方大同1 小时前
RT_thread(RTOS实时操作系统)线程的创建与切换
c语言·开发语言·嵌入式硬件
智算菩萨1 小时前
【OpenGL】6 真实感光照渲染实战:Phong模型、材质系统与PBR基础
开发语言·python·游戏引擎·游戏程序·pygame·材质·opengl
jinanwuhuaguo1 小时前
OpenClaw深度沟通渠道-全景深度解构
大数据·开发语言·人工智能·openclaw
是翔仔呐1 小时前
第14章 CAN总线通信全解:底层原理、帧结构与双机CAN通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee