数字信号处理及MATLAB仿真(3)——采样与量化

news2025/2/25 6:27:02

        今天写主要来编的程序就是咱们AD变换的两个步骤。一个是采样,还有一个是量化。大家可以先看看,这一过程当中的信号是如何变化的。信号的变换图如下。

        先说说采样,采样是将连续时间信号转换为离散时间信号的过程。在采样过程中,连续信号在特定时间间隔(采样间隔)内被测量和记录,这些时间间隔称为采样周期。采样率(或采样频率)是指每秒钟采样的次数,通常用赫兹(Hz)表示。采样是数字信号处理中的一个关键步骤,因为它将模拟信号转换为可以用数字设备(如计算机)处理的离散信号。大家在图上也能很明显的看出来,不知道大家还记不记得那个公式xₐ(nT)=x(n),每隔一定的距离在采一个值。在理想的采样中也可以写成模拟信号乘上冲激串,即\sum_{m=-\infty }^{\infty }x _{a}(t)\delta (t-mT)。对应上面的概念,这里的T就是采样周期,fs=1/T就是采样频率。就先说这么多吧,我们看程序。

%采样信号的写法
%奈奎斯特采样定理的体现,过采样的优势
%注意使用“;”,抑制输出:当分号放在表达式后面时,运算后命令窗口中不显示表达式的计算结果。

clear all
close all

f = 10;
fs = 260;

%采样信号的写法
%第一种
t = 0:1/fs:1
signal1 = sin(2*pi*f*t);
%第二种
length = [0:300]
signal2 = sin(2*pi*f*length/fs);

figure(1)
plot(signal1,'-*')

figure(2)
plot(signal2,'-*')

        这里可以有两种不同的写法,个人比较喜欢第二种。大家随便选,来看图像,这里建议用stem函数来看它的离散图像。大家感兴趣的可以数一下一个周期内正好为26个点

        第二个概念是量化,量化是将模拟信号或连续取值的信号转换为有限个离散值的过程。在数字信号处理和通信中,由于数字系统只能处理离散的数值,所以需要对连续的模拟信号进行量化。量化通过将信号的取值范围划分成若干个区间(称为量化级),然后将落在每个区间内的信号值用一个特定的离散值(量化值)来表示。量化会引入量化误差,即量化后的信号值与原始信号值之间的差异。量化误差的大小取决于量化级的数量和量化方式。量化级越多,量化误差通常越小,但同时也会增加数据量和处理复杂度。在开始的图像当中,我们可以看到信号被分成一个阶梯函数,那样的就是我们的一个量化信号。大家在学AD转换的时候,或许会学到过量化阶数这一概念。这里的量化级数则是另一个和它相关的概念。量化级数和量化阶数是量化过程中的两个相关概念。量化级数是指量化后可能的取值个数。量化阶数则是相邻两个量化电平之间的差值。它们之间存在这样的关系:量化阶数 = 量化范围 / 量化级数。这里先给出一个简单的代码。仅供参考。

%量化信号
%

% 生成一个正弦波信号
t = 0:0.01:1;             % 时间向量
x = sin(2 * pi * 5 * t);  % 正弦波信号

% 定义量化参数
num_levels = 16;           % 量化级数
q_levels = linspace(-1, 1, num_levels); % 量化级别

% 对信号进行量化
x_quantized = quantiz(x, q_levels);


% 绘制原始信号和量化信号
figure(1);
subplot(2, 1, 1);
plot(t, x);
xlabel('t/s');
ylabel('幅值');
title('原信号');

subplot(2, 1, 2);
stairs(t, x_quantized, 'r');
xlabel('t/s');
ylabel('幅值');
title('量化后的信号');
grid on;

% 显示量化级别
disp('量化级别:');
disp(q_levels);

% 量化函数定义
function y = quantiz(x, q_levels)
    % 初始化量化后的输出信号
    y = zeros(size(x));
    % 对每个信号样本进行量化
    for i = 1:length(x)
        % 找到最接近的量化级别
        [~, idx] = min(abs(q_levels - x(i)));
        y(i) = q_levels(idx);
    end
end

       图像如下

        当然在MATLAB当中,我们还可以使用向上取整或者是向下取整或者是四舍五入等等能够让信号归一到不同水平的电平上就行了。

        更多的话,大家继续follow我吧。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1902020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工作两年后,我如何看待设计模式

在软件工程中,设计模式是经过反复验证的最佳实践,用于解决在软件设计中经常遇到的一类问题。它们为开发者提供了一种通用的解决方案和语言,使得复杂的编程问题得以简化,代码结构更加清晰,可维护性大大提高。简而言之&a…

FreeRTOS的任务间通信

文章目录 4 FreeRTOS任务间通信4.1 队列4.1.1 队列的使用4.1.2 队列的创建,删除,复位4.1.3 队列的发送,接收,查询 4.2 邮箱(mailbox)4.2.1 任务中读写邮箱4.2.2 中断中读写邮箱 4.3 队列集4.3.1 队列集的创…

使用块的网络 VGG

一、AlexNet与VGG 1、深度学习追求更深更大,使用VGG将卷积层组合为块 2、VGG块:3*3卷积(pad1,n层,m通道)、2*2最大池化层 二、VGG架构 1、多个VGG块后接全连接层 2、不同次数的重复块得到不同的架构&a…

系统集成项目管理工程师第12章思维导图发布

今天发布系统集成项目管理工程师新版第12章脑图的图片版

01背包问题-队列分支限界法-C++

0-1背包问题-队列分支限界法 问题描述: 给定n种物品和一个背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?对于给定的n种物品的重量和价值,以及背包的容量&…

如何选择一家适合自己的商城源码?

商城源码的选择取决于多个因素,包括商城的功能需求、稳定性、易用性、可定制性以及价格等。启山智软作为在市场上被广泛认可且表现优异的商城源码提供商,具有以下的特点和优势: 特点①:国内知名的B2B2C开源商城源码系统&#xff…

Go语言--工程管理、临时/永久设置GOPATH、main函数以及init函数

工作区 Go 代码必须放在工作区中。工作区其实就是一个对应于特定工程的目录,它应包含3个子目录:src 目录、pkg目录和bin 目录。 src 目录:用于以代码包的形式组织并保存 Go源码文件。(比如:.go.chs等)pkg 目录:用于存放经由 go install 命令构建安装后的代码包(包…

东芝TB6560AHQ/AFG步进电机驱动IC:解锁卓越的电机控制性能

作为一名工程师,一直在寻找可靠且高效的组件来应用于你的项目中。东芝的TB6560AHQ/AFG步进电机驱动IC能够提供精准且多功能的电机控制,完全符合现代应用的高要求,保证高性能和易用性。在这篇文章中,我们将探讨TB6560AHQ/AFG的主要…

陈志泊主编《数据库原理及应用教程第4版微课版》的实验题目参考答案实验2

实验目的 1.掌握在SQL Server中使用对象资源管理器和SQL命令创建数据库与修改数据库的方法。 2.掌握在SQL Server中使用对象资源管理器或者SQL命令创建数据表和修改数据表的方 法(以SQL命令为重点)。 实验设备 操作系统:Win11…

DEPTHAI 2.27.0 发布!

小伙伴们大家好,我们发布了DepthAI 2.27.0版本,本次对DepthAI库有了一些小更新,以下是更新内容。 功能 设置DEPTHAI_ENABLE_FEEDBACK_CRASHDUMP时自动故障转储收集; 漏洞修补 修复深度超出ImageAlign节点时生成PointCloud的问…

Matplotlib Artist 1 概览

Matplotlib API中有三层 matplotlib.backend_bases.FigureCanvas:绘制区域matplotlib.backend_bases.Renderer:控制如何在FigureCanvas上绘制matplotlib.artist.Artist:控制render如何进行绘制 开发者95%的时间都是在使用Artist。Artist有两…

Java开源ERP系统Axelor汉化方法初探

Axelor简介 汉化过程介绍 定义语言和本地化 导出多语言记录 导入翻译 验证翻译 调整翻译 Axelor简介 2024年6月份Axelor ERP发布了8.1版本,适配JDK11及PostgreSQL12及以上版本(7及以前版本适配JDK8及PostgreSQL10)数据库。v8版本较之前…

景区气象站:守护旅行安全的智能向导

在繁忙的现代社会,人们越来越渴望逃离城市的喧嚣,寻找一处宁静的自然之地放松身心。景区,作为大自然与人类文明交织的瑰宝,吸引了无数游客前来探访。然而,多变的天气往往给游客的旅行带来不确定性。 景区气象站&#x…

Python + OpenCV 开启图片、写入储存图片

这篇教学会介绍OpenCV 里imread()、imshow()、waitKey() 方法,透过这些方法,在电脑中使用不同的色彩模式开启图片并显示图片。 imread() 开启图片 使用imread() 方法,可以开启图片,imread() 有两个参数,第一个参数为档…

nginx的正向代理和反向代理以及tomcat

nginx的正向代理和反向代理: 正向代理以及缓存配置: 代理:客户端不再是直接访问服务端,通过代理服务器访问服务端。 正向代理:面向客户端,我们通过代理服务器的IP地址访问目标范围端。 服务端只知道代理…

10.x86游戏实战-汇编指令lea

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

云端AI大模型群体智慧后台架构思考

1 大模型的调研 1.1 主流的大模型 openai-chatgpt 阿里巴巴-通义千问 一个专门响应人类指令的大模型。我是效率助手,也是点子生成机,我服务于人类,致力于让生活更美好。 百度-文心一言(千帆大模型) 文心一言"…

Web漏洞扫描工具AppScan与AWVS测评及使用体验

AppScan和AWVS业界知名的Web漏洞扫描工具,你是否也好奇到底哪一个能力更胜一筹呢?接下来跟随博主一探究竟吧。 1. 方案概览 第一步:安装一个用于评测的Web漏洞靶场(本文采用最知名和最广泛使用的靶场,即OWASP Benchma…

04.ffmpeg打印音视频媒体信息

目录 1、相关头文件 2、相关结构体 3、相关函数 4、函数详解 5、源码附上 1、相关头文件 #include <libavformat/avformat.h> 包含格式相关的函数和数据结构 #include <libavutil/avutil.h> 包含一些通用实用函数 2、相关结构体 AV…

Redis基础教程(九):redis有序集合

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…