数字信号处理实验---FFT分析

一、题目:

二、实验要求:

1、绘制图形时,尽量选用已经提供的函数。

2、所有的图形,需要加上横坐标、纵坐标以及标题的说明。

3、将设计的程序保存为脚本文件,在实验报告中,需写出程序语句。

4、Matlab程序中,需要为每段语句添加说明,说清每段的任务是什么,其中语句执行功能是什么

三、评分标准:

  1. 用FFT计算其幅度频谱和相位频谱准确;(3*8=24)
  2. 抽样信号的波形计算正确;(3*6=18)
  3. 原连续信号波形和抽样信号所对应的幅度谱计算正确;(3*8=24)
  4. 用IFFT计算时间序列正确;(3*8=24)
  5. 图形横坐标、纵坐标以及标题的说明清晰;(5)
  6. 程序代码注释清晰。(5)

1.% 已知序列

x = [1, 0.5, 0, 0.5, 1, 1, 0.5, 0];

% 计算FFT

X = fft(x);

% 计算IDFT

x_reconstructed = ifft(X);

% 时域序列的DFT图形

figure;

subplot(3, 1, 1);

stem(0:length(x)-1, x);

title('DFT时域序列 x(n)');

xlabel('n');

ylabel('Amplitude');

% 幅度频谱图形

subplot(3, 1, 2);

stem(0:length(X)-1, abs(X));

title('幅度频谱');

xlabel('Frequency Bin');

ylabel('Magnitude');

% 相位频谱图形

subplot(3, 1, 3);

stem(0:length(X)-1, angle(X));

title('相位频谱');

xlabel('Frequency Bin');

ylabel('Phase (radians)');

% IDFT图形

figure;

stem(0:length(x_reconstructed)-1, real(x_reconstructed));

title('IDFT 时域序列');

xlabel('n');

ylabel('Amplitude');

% 已知序列

x = [1, 0.5, 0, 0.5, 1, 1, 0.5, 0];

% 采样频率和序列长度

Fs = 20; % Hz

N_values = [8, 32, 64];

for N = N_values

% 计算FFT

X = fft(x, N);

% 计算幅度谱和相位谱

magnitude_spectrum = abs(X);

phase_spectrum = angle(X);

% 幅度频谱图形

figure;

subplot(2, 1, 1);

stem((0:N-1)*(Fs/N), magnitude_spectrum);

title(['幅度频谱(N = ' num2str(N) '']);

xlabel('Frequency (Hz)');

ylabel('Magnitude');

% 相位频谱图形

subplot(2, 1, 2);

stem((0:N-1)*(Fs/N), phase_spectrum);

title(['相位频谱(N = ' num2str(N) '']);

xlabel('Frequency (Hz)');

ylabel('Phase (radians)');

end

2.% 已知连续时间信号

fm = 1; % Hz,最高有限带宽频率

t_continuous = -1:0.001:1; % 时间范围为 -1 1 秒,取足够细的时间步长

f_continuous = sin(2*pi*fm*t_continuous);

% 抽样频率

Fs_values = [2.5*fm, 2*fm, 0.5*fm];

figure;

for i = 1:length(Fs_values)

Fs = Fs_values(i);

Ts = 1/Fs;

% 抽样时间

t_sampled = -1:Ts:1;

% 抽样信号波形

f_sampled = sin(2*pi*fm*t_sampled);

% 绘制原连续时间信号波形

subplot(length(Fs_values), 1, i);

plot(t_continuous, f_continuous, 'b-', 'LineWidth', 1.5);

hold on;

% 绘制抽样信号波形

stem(t_sampled, f_sampled, 'r-', 'LineWidth', 1.5, 'MarkerSize', 6);

title(['抽样频率 Fs = ' num2str(Fs) ' Hz']);

xlabel('Time (s)');

ylabel('Amplitude');

legend('原连续时间信号', '抽样信号');

hold off;

end

% 已知连续时间信号

fm = 1; % Hz,最高有限带宽频率

t_continuous = -1:0.001:1; % 时间范围为 -1 1 秒,取足够细的时间步长

f_continuous = sin(2*pi*fm*t_continuous);

% 抽样频率

Fs = 2.5*fm; % 选择一个抽样频率

% 抽样时间

Ts = 1/Fs;

t_sampled = -1:Ts:1;

% 抽样信号波形

f_sampled = sin(2*pi*fm*t_sampled);

% 计算原连续信号的幅度谱

f_continuous_spectrum = abs(fft(f_continuous));

frequencies_continuous = linspace(0, 1/(2*mean(diff(t_continuous))), length(t_continuous)/2);

% 计算抽样信号的幅度谱

f_sampled_spectrum = abs(fft(f_sampled));

frequencies_sampled = linspace(0, Fs, length(t_sampled)/2);

% 绘制原连续信号的幅度谱

figure;

subplot(2, 1, 1);

plot(frequencies_continuous, 2/length(t_continuous) * f_continuous_spectrum(1:length(t_continuous)/2), 'b-', 'LineWidth', 1.5);

title('原连续信号幅度谱');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

% 绘制抽样信号的幅度谱

subplot(2, 1, 2);

stem(frequencies_sampled, 2/length(t_sampled) * f_sampled_spectrum(1:length(t_sampled)/2), 'r-', 'LineWidth', 1.5, 'MarkerSize', 6);

title('抽样信号幅度谱');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

3.% 给定频谱

w = linspace(0, 2*pi, 1000); % 频率范围

X_w = 2 + 4*exp(-1j*w) + 6*exp(-2j*w) + 4*exp(-3j*w) + 2*exp(-4j*w);

% 频域抽样点数

N_values = [3, 5, 10];

figure;

for i = 1:length(N_values)

N = N_values(i);

% 选择前N个频谱样本

X_N = X_w(1:N);

% 使用IFFT计算时域信号

x_n = ifft(X_N, N);

% 绘制时域信号波形

subplot(length(N_values), 1, i);

stem(0:N-1, real(x_n), 'r-', 'LineWidth', 1.5, 'MarkerSize', 6);

title(['时域信号 N = ' num2str(N)]);

xlabel('n');

ylabel('Amplitude');

end

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

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

相关文章

ECC升级S/4HANA“沙箱模拟方案包“:更适用于升级环境复杂、体量大的客户

“作为一家业务体量大的公司,分支机构众多、数据复杂,想从ECC升级会有什么风险?”面对技术更新换代、公司业务不断扩展、网络安全问题的日益突出,将ECC升级到S/4HANA是企业的当务之急。为解决客户的顾虑,无论是对于历史…

51单片机入门_江协科技_19~20_OB记录的笔记

19. 串口通讯 19.1. 串口介绍: •串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。 •单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的…

设计模式总结-建造者模式

建造者模式 模式动机模式定义模式结构模式分析建造者模式实例与解析实例:KFC套餐 模式动机 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种…

使用labelImg标注yolov5数据集并在kaggle中使用yolov5

使用labelImg标注yolov5数据集并在kaggle中使用yolov5 文章目录 前言一、labelImg标注1.1. 下载exe文件1.2. labelImg 下载(源码)1.3. 环境配置1.4. 使用1.4.1. 设置1.4.2. 导入图片并标注 二、在kaggle中使用2.1. 下载源码2.2. 编辑配置文件2.3. 将压缩…

[蓝桥杯 2017 国 C] 合根植物

[蓝桥杯 2017 国 C] 合根植物 题目描述 w 星球的一个种植园,被分成 m n m \times n mn 个小格子(东西方向 m m m 行,南北方向 n n n 列)。每个格子里种了一株合根植物。 这种植物有个特点,它的根可能会沿着南北…

StarRocks使用Minio备份和还原

1.安装minio Centos7安装minio-CSDN博客 minio api端口&#xff1a;9090 下文用到这个端口 必须提前创建好桶: packfdv5 名称自定义和后面对上就可以 2.创建备份仓库 格式&#xff1a; CREATE REPOSITORY <repository_name> WITH BROKER ON LOCATION "s3a:/…

支付类漏洞挖掘技巧总结

前言&#xff1a; 支付类逻辑漏洞在漏洞挖掘中是常常出现的问题之一。此类漏洞挖掘思路多&#xff0c;奖励高&#xff0c;是炙手可热的漏洞。此篇文章主要围绕挖掘支付逻辑漏洞时的一些思路分享。 支付逻辑漏洞成因&#xff1a; 支付漏洞可能由以下原因造成&#xff1a; 前…

mybatis流式游标查询-导出DB大数据量查询OOM问题

问题场景 Mysql数据处理类型分以下三种 com.mysql.cj.protocol.a.result.ResultsetRowsStatic&#xff1a;普通查询&#xff0c;将结果集一次性全部拉取到内存 com.mysql.cj.protocol.a.result.ResultsetRowsCursor&#xff1a;游标查询&#xff0c;将结果集分批拉取到内存&…

【Windows11】cmd下运行python弹出windows应用商店解决方案

【Windows11 】cmd下运行python弹出windows应用商店解决方案 大家好 我是寸铁&#x1f44a; 总结了一篇【Windows11 】cmd下运行python弹出windows应用商店解决方案✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 今天在安装python时&#xff0c;在命令行窗口输入如下命令&a…

【面试经典150 | 动态规划】不同路径 II

文章目录 写在前面Tag题目1方法一&#xff1a;动态规划方法二&#xff1a;空间优化 题目2方法一&#xff1a;动态规划空间优化 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主…

启动mysql

删除C:\Program Files (x86)\MySQL\MySQL Server 5.7这个路径下的data文件夹&#xff0c;这个很难删除&#xff0c;因为一开机&#xff0c;mysql的某些服务就启动了&#xff0c;每次重新启动mysql之前&#xff0c;都要删除这个文件夹 因为这个文件夹在后端执行一些我们看不到的…

MySQL-逻辑架构:逻辑架构分析、SQL执行流程、数据库缓冲池

逻辑架构 1. 逻辑架构剖析 1.1 第1层&#xff1a;连接层 系统&#xff08;客户端&#xff09;访问MySQL服务器前&#xff0c;做的第一件事就是建立TCP连接。 经过三次握手建立连接成功后&#xff0c;MySQL服务器对TCP传输过来的账号密码做身份认证、权限获取。 用户名或密码…

C语言------冒泡法排序

一.前情提要 1.介绍 冒泡法排序法&#xff1a; 1)冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它重复地遍历要排序的列表&#xff0c;一次比较相邻的两个元素&#xff0c;并且如果它们的顺序错误就将它们交换过来。重复这个过程直到没有需…

DeepWalk论文翻译

DeepWalk论文翻译 DeepWalk: Online Learning of Social Representations DeepWalk&#xff1a;社会表征的在线学习 ABSTRACT 我们提出了 DeepWalk&#xff0c;一种学习网络中顶点潜在表示的新方法。这些潜在表示在连续向量空间中对社会关系进行编码&#xff0c;很容易被统…

VRRP虚拟路由器冗余协议

vrrp是为了解决单点故障问题 将几台路由器联合成一台虚拟的路由器&#xff0c;保证通信的可靠性 协议小说&#xff1a; 协议不是在固定的哪一个层&#xff0c;是基于哪一层工作&#xff0c;比如说ospf是基于三层工作的 VRRP是基于三层工作的&#xff0c;就在前面会封装一个ip…

JAVAEE——多线程进阶,锁策略

文章目录 锁策略乐观锁和悲观锁乐观锁悲观锁两者的比较 读写锁重量级锁和轻量级锁重量级锁轻量级锁 自旋锁公平锁和非公平锁公平锁非公平锁 可重入锁和不可重入锁可重入锁不可重入锁 锁策略 乐观锁和悲观锁 乐观锁 什么是乐观锁呢&#xff1f;我们可以认为乐观锁比较自信&am…

网络原理 - HTTP / HTTPS(4)——构造http请求

目录 一、postman 的下载安装以及简单介绍 1、下载安装 2、postman的介绍 二、通过 Java socket 构造 HTTP 请求 构造http请求的方式有两种&#xff1a;&#xff08;1&#xff09;通过代码构造&#xff08;有一点难度&#xff09; &#xff08;2&#xff09;通过第三…

Anaconda/Python快速安装jieba 【win/mac】

一、直接上命令 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba 我是在PyCharm里面的终端输进去。 之后就很快速的看到成功的下图。 二、官网 官网下载的速度太慢了——这是官网地址https://pypi.org/project/jieba/#files 点进去之后点击下载&#xff0c…

【卷积神经网络进展】

打基础日常记录 CNN基础知识1. 感知机2. DNN 深度神经网络&#xff08;全连接神经网络&#xff09;DNN 与感知机的区别DNN特点&#xff0c;全连接神经网络DNN前向传播和反向传播 3. CNN结构【提取特征分类】4. CNN应用于文本 CNN基础知识 1. 感知机 单层感知机就是一个二分类…

利用AI结合无极低码(免费版)快速实现接口开发教程,会sql即可,不需要编写编译代码

无极低码无代码写服务+AI实践 本次演示最简单的单表无代码增删改查发布服务功能,更复杂的多表操作,安全验证,多接口调用,自自动生成接口服务,生成二开代码,生成调用接口测试,一键生成管理界面多条件检索、修改、删除、查看、通用公共接口调用、通用无限级字典调用等后续…