数字信号处理实验二(模拟信号采样与重构及频谱分析FFT)

  • 模拟信号采样与重构及频谱分析FFT(2学时)
    1. 要求:
      1. 对一模拟信号进行采样;
      2. 对该采样信号进行重构;
      3. 分析它们的频谱特征。
    2. 目的:
      1. 熟悉MATLAB命令和编辑、运行、调试环境;
      2. 掌握采样定理及对信号的频谱分析。

实验报告:

一、实验内容

i.对一模拟信号进行采样;

ii.对该采样信号进行重构;

iii.分析它们的频谱特征。

二、实验目的

i.熟悉MATLAB命令和编辑、运行、调试环境;

ii.掌握采样定理及对信号的频谱分析。

三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)

Windows系统 Matlab 2022b

四、实验记录

1.原理基础

i. 对模拟信号进行采样:采样是将模拟信号转换为数字信号的过程。采样定理(香农采样定理)指出,为了完全重构一个模拟信号,采样频率必须至少是信号中最高频率成分的两倍。

ii. 对采样信号进行重构:如果采样频率满足采样定理,可以通过内插(如零阶保持、线性内插或更高阶的内插方法)和滤波来重构模拟信号。

iii. 分析频谱特征:频谱分析是研究信号在频域上的特性,例如通过傅里叶变换或快速傅里叶变换(FFT)来获取信号的频率分量。

2 实验流程

i. 生成一个模拟信号,比如一个正弦波信号。

ii. 设定采样频率,并据此对模拟信号进行采样。

iii. 使用MATLAB的函数对采样信号进行重构。

iv. 分别对原始模拟信号和重构信号进行频谱分析。

3源程序代码

% generate_signal_and_poles_zeros 
%离散信号及离散系统的MATLAB编程实现
%结构:1.模拟信号的生成 2.零极点求解 3.零极点图绘制
%编辑人:贾雯爽
%目的:掌握模拟信号的采样、重构和频谱分析
%最后更新时间:2024/06/05 
%模拟信号采样、重构、频谱分析

%%1.模拟信号的生成
% 参数设置  
N = 100;%长度
A = 0.1;%幅度
omega = pi/4;%角频率
phi = pi/3;%初始相位

%输出复指数序列的代码
n = 0:N-1;%时间索引
x = A *exp(1i*(omega*n+phi));%生成复指数序列
disp('复指数序列的前几个值:');
disp(x(1:5));% 显示前5个值作为示例 

%绘制复指数序列的实部和虚部
figure;
subplot(2,1,1);
plot(n,real(x));
ylabel('实部');
grid on;

subplot(2,1,2);
plot(n,imag(x))
ylabel('虚部');
grid on;

%%2.系统零极点求解
  
b = [0.7, 0.3]; % 分子系数(从高到低)  
a = [1, -0.8, -0.5]; % 分母系数(从高到低)   

% 求解零点  
zeros = roots(b);  
disp('零点:');  
disp(zeros);  
  
% 求解极点  
poles = roots(a);  
disp('极点:');  
disp(poles);

  
% 3.绘制零极点图
figure;  
zplane(b, a); % 绘制零极点图  
title('系统的零极点图');  
grid on;

4实验结果

5实验结果分析

从频谱图中,我们可以观察到信号的主要频率成分以及它们的幅度。如果采样频率足够高,采样信号的频谱将能够准确地反映原始信号的频谱。然而,如果采样频率低于香农采样定理所要求的最小值,则采样信号的频谱将出现混叠现象,高频成分将折叠到低频区域,导致频谱失真。这强调了正确选择采样频率的重要性。

五、实验总结

通过本次实验,我深入理解了模拟信号采样、重构以及频谱分析的基本概念和原理。首先,我们生成了一个简单的正弦波模拟信号,并设定了一个采样频率对其进行采样。接着,我们使用MATLAB的FFT函数对原始模拟信号和采样信号进行了频谱分析。

从实验结果来看,当采样频率满足香农采样定理(即至少是信号中最高频率成分的两倍)时,采样信号的频谱能够较好地反映原始信号的频谱特性,两者在主要频率成分和幅度上非常相似。这说明在采样过程中,我们没有丢失太多关于信号的信息,能够较为准确地重构原始信号。

然而,如果采样频率低于香农采样定理所要求的最小值,采样信号的频谱将会出现混叠现象,高频成分将折叠到低频区域,导致频谱失真。这在实际应用中是不可取的,因为它会严重影响我们对信号特性的理解和后续的信号处理过程。

通过本次实验,我们更加熟悉了MATLAB的命令和编辑、运行、调试环境,掌握了采样定理的基本内容和频谱分析的方法。这对于我们今后在信号处理领域的学习和研究具有重要的指导意义。同时,我们也深刻认识到正确选择采样频率的重要性,这不仅是保证信号采样质量的关键,也是实现信号准确重构和分析的基础。


原创文章内容,学术不精恐有错漏之处,恳请各位批评指正。如有Matlab代码源文件或其他沟通需要,可通过邮箱(2642610289@qq.com)联系我,特情注意,学业繁忙难以及时回复,敬请理解。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无线领夹麦克风怎么挑选,无线领夹麦克风哪个品牌音质最好详解!

在数字化内容创作的浪潮中,无线领夹麦克风凭借其轻便的设计和卓越的录音性能,成为了许多创作者不可或缺的音频帮手。这种类型的麦克风能够轻松附着在衣物上,使得创作者在进行直播或录制视频时能够自由移动,而不受传统麦克风线缆的…

STM32智能家居安防系统教程

目录 引言环境准备智能家居安防系统基础代码实现:实现智能家居安防系统 4.1 数据采集模块 4.2 数据处理与分析 4.3 控制系统实现 4.4 用户界面与数据可视化应用场景:安防管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家居安防系统利用STM32嵌…

前端从业者的历史难题Vue和React的抉择:难度不亚于丈母娘和媳妇

**前端从业者的历史难题:Vue和React的抉择——难度不亚于丈母娘和媳妇** Vue和React这两个框架无疑是当下最为流行的两个选择。它们各自拥有独特的优势和特点,吸引了大量的前端从业者。然而,对于许多从业者来说,如何在Vue和React…

D. Beauty of the mountains(cf955)

分析&#xff1a;有一个n*m的数组a&#xff0c;对应n*m的数组b&#xff0c;想让b0的下标的a的数组之和等于b1的下标的a的数组之和&#xff0c;你可以进行k*k的范围所有数字全部加任意数。 求出子矩阵里0和1的差值&#xff1b; #include<bits/stdc.h> using namespace st…

Android 四大组件

1. Activity 应用程序中&#xff0c;一个Activity通常是一个单独的屏幕&#xff0c;它上面可以显示一些控件&#xff0c;也可以监听并对用户的事件做出响应。 Activity之间通过Intent进行通信&#xff0c;在Intent 的描述结构中&#xff0c;有两个最重要的部分&#xff1a;动…

电子行业MES系统解决方案

工业4.0时代的工业自动化&#xff0c;将在原有自动化技术和架构下&#xff0c;实现集中式控制向分散式增强型控制的基本模式转变&#xff0c;让设备从传感器到因特网的通讯能够无缝对接&#xff0c;从而建立一个高度灵活的、个性化和数字化、融合了产品与服务的生产模式。在这种…

springboot城市菜园共享系统-计算机毕业设计源码00524

目 录 摘要 1 绪论 1.1 研究背景与意义 1.2 国内外研究现状和发展趋势 1.3论文结构与章节安排 2 城市菜园共享系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.…

Keepalived+HAProxy 集群及虚IP切换实践

1、软件介绍 ①Keepalived keepalive是一个用c语言编写的路由软件&#xff0c;这个项目的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性设施。负载均衡框架依赖于众所周知且广泛使用的Linux Virtual Server (IPVS)内核模块提供第4层负载均衡…

Renderless 思想正在影响前端开发

本文由前端小伙伴方长_beezen 原创。欢迎大家踊跃投稿。 原文链接&#xff1a;https://juejin.cn/post/7385752495535472655 前言 截止到 2024 年&#xff0c;跨端应用开发所需要考虑的兼容性&#xff0c;已经涵盖了框架、平台和设备类型等多个方面&#xff0c;例如&#xff1…

ES集成到ambari中出现的常见问题归总

1.elasticesearch用户名组的问题 KeyError: uelasticsearch Error: Error: Unable to run the custom hook script [/usr/bin/python, /var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py, ANY, /var/lib/ambari-agent/data/command-102.json, /var/lib/amb…

Runway Gen-3 实测,这就是 AI 视频生成的 No.1!视频高清化EvTexture 安装配置使用!

Runway Gen-3 实测,这就是 AI 视频生成的 No.1!视频高清化EvTexture 安装配置使用! 由于 Runway 作为一个具体的工具或平台,其详细信息在搜索结果中没有提供,我将基于假设 Runway 是一个支持人工智能和机器学习模型的创意工具,提供一个关于使用技巧和类似开源项目的文稿总…

4K Tokkit Pro for Mac:轻松管理TikTok的利器

在TikTok的海洋中畅游&#xff0c;你是否想有一个得力助手来帮你高效管理你的账号&#xff1f;4K Tokkit Pro for Mac正是你的不二之选&#xff01; 这款专为Mac用户打造的TikTok管理工具&#xff0c;拥有简洁的界面和强大的功能&#xff0c;让你轻松下载、管理和分享喜欢的Ti…

Qt(一)概念 信号与槽

文章目录 一、概念&#xff08;一&#xff09;Qt工具1. Assistant&#xff1a;帮助手册2. Designer&#xff1a;Qt设计师3. xxx.uic文件4. rcc资源文件5. moc&#xff1a;元对象编译器6. qmake7. Qtcreator&#xff1a;集成化的开发软件 &#xff08;二&#xff09;创建第一个Q…

Python爬虫教程第0篇-写在前面

为什么写这个系列 最近开发了个Python爬虫的脚本&#xff0c;去抢一个名额&#xff0c;结果是程序失败了&#xff0c;中间有各种原因&#xff0c;终究还是准备不足的问题。我想失败的经验或许也可贵&#xff0c;便总结一下当初从0开始学Python&#xff0c;一步步去写Python脚本…

多租户hive数仓

1、概念 多租户对应的是单租户&#xff0c;本篇文章重点讲解多租户&#xff0c;单租户为了解内容。 1.1 多租户 多租户技术或称多重租赁技术&#xff0c;简称SaaS&#xff0c;是一种软件架构技术&#xff0c;是实现如何在多用户环境下&#xff08;此处的多用户一般是面向企业…

14-11 2024 年的 13 个 AI 趋势

2024 年的 13 个 AI 趋势 人工智能对环境的影响和平人工智能人工智能支持的问题解决和决策针对人工智能公司的诉讼2024 年美国总统大选与人工智能威胁人工智能、网络犯罪和社会工程威胁人工智能治疗孤独与对人工智能的情感依赖人工智能影响者中国争夺人工智能霸主地位人工智能…

【浦语大模型开源探索】InternLM实战营第二期:技术笔记与全链路解析

本次课程链接在GitHub上&#xff1a; InternLM/Tutorial at camp2 (github.com) 第一次课程录播链接&#xff1a; 书生浦语大模型全链路开源体系_哔哩哔哩_bilibili InternLM2技术报告&#xff1a; arxiv.org/pdf/2403.17297.pdf 一、书生浦语大模型全链路开源体系笔记 Int…

v-html 空格/换行不生效

接口返回的内容如下&#xff1a;有空格有换行&#xff0c;但 使用v-html无效 需加css样式 white-space: pre-wrap; <div class"pretty-html" v-html"Value"></div>.pretty-html {white-space: pre-wrap; /* 保留空格和换行&#xff0c;并允许…

震撼发布!4M-21:苹果多模态AI巨擘,一键解锁21种模态

前沿科技速递&#x1f680; 来自洛桑联邦理工学院&#xff08;EPFL&#xff09;与苹果科研巨擘的强强联手&#xff0c;震撼发布全新跨时代成果——4M-21模型&#xff01;这一革命性单一模型&#xff0c;突破性地覆盖了数十种高度多样化的模态&#xff0c;通过大规模多模态数据集…

数据洞察:从零到一的数据仓库与Navicat连接全攻略【实训Day04】[完结篇]

一、数据分析 1 实现数据仓库(在hadoop101上) 1) 创建jobdata数据库 # cd $HIVE_HOME # bin/hive hive>create database jobdata; hive>use jobdata; 2) 创建原始职位数据事实表ods_jobdata_orgin(在hadoop101上) create table ods_jobdata_origin( city string CO…