数字信号处理及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.......

相关推荐
ac-er8888几秒前
PHP弱类型安全问题
开发语言·安全·php
ac-er88881 分钟前
PHP网络爬虫常见的反爬策略
开发语言·爬虫·php
爱吃喵的鲤鱼11 分钟前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
DARLING Zero two♡37 分钟前
关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧
c语言·开发语言·科技
Gu Gu Study39 分钟前
【用Java学习数据结构系列】泛型上界与通配符上界
java·开发语言
芊寻(嵌入式)1 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
一颗松鼠1 小时前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript
有梦想的咸鱼_1 小时前
go实现并发安全hashtable 拉链法
开发语言·golang·哈希算法
海阔天空_20131 小时前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
天下皆白_唯我独黑1 小时前
php 使用qrcode制作二维码图片
开发语言·php