数字信号处理实验一(离散信号及离散系统的MATLAB编程实现)

news2024/11/25 21:43:26

实验要求:

  • 离散信号及离散系统的MATLAB编程实现(2学时)
    1. 要求:
      1. 编写一程序,输出一定长度(点数),具有一定幅度、(角)频率和初始相位的实(或复)信号序列,如复指数序列;
      2. 利用matlab,求系统y(n)-0.8y(n-1)-0.5y(n-2)=0.7x(n)+0.3(n-1)的零极点。
    2. 目的:
      1. 熟悉MATLAB命令和编辑、运行、调试环境;
      2. 学会编写MATLAB程序(.m文件)

实验报告:

一、实验内容

i.设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0Hz~1500Hz,阻带截止频率2000Hz,通带波动不大于1%,阻带波动不大于1%,采样频率为8000Hz;

ii.用一个仿真信号来验证滤波器的正确性(注意:要满足幅度要求和线性相位特性)。

二、实验目的

i.利用学习到的数字信号处理知识解决实际问题;

ii.了解线性相位滤波器的特殊结构;

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

Windows系统 Matlab 2022b

四、实验记录

1.原理基础

FIR(有限脉冲响应)滤波器是一种数字滤波器,其脉冲响应在有限的时间内衰减为零。FIR滤波器通过一系列加权系数的线性组合对输入信号进行卷积,以产生输出信号。对于低通FIR滤波器,它允许低频信号通过并抑制高频信号。

线性相位FIR滤波器具有对称或反对称的系数,这保证了滤波器在所有频率上具有相同的相位延迟,这对于避免信号失真非常重要。

设计FIR滤波器时,常用的方法有窗函数法、最小二乘法(如firls函数)和等波纹法(如remez函数)。这些方法通过最小化通带和阻带内的误差来优化滤波器的性能。

2 实验流程

确定滤波器参数:

包括采样频率、通带和阻带截止频率、通带和阻带波动等。

设计FIR滤波器:

使用MATLAB的firls或remez函数设计满足性能要求的FIR滤波器。

生成仿真信号:

创建一个包含通带和阻带频率分量的仿真信号。

应用滤波器:

使用MATLAB的filter函数将设计的FIR滤波器应用于仿真信号。

分析滤波结果

绘制原始信号和滤波后信号的频谱图,检查通带和阻带的波动是否满足要求,并验证滤波器的线性相位特性。

3 源程序代码

%名称:模拟信号采样与重构及频谱分析FFT
%结构:1.模拟信号的采样 2.生成复合信号并绘制时域和频域 3.应用滤波器并绘制时域频域
%编辑人:贾雯爽
%目的:掌握模拟信号的采样、重构和频谱分析
%最后更新时间:2024/06/05 
%模拟信号采样、重构、频谱分析

%1.模拟信号的采样(参数设置、创建模拟信号、信号采样、绘制图像)

%1.1 设置参数 
Fs = 1000;%采样频率
A = 1;%幅度
f0 = 5;%频率
t = 0:1/Fs:1-1/Fs;%时间向量

%1.2 信号生成
x = A*sin(2*pi*f0*t);

%1.3 信号采样
Ts = 1/Fs;
t_sample = 0:Ts:1-Ts; % 采样时间点 
x_sample = A*sin(2*pi*f0*t_sample);

  
% 第四步:绘制原始信号和采样信号  
figure;  
subplot(3,1,1);  
plot(t, x);  
title('原始模拟信号');  
xlabel('时间 (s)');  
ylabel('幅度');  
  
subplot(3,1,2);  
stem(t_sample, x_sample, 'filled');  
title('采样信号');  
xlabel('时间 (s)');  
ylabel('幅度');  

%2.信号重构(模拟)

%2.1 模拟信号重构
t_recon = linspace(0, 1, Fs*10); % 用于重构的更细粒度时间向量  
x_recon = interp1(t_sample, x_sample, t_recon, 'linear'); % 线性插值 

%2.2 绘制信号重构
subplot(313);
plot(t_recon, x_recon);
title('重构模拟信号');
xlabel('时间(s)');
ylabel('幅度');


%3.频谱分析(fft) 原始信号与分析后信号对比

%3.1 对原始信号进行FFT频谱分析
N = length(t);  
X = fft(x, N);  
P2 = abs(X/N);%转换为单边谱
P1 = P2(1:N/2+1);  
P1(2:end-1) = 2*P1(2:end-1);  
f = Fs*(0:(N/2))/N; % 频率向量 

% 3.2绘制原始信号的频谱  
figure;  
subplot(211);
plot(f, P1);  
title('原始模拟信号的频谱');  
xlabel('频率 (Hz)');  
ylabel('|P(f)|');  
  
% 3.3对采样信号进行FFT  
N_sample = length(t_sample);  
X_sample = fft(x_sample, N); % 使用与原始信号相同的FFT长度  
%取单边频谱的流程
P2_sample = abs(X_sample/N);  
P1_sample = P2_sample(1:N/2+1);  
P1_sample(2:end-1) = 2*P1_sample(2:end-1);  
  
% 3.4绘制采样信号的频谱  
subplot(212);
plot(f, P1_sample);  
title('采样信号的频谱');  
xlabel('频率 (Hz)');  
ylabel('|P(f)|');  
  
% 程序结束

4 实验结果

5实验结果分析

i. 对于复指数序列,可以观察到序列的周期性、幅度、频率和相位的变化。这些参数对信号分析和处理非常重要。

ii. 通过对系统差分方程零点和极点的分析,可以了解系统的稳定性和动态特性。在本例中,极点都位于单位圆内,说明系统是稳定的。此外,零点的位置可以影响系统的频率响应特性。通过零极点图,可以直观地看到系统的零点和极点在复平面上的位置,从而进一步分析系统的性能。

五、实验总结

本次实验着重点有两个;①熟悉Matlab的使用操作,包括文件建立、路径添加等。②熟练掌握复指数序列的概念并掌握通过差分方程推到H(z),进一步进行零极点分析的过程。

零极点对数字信号处理系统的性能有着重要作用,稳定性,因果性,低通高通等……


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

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

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

相关文章

【C++】动态内存管理new和delete

文章目录 一、C的内存管理方式二、new和delete的用法1.操作内置类型2.操作自定义内置类型 三、new和delete的底层实现1.operator new和operator delete函数2.new和delete的实现原理 四、定位new表达式五、malloc/free和new/delete的区别 一、C的内存管理方式 之前在C语言的动态…

超详细之IDEA上传项目到Gitee完整步骤

1. 注册gitee 账号密码,gitee官网地址:Gitee官网,注册完成后,登录。 2. 创建仓库,在主页左下角有新建按钮,点击新建后会进入到此页面填写仓库信息。 3. 创建完成后复制仓库地址 4. 打开IntelliJ IDEA新建或…

Docker 安装最新版本 Jenkins

目录 1、下载、启动容器、更新到最新版本 2、查看初始密码两种方式: 3、默认安装的部分未汉化,删除默认的汉化插件。重启容器,重新安装汉化插件 4、安装 Publish over SSH、docker-build-step 、Docker Commons 插件 5、配置服务器连接信…

Arduino - LED 矩阵

Arduino - LED 矩阵 Arduino - LED Matrix LED matrix display, also known as LED display, or dot matrix display, are wide-used. In this tutorial, we are going to learn: LED矩阵显示器,也称为LED显示器,或点阵显示器,应用广泛。在…

人大金仓×深信服:打造高性能、高可靠教育信创数据库一体机解决方案

信息技术应用创新是数字经济发展的关键支撑和重要基石,近年来,国家高度重视信息技术应用创新产业发展。教育行业作为我国人才培养的发动机,发展教育信创是保持信创创新力、是提升信创人才质量的重要举措、是保障信创产业可持续发展的关键环节…

做短视频赛道,云微客矩阵系统提醒这些雷区要避开!

90%的实体老板做抖音短视频都踩过雷区,那就是上来就真人出镜拍视频,要么自己上要么让员工上。但是我们大家试想下,企业做短视频是想借助平台流量找客户的,又不是来当网红的,拍剧情、想段子,无非就是浪费时间…

Redis集群部署合集

目录 一. 原理简述 二. 集群配置​​​​​​​ 2.1 环境准备 2.2 编译安装一个redis 2.3 创建集群 2.4 写入数据测试 实验一: 实验二: 实验三: 实验四: 添加节点 自动分配槽位 提升节点为master: 实验…

docker 学习之路

文章目录 1、官方文档2、常用命令挂载Docker容器内运行的脚本或命令常用 3、介绍4、Dockerfile5、问题6、链接 ​ 1、官方文档 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux…

【软件测试】对于测试中各式的概念,你了解多少?

目录 1.需求 2.开发模型 2.1.软件的生命周期 2.2.瀑布模型 2.3.螺旋模型 2.4.增量模型、迭代模型 2.5.敏捷模型 3.测试模式 3.1.V模型 3.2.双V模型 在学习后面的知识前,先来熟知一个概念 什么是软件测试:软件测试就是验证软件产品特性是否满足…

[java多版本管理] JEnv-for-Windows 详细安装和使用

文章目录 JEnv-for-Windows文件下载地址用法(注意:本地覆盖更改。使用本地覆盖)这是如何工作的?java 常用的版本 JEnv-for-Windows文件下载地址 温馨提示: 需要元子 文件下载地址 管理员执行jenv.bat文件 执行正常, 接下来就是…

AUTOSAR NvM模块(一)

NvMBlockDescriptor [ECUC_NVM_00061] 用于存储所有特定于块的配置参数的容器。对于每个非易失性随机存取存储器(NVRAM)块,应该指定这个容器的一个实例。 NvMBlockCrcType 定义了NVRAM块的CRC数据宽度。根据Autosar标准,此参数…

msvcp120.dll文件不见了要怎么处理?教你科学的方法修复msvcp120.dll

msvcp120.dll文件不见了?那么这时候你就要注意了,有可能你的某些程序已经打不开了!因为这个msvcp120.dll文件是用来支持程序运行的,下面我们一起来聊一下msvcp120.dll文件不见了要怎么修复。 一.msvcp120.dll文件讲解 msvcp120.d…

Java SE入门及基础(58) 并发 进程与线程概念

目录 并发 进程和线程 1. 进程和线程 2. 进程 3.线程 总结 并发 并发(Concurrency) Computer users take it for granted that their systems can do more than one thing at a time. They assume that they can continue to work in a word processor, while other app…

AI大模型怎么备案?

随着人工智能技术的飞速发展,生成式AI正逐渐渗透到我们的日常生活和各行各业中。从文本创作到艺术设计,从虚拟助手到智能客服,AI的身影无处不在。然而,技术的创新与应用,离不开法律的规范与引导。为进一步保障和监管AI…

《昇思25天学习打卡营第2天|快速入门》

文章目录 前言:今日所学:1. 数据集处理2. 网络的构建3. 模型训练4. 保存模型5. 加载模型 总体代码与运行结果:1. 总体代码2. 运行结果 前言: 今天是学习打卡的第2天,今天的内容是对MindSpore的一个快速入门&#xff0…

HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑

使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…

锐捷网络闪耀CVPR 2024,外观异常检测方案斩获世界认可!

近日,锐捷网络在“视觉异常检测和创新性检测2024挑战赛”(Visual Anomaly and Novelty Detection 2024 Challenge,简称VAND)的少样本逻辑/结构异常检测赛道(VAND 2.0赛道2)中荣获第二名,并在计算机视觉顶级会议CVPR 2024上展示了这一成果&…

详细介绍LP-SCADA系统的核心数据采集单元

关键字:LP-SCADA系统, 传感器可视化, 设备可视化, 独立SPC系统, 智能仪表系统,SPC可视化,独立SPC系统 SCADA系统的数据采集功能是其核心组成部分,它允许系统从各种传感器、仪器和设备中收集实时数据。以下是SCADA系统数据采集功能的详细描述: 传感器和…

我的创作纪念日学期总结

🔥个人主页: Forcible Bug Maker 🔥专栏: 关于博主 目录 🌈前言🔥我的期末考试🔥我的学期总结🔥对未来的展望🌈结语 🌈前言 本篇博客主要内容:博…

SOLIDWORKS Electrical智能模型--实现机电一体化设计的关键

SOLIDWORKS Electrical 3D布线可以根据原理图自动生成线路,并且电气属性可以自动与导轨或机柜进行配合放置。但是这些电气模型该如何添加这些属性呢? 1.首先确保我们已经打开SOLIDWORKS Electrical 3D插件,接着打开一个模型,此处以…