数字信号处理实验---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

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

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

相关文章

【GlobalMapper精品教程】073:像素到点(Pixels-to-Points)从无人机图像轻松生成点云

文章目录 一、工具介绍二、生成点云三、生成正射四、生成3D模型五、注意事项一、工具介绍 Global Mapper v19引入的新的像素到点工具使用摄影测量原理,从重叠图像生成高密度点云、正射影像及三维模型。它使LiDAR模块成为已经功能很强大的的必备Global Mapper扩展功能。 打开…

安装geopandas很简单。。。

创建新环境 创建新环境并不是绝对必要的,但考虑到安装来自不同通道的其他地理空间包可能会导致依赖冲突 ,安装新环境可能是很好的做法,在干净的环境中堆叠,重新开始。 以下命令创建一个名为geo_env的新环境, 将其配置…

CANoe之使用以及车载项目实操总结

以下是我通过8年的项目实操自我总结的一些经验和技术,作为一名奋斗在一线的研发人员,无时无刻不在做自我总结,所有的总结都是通过日报、周报、月报提炼出来的,实践是检验技术的唯一标准; 欢迎大家的交流和分享 思维导…

VSCODE使用VSIX安装扩展

VSCode安装扩展特别慢,使用命令行安装告别龟速: code --install-extension当然,我这个是在WSL 的linux上安装的,Windows一样的。 VSCode扩展商店网页链接:https://marketplace.visualstudio.com/vscode

时序预测 | Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测

时序预测 | Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测 目录 时序预测 | Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测(完整源码…

LeetCode-994. 腐烂的橘子【广度优先搜索 数组 矩阵】

LeetCode-994. 腐烂的橘子【广度优先搜索 数组 矩阵】 题目描述:解题思路一:多源广度优先搜索(队列实现)解题思路二:哈希表实现,先找出所有腐烂和新鲜橘子的集合{}类似于set()。每剔除一次time1解题思路三&…

ChernoCPP 2

视频链接&#xff1a;【62】【Cherno C】【中字】C的线程_哔哩哔哩_bilibili 参考文章&#xff1a;TheChernoCppTutorial_the cherno-CSDN博客 Cherno的C教学视频笔记&#xff08;已完结&#xff09; - 知乎 (zhihu.com) C 的线程 #include<iostream> #include<th…

微信小程序怎么制作?制作一个微信小程序需要多少钱?

随着移动互联网的快速发展&#xff0c;微信小程序已成为连接用户与服务的重要桥梁。它以其便捷性和易用性&#xff0c;为各类企业和个人提供了一个全新的展示和交易平台。那么&#xff0c;如何制作一个微信小程序&#xff1f;又需要投入多少资金呢&#xff1f;本文将为您提供全…

H5面临的网络安全威胁和防范措施

H5&#xff0c;是基于HTML5技术的网页文件。HTML&#xff0c;全称Hyper Text Markup Language&#xff0c;即超文本标记语言&#xff0c;由Web的发明者Tim Berners-Lee与同事Daniel W. Connolly共同创立。作为SGML的一种应用&#xff0c;HTML编写的超文本文档能够独立于各种操作…

【性能测试】接口测试各知识第2篇:学习目标,1. 理解接口的概念【附代码文档】

接口测试完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;接口测试&#xff0c;学习目标学习目标,2. 接口测试课程大纲,3. 接口学完样品,4. 学完课程,学到什么,5. 参考:,1. 理解接口的概念。学习目标&#xff0c;RESTFUL1. 理解接口的概念,2.什么是接口测试…

文件夹0字节:原因、恢复与预防全攻略

在日常使用电脑或移动设备的过程中&#xff0c;我们经常会遇到一些数据问题&#xff0c;其中文件夹0字节的问题尤为常见且令人头疼。当原本存储着重要文件的文件夹突然变为0字节&#xff0c;我们往往感到束手无策。面对这种情况&#xff0c;我们不仅要了解问题的原因&#xff0…

【RealSense】Ubuntu20.04 安装 Intel® RealSense™ ROS 并使用 D435i 测试

【RealSense】Ubuntu20.04 安装 Intel RealSense™ ROS 并使用 D435i 测试 1 本机环境2 安装流程3 存在的 bug3.1 Resource not found: rgbd_launch 1 本机环境 Ubuntu20.04ROS Noetic 2 安装流程 参考文档: Link 安装 Intel RealSense™ SDK 2.0&#xff0c;参考上一篇文章:…

基于spring boot的漫画之家系统

基于spring boot的漫画之家系统设计与实现 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&…

ML.NET(二) 使用机器学习预测表情分析

这个例子使用模型进行表情分析&#xff1a; 准备数据&#xff1a; happy,sad 等&#xff1b; using Common; using ConsoleApp2; using Microsoft.ML; using Microsoft.ML.Data; using System.Diagnostics; using static Microsoft.ML.Transforms.ValueToKeyMappingEstimator;…

主干网络篇 | YOLOv5/v7 更换骨干网络之 HGNetv2 | 百度新一代超强主干网络

本改进已融入到 YOLOv5-Magic 框架。 论文地址:https://arxiv.org/abs/2304.08069 代码地址:https://github.com/PaddlePaddle/PaddleDetection 中文翻译:https://blog.csdn.net/weixin_43694096/article/details/131353118 文章目录 HGNetv2网络结构1.1 主干网络1.2 颈部…

汽车疲劳测试试验平台技术要求(北重厂家)

汽车疲劳测试试验平台技术要求通常包括以下几个方面&#xff1a; 车辆加载能力&#xff1a;测试平台需要具备足够的承载能力&#xff0c;能够同时测试多种车型和不同重量的车辆。 动力系统&#xff1a;测试平台需要具备稳定可靠的动力系统&#xff0c;能够提供足够的力和速度来…

RH850P1X芯片学习笔记-Clocked Serial Interface H (CSIH)

文章目录 Features of RH850/P1x-C CSIHUnitsRegister Base AddressClock SupplyInterrupt RequestsHardware ResetExternal Input/Output Signals数据一致性检查 OverviewFunctional OverviewFunctional Overview DescriptionBlock Diagram RegistersList of RegistersCSIHnCT…

典型病例(第二期):血糖18.3,小便多且泡沫难消,滋阴补肾效果显著

案例分享&#xff1a; 患者廖先生&#xff0c;男&#xff0c;43岁 主诉&#xff1a;身体明显特别消瘦&#xff0c;血糖检测达到18.3&#xff0c;患者口干口渴&#xff0c;小便频繁&#xff0c;且带有很难消散的泡沫&#xff0c;疲倦乏力&#xff0c;多食易饥&#xff0c;每天…

C/S医学影像PACS系统源码主要应用是什么?

C/S医学影像PACS系统源码主要应用是什么&#xff1f; 一套基于VC MSSQL开发的PACS系统源代码&#xff0c;医学影像PACS系统&#xff0c;全称为Picture Archiving and Communication Systems&#xff0c;即医学影像归档和通信系统。它是应用在医院影像科室的系统&#xff0c;主…

2024年 CS2最佳游戏启动项

引言&#xff1a; Counter-Strike 2&#xff08;CS 2&#xff09;是一款备受瞩目的游戏&#xff0c;而启动选项则是影响游戏性能和体验的关键因素之一。然而&#xff0c;有关所有选项都应该强制使用的说法并不正确。事实上&#xff0c;大多数选项可能对某些计算机并不适用&…