频率域采样

1. 频率域采样

(1) 采样的过程:DFT的X(k)是对周期且连续的频谱X(e^{jw})在[0,2pi)上的等间隔采样,采N个点得到的,采样间隔是\frac{2*pi}{N};频域采样要求时域有限,即假设x(n)的长度是有限值M,x(n)的SFT是X(e^{jw})。

(2) X(k) 做IDFT之后得到的X_{N}(n)和原序列x(n)长度都是N个点,在数值上有何关系?

2. 示例

示例1

已知某一序列为x(n)≠0, 0≤n≤19,其SFT为X(e^{jw}),对其SFT分别以N=32和N=16点采样,观察采样后逆变换的时域信号原时域信号的关系,时域信号对应的频谱和原时域信号频谱的关系。

代码:

%Fs=256;%采样率

%N=256; %采样点数

%n=0:N-1;%采样序列

%t=0:1/Fs:1-1/Fs;%时间序列



%x=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t-pi*90/180);%原始信号

%原始信号有直流分量,

%频率分量1:模拟频率是50Hz, 相位是1/6*pi(rad)-->对应30度的角度制,幅度是3

%频率分量2:模拟频率是75Hz, 相位是1/2*pi(rad)-->对应90度的角度制,幅度是1.5



%y=fft(x);%对原始信号做FFT

%M=abs(y);%求复频域上的模值

%plot(n, M);%绘制幅度谱曲线

%xlabel('n');



clear;%清除内存

close all;%关闭所有图形

x=[1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1];%产生信号

xf=fft(x,2048);%求信号的近似SFT

y1f=xf(1:64:2048); %在SFT上采样32点

y2f=xf(1:128:2048); %在SFT上采样16点

y1=ifft(y1f);%求y1(n)

y1sft=fft(y1,2048);%求32点采样后的SFT

y2=ifft(y2f);%求y2(n)

y2sft=fft(y2,2048);%求16点采样后的SFT

figure;

subplot(3,1,1);

stem(0:19,x);%绘制离散序列数据

grid on;%显示网格线

xlabel('n','fontsize',12);ylabel('x(n)','fontsize',12);

title('原序列(时域)','fontsize',12);



subplot(3,1,2);

plot((0:2047)/1024, abs(xf));%绘制二维曲线

grid on;

hold on;%保留当前绘图(接下来要绘制新的绘图[叠加到上面的二维曲线])

stem((0:64:2047)/1024,abs(y1f),'r');

ylim([0 110]);%设置y轴坐标范围

xlabel('\omega/\pi','fontsize',14);

ylabel('幅度(dB)','fontsize',12);

xlim([0 2048/1024]);

title('对SFT的32点采样(频域采样)','fontsize',12);



subplot(3,1,3),%画频域上采32个点对应的时域图

stem(0:31,y1);

grid on;

ylim([0 10]);

xlabel('n','fontsize',12);

ylabel('y1(n)','fontsize',12);

title('频域上采32个点对应的时域离散序列','fontsize',12);



figure;%绘制新图形

subplot(3,1,1);

stem(0:19,x);

grid on;

xlabel('n','fontsize',14);

ylabel('x(n)','fontsize',14);

title('原序列(时域)','fontsize',12);



subplot(3,1,2),plot((0:2047)/1024,abs(xf));grid on;

hold on;

stem((0:128:2047)/1024,abs(y2f),'r');

ylim([0 110]);

xlabel('\omega/\pi','fontsize',14);

ylabel('幅度(dB)','fontsize',14);

xlim([0 2048/1024]);

title('对SFT的16点采样(频域采样)','fontsize',14);



subplot(3,1,3);

stem(0:15,y2);

grid on;

xlabel('n','fontsize',14);

ylabel('y2(n)','fontsize',14);

title('频域上采16个点对应的时域离散序列','fontsize',12);



figure;

plot((0:2047)/1024,abs(xf),'red');%原序列2048点曲线(频域)

grid on;

hold on;

stem((0:128:2047)/1024,abs(y2f),'black');

ylim([0 110]);

xlim([0 2048/1024]);

xlabel('\omega/\pi','fontsize',14);

ylabel('幅度(dB)','fontsize',14);

title('不同采样点对应的SFT','fontsize',14);

legend('原序列SFT','16点采样');



figure;

plot((0:2047)/1024,abs(xf),'red');%原序列2048点曲线(频域)

grid on;

hold on;

stem((0:64:2047)/1024,abs(y1f),'blue');

ylim([0 110]);

xlim([0 2048/1024]);

xlabel('\omega/\pi','fontsize',14);

ylabel('幅度(dB)','fontsize',14);

title('不同采样点对应的SFT','fontsize',14);

legend('原序列SFT','32点采样');

运行结果如下:

简要分析和对比:

(1) 第一组:当N小于M时,周期延拓后,序列会有重叠

(2) 第二组:采样间隔是\frac{2*pi}{N},N越小,间隔越大,就采不到原序列的频谱上某些信息点

示例2

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

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

相关文章

YOLOv9有效提点|加入BiFormer、SEA、EMA、Efficient se等几十种注意力机制(三)

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、本文介绍 本文只有代码及注意力模块简介,YOLOv9中的添加教程:可以看这篇文章。 YOLOv9有效提点|加入SE、CBAM、ECA、SimA…

svn介绍 4.0

一、svn介绍(版本控制工具) 1、svn的定义: svn是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式个管…

全球十大正规伦敦金交易平台app软件最新排名(综合版)

伦敦金作为当前国际市场中较为成熟、灵活的投资产品自然备受青睐,但投资者在选择交易软件时,应该尽量选择在行业内排名较高,口碑较好的平台,这样才能获得可靠的投资服务。刚开始不太懂得如何选择伦敦金软件的时候,投资…

Carla自动驾驶仿真九:车辆变道路径规划

文章目录 前言一、关键函数二、完整代码效果 前言 本文介绍一种在carla中比较简单的变道路径规划方法,主要核心是调用carla的GlobalRoutePlanner模块和PID控制模块实现变道,大体的框架如下图所示。 一、关键函数 1、get_spawn_point(),该函数根据指定r…

如何查看docker容器里面运行的nginx的配置文件哪

要查看Docker容器内运行的Nginx配置文件的位置,你可以通过进入容器的shell环境来直接查看。Nginx的默认配置文件通常位于/etc/nginx/nginx.conf,而网站特定的配置文件通常位于/etc/nginx/conf.d/目录中。以下是步骤来查看这些配置文件: 步骤…

【嵌入式学习】网络编程day0229

一、思维导图 二、练习 TCP通信 服务器 #include <myhead.h> #define SER_IP "192.168.126.42" #define SER_PORT 8888 int main(int argc, const char *argv[]) {int wfd-1;//创建套接字if((wfdsocket(AF_INET,SOCK_STREAM,0))-1){perror("error"…

基于CNN-LSTM-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络&#xff08;CNN&#xff09;在时间序列中的应用 4.2 长短时记忆网络&#xff08;LSTM&#xff09;处理序列依赖关系 4.3 注意力机制&#xff08;Attention&#xff09; 5…

探索数据结构:深入了解顺序表的奥秘

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元…

迪杰斯特拉算法的具体应用

fill与memset的区别介绍 例一 #include <iostream> #include <algorithm> using namespace std; const int maxn500; const int INF1000000000; bool isin[maxn]{false}; int G[maxn][maxn]; int path[maxn],rescue[maxn],num[maxn]; int weight[maxn]; int cityn…

011 Linux_线程概念与创建

前言 本文将会向你介绍线程的概念&#xff0c;以及线程是怎么被创建的 线程概念 一、进程是承担系统资源的基本实体&#xff0c;线程是cpu调度的基本单位 首先&#xff0c;地址空间在逻辑上相当于进程的资源窗口&#xff0c; 每个进程都有这样一个资源窗口。通过地址空间页…

《热辣滚烫》:用坚持不懈开启逆境中的职场出路

"你只活一次&#xff0c;所以被嘲笑也没有关系&#xff0c;想哭也没有关系&#xff0c;失败更没有关系。" “人生就像一场拳击赛&#xff0c;你站不起来&#xff0c;就永远不知道自己有多强” “命运只负责洗牌&#xff0c;出牌的永远是自己。” 在今年的贺岁档电影市…

MySQL的21个SQL经验

1. 写完SQL先explain查看执行计划(SQL性能优化) 日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。 explain select userid,name,age from user where userid =10086 or age =18;2、操作delete或者update语句,加个limit(S…

C++之stack

1、stack简介 stack是实现的一个先进后出&#xff0c;后进先出的容器。它只有一个出口&#xff0c;只能操作最顶端元素。 2、stack库函数 &#xff08;1&#xff09;push() //向栈压入一个元素 &#xff08;2&#xff09;pop() //移除栈顶元素 &#xff08;3…

IO多路转接

1.select 初识select 系统提供 select 函数来实现多路复用输入 / 输出模型 . select 系统调用是用来让我们的程序监视多个文件描述符的状态变化的 ; 程序会停在 select 这里等待&#xff0c;直到被监视的文件描述符有一个或多个发生了状态改变 ; select函数模型 select的函…

LaTeX-设置表格大小

文章目录 LaTeX-设置表格大小1.创建表格2.设置表格的宽度2.1控制表格每一列的宽度2.2控制整个表格的宽度 3.设置表格的外观4.LaTeX绘制三线表 LaTeX-设置表格大小 本文介绍了LaTeX如何设置表格的大小、改变表格的外观以及如何绘制三线表。 1.创建表格 在LaTeX中创建表很耗时…

RocketMQ学习笔记一

课程来源&#xff1a;002-MQ简介_哔哩哔哩_bilibili &#xff08;尚硅谷老雷&#xff0c;时长19h&#xff09; 第1章 RocketMQ概述 1. MQ是什么&#xff1f; 2. MQ用途有哪些&#xff1f; 限流削峰&#xff1b;异步解耦&#xff1b;数据收集。 3. 常见MQ产品有哪些&对比…

10-Java装饰器模式 ( Decorator Pattern )

Java装饰器模式 摘要实现范例 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构 装饰器模式创建了一个装饰类&#xff0c;用来包装原有的类&#xff0c;并在保持类方法签名完整性的前提下&#xff0c;提供…

测试/测试开发八股——找大厂测试实习基础篇

第一部分:基础概念 1. 软件测试是什么? 在规定的条件下对一个产品或者程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 软件测试工程师的任务 2. 软件测试工程师的任务 软件测试工程师主要工作是检查软件是否有bug、是否具有稳定…

【深度学习笔记】计算机视觉——图像增广

图像增广 sec_alexnet提到过大型数据集是成功应用深度神经网络的先决条件。 图像增广在对训练图像进行一系列的随机变化之后&#xff0c;生成相似但不同的训练样本&#xff0c;从而扩大了训练集的规模。 此外&#xff0c;应用图像增广的原因是&#xff0c;随机改变训练样本可以…

Spring对IoC的实现

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…