频率域采样

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);%求信号的近似SFTy1f=xf(1:64:2048); %在SFT上采样32点y2f=xf(1:128:2048); %在SFT上采样16点y1=ifft(y1f);%求y1(n)y1sft=fft(y1,2048);%求32点采样后的SFTy2=ifft(y2f);%求y2(n)y2sft=fft(y2,2048);%求16点采样后的SFTfigure;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

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

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

相关文章

live555源码学习(1)

1 基础组件 live项目主要包含了四个基础库、程序入口类(mediaServer)和测试程序(testProgs)。四个基础库是UsageEnvironment、BasicUsageEnvironment、groupsock和liveMedia UsageEnvironment 抽象了两个类UsageEnvironment和T…

蓝桥杯备战刷题two(自用)

1.杨辉三角形 #include<iostream> using namespace std; #define ll long long const int N2e510; int a[N]; //1 0 0 0 0 0 0 //1 1 0 0 0 0 0 //1 2 1 0 0 0 0 //1 3 3 1 0 0 0 //1 4 6 4 1 0 0 //1 5 10 10 5 1 //前缀和思想 //第一列全为1,第二列为从0开始递增1的序…

整数和浮点数在内存中的存储(大小端字节序,浮点数的存取)

目录 1.整数在内存中的存储 2.大小端字节序和字节序判断 2.1什么是大小端&#xff1f; 2.2为什么会有大小端 3.浮点数在内存中的存储 3.1浮点数的存储 3.1.1 浮点数存的过程 3.1.2 浮点数取的过程 3.2 解析 3.3 验证浮点数的存储方式 1.整数在内存中的存储 整数的二进…

前端工程化(黑马学习笔记)

前端工程化介绍 我们目前的前端开发中&#xff0c;当我们需要使用一些资源时&#xff0c;例如&#xff1a;vue.js&#xff0c;和axios.js文件&#xff0c;都是直接再工程中导入的&#xff0c;如下图所示&#xff1a; 但是上述开发模式存在如下问题&#xff1a; ● 每次开发都是…

程序项目打包发布方法,采用InstallShield软件

重点&#xff1a; 1.程序项目做出来了&#xff0c;需要打包发布给用户。如何打包是关键。 2.采用InstallShield软件进行发布。 步骤一&#xff1a;创建一个依赖三方库配置环境的bat文件的项目。 &#xff08;主要测试三方库打包 和如果有bat文件&#xff0c;需要先创建环境&…

等概率事件算法

1等概率的生成(0-8)范围内的正整数 // Math.random 数据范围[0,1) 且 是 等概率的产生随机数 // 应用&#xff1a; // 1.生成等概率的整数&#xff08;等概率的生成(0-8)范围内的正整数 int value (int) (Math.random() * 9); System.out.println("value "…

Three 基础环境 实例(总结一)

Three 基础环境 THREE三要素 &#xff08;scene场景、camera摄像机、renderer渲染器&#xff09; 1、首先我们需要引入three.js包&#xff0c;引入 three.js 对象&#xff08;命名导出->默认导入&#xff09; import * as THREE from three; 2、创建scene场景 const s…

(C语言)函数详解上

&#xff08;C语言&#xff09;函数详解上 目录&#xff1a; 1. 函数的概念 2. 库函数 2.1 标准库和头文件 2.2 库函数的使用方法 2.2.1 sqrt 功能 2.2.2 头文件包含 2.2.3 实践 2.2.4 库函数文档的一般格式 3. 自定义函数 3.1 函数的语法形式 3.2 函数的举例 4. 形参和实参 4.…

手势识别应用介绍

目录 一、功能介绍 二、安装部署说明 2.1 文件目录说明 2.2 手势识别部分 一、功能介绍 这是一个通过摄像头捕获手势&#xff0c;根据不同的手势来做出不同操作的计算机程序。目前可以识别9种手势&#xff0c;可以根据识别到的手势&#xff0c;进行打开应用、增大音量、减小音量…

uniapp+vue基于Android的图书馆借阅系统qb4y3-nodejs-php-pyton

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 框架支持:springboot/django/php/Ssm/flask/express均支持 前端开发:vue 语言&#xff1a;pythonjavanode.jsphp均支持 运行软件:idea/eclip…

Salesforce CPQ - 02 - Quote Price

最近又有客户来咨询学习Salesforce CPQ&#xff0c;所以本人总结了下近几年CPQ培训的一些实际案例拿出来分享给大家&#xff1b; 再次介绍下本人是一位Salesforce十多年的从业者。 先来介绍下Salesforce的价格体系&#xff0c;再介绍下各个Product Price是如何配置及使用的&a…

四、西瓜书——支持向量机

第六章 支持向量机 1.间隔与支持向量 支持向量机的原理是寻找与支持向量具有最大间隔的划分超平面。支持向量机具有一个重要性质: 训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关. 首先&#xff0c;超平面的方程为&#xff1a; 点到超平面的距离为&#xff…