当前位置: 首页 > news >正文

采用离散频率索引k和模拟频率f生成信号(MATLAB)

之前一直使用模拟频率f生成信号,然后今天看到别人使用了离散频率索引k,就犯迷糊了。在这里记录一下,离散频率索引k和模拟频率f的关系。
公式:
表达式一:sin(2* π* k /N* n)
表达式二:sin(2* π* f/ fs * n)
两者在形式上有很强的一致性,当满足k/N = f/fs(即f=k* fs /N)时,两个表达式完全等价。
比如说,fs=1000,N=1500,分别采用两种方式生成信号,k=350,f=233。

clc,clear,close all;

fs = 1000;  % 采样率
N = 1500;   % 采样总点数
n = 0:N-1;  % n表示采样的第n个点

% 方式一:在N个采样点中,一共振动了k个周期
k = 350;
% 方式二:生成的信号频率为f
f = 233;

xn_1 = 0.7*sin(2*pi*k/N*n);       % 采用方式一生成信号
xn_2 = 0.7*sin(2*pi*f/fs*n);      % 采用方式二生成信号
% xn_2-xn_1
max_xn_1 = max(xn_1)
max_xn_2 = max(xn_2)

xk1=fft(xn_1);
xk2=fft(xn_2);

P2=abs(xk1/N);
P1=P2(1:N/2+1);
P1(2:end-1)=2*P1(2:end-1);

P4=abs(xk2/N);
P3=P4(1:N/2+1);
P3(2:end-1)=2*P3(2:end-1);

% 频率轴
f = (0:N/2)*fs/N;
figure(1);
subplot(2,1,1);
plot(f,P1);
subplot(2,1,2);
plot(f,P3);

在这里插入图片描述
可以看到两者的最大值不一样。再看看频谱图。在这里插入图片描述

方式一的信号幅值是与生成的幅值一致,但方式二的为实际的一半。原因在于k/N=350/1500=0.23333333333333333… ,而 233/1000=0.233两者的比值不一样。
当把233增加一个小数点3时,即f=233.3
在这里插入图片描述
此时很接近实际值。但还不是理想值0.7 。当再增加小数点时,f=233.333就一致了。在这里插入图片描述
关于DFT的结果与输入信号幅值的关系,可以参考https://blog.csdn.net/qq_42622433/article/details/132312281

http://www.dtcms.com/a/109985.html

相关文章:

  • Spring Boot 集成 Redis中@Cacheable 和 @CachePut 的详细对比,涵盖功能、执行流程、适用场景、参数配置及代码示例
  • [C语言入门] 结构体
  • RNN万能逼近定理证明
  • 《2024年全球DDoS攻击态势分析》
  • 2025年内外网文件交换系统排名分析
  • 【3.软件工程】3.5 V开发模型
  • 深度学习与神经网络 | 邱锡鹏 | 第二章学习笔记
  • 微服务。1 微服务
  • Java学习总结-IO流
  • 如何免费制作办事指南二维码
  • 如何进行风电场微观选址
  • 如何在Windows上找到Python安装路径?两种方法快速定位
  • 深度学习deeplearn3
  • 基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战
  • 质检LIMS系统在环境监测站的应用 环境监测场景下的LIMS系统应用
  • thinkphp每条一级栏目中可自定义添加多条二级栏目,每条二级栏目包含多个字段信息
  • 连接与效率的艺术:解码ToB 移动端协同产品的用户体验设计奥秘
  • PyTorch优化器
  • K8S学习之基础七十三:Istio简介和部署
  • 牛客 简写单词
  • NO.62十六届蓝桥杯备战|基础算法-二分查找|查找元素的第一个和最后一个位置|牛可乐和魔法封印|A-B数对|烦恼的高考意愿(C++)
  • 原生JS写一个JSON格式化工具
  • LeeCode 5. 最长回文字串
  • QT Quick(C++)跨平台应用程序项目实战教程 6 — 弹出框
  • UE5学习笔记 FPS游戏制作40 制作鼠标移入UI显示提示背景色的效果
  • C 语言中的递归:概念、应用与实例解析
  • 3D动画动作捕捉设备:惯性动捕赋能轻量级影视动画创作
  • Python Cookbook-5.1 对字典排序
  • 新版本AndroidStudio配置maven阿里云镜像
  • AI技术新突破:多模态与语音大模型重塑智能交互