在matlab中通过非整数移位来移动向量的元素

2024-01-07

我想通过非整数移位来移位向量,线性插值似乎不是很准确,所以我尝试使用sinc通过以下使用傅立叶变换的代码进行插值。

function y = fshift(x,s)
% FSHIFT Fractional circular shift
%   Syntax:
%
%       >> y = fshift(x,s)
%
%   FSHIFT circularly shifts the elements of vector x by a (possibly
%   non-integer) number of elements s. FSHIFT works by applying a linear
%   phase in the spectrum domain and is equivalent to CIRCSHIFT for integer
%   values of argument s (to machine precision).


needtr = 0; if size(x,1) == 1; x = x(:); needtr = 1; end;
N = size(x,1); 
r = floor(N/2)+1; f = ((1:N)-r)/(N/2); 
p = exp(-j*s*pi*f)'; 
y = ifft(fft(x).*ifftshift(p)); if isreal(x); y = real(y); end;
if needtr; y = y.'; end;

当我将方波移位整数移位时,代码中没有问题,但当移位为非整数时,输出会出现显着波动 IE。,

s=[zeros(1,20) ones(1,20) zeros(1,20)];
b=fshift(s,3.5);
stem(b)

如何克服这个问题,还有其他准确的方法吗?


尝试这个:

假设您要移动 3.5。找出过采样值是多少(即哪个值会将移位更改为整数 - 在本例中为 2)。

ov = 2;
a = 3.5*ov;
y = downsample(circshift(interp(s,2).', -a),ov);

这在边缘仍然有一些振铃,但比您的 sinc 方法少得多。我不确定这是否是由于吉布斯现象造成的,因为正如评论中提到的,您本质上是截断或泄漏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在matlab中通过非整数移位来移动向量的元素 的相关文章

  • 使用FFT算法计算

    给定在平面上的点 1 0 2 0 n 0 上发现的一组 n 个粒子电荷载流子 在 i 0 点发现的粒子电荷记为 Qi 作用在粒子上的力由以下公式给出 C is a Coulomb s constant 给出一个算法来计算 Fi 对于总复杂度
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • 如何每次使用按钮将数据添加到 MATLAB 中的现有 XLSX 文件?

    我有一个函数可以生成一些变量 例如分数 对 错 未回答 使用按钮调用此功能 问题是如何每次将函数生成的这些值添加 附加到 XLSX 文件中 或者 如何创建 MAT 文件以便可以添加它 可能的解决方案是什么 附加到 xls 文件所涉及的挑战是
  • MATLAB - GUI 和 OPC 服务器

    我想在 MATLAB 中设计一个图形用户界面 可以使用 MATLAB 的过程控制对象链接和嵌入 OPC 工具箱连续读取数据 我怎样才能实现这个 我已经设计了图形用户界面 但我无法将数据读入图形用户界面 就这样做 type opctoolMA
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 使用 FFT 执行音频分析

    我已经被这个问题困扰好几天了 并且浏览了几乎所有相关的 StackOverflow 页面 通过这次活动 我现在对 FFT 是什么及其工作原理有了更深入的了解 尽管如此 我在将其实现到我的应用程序中时遇到了极大的困难 简而言之 我想做的是为我
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • Numpy 相当于 MATLAB 的 hist [重复]

    这个问题在这里已经有答案了 由于某种原因 Numpy 的 hist 总是返回比 MATLAB 的 hist 少 1 个 bin 例如在 MATLAB 中 x 1 2 2 2 1 4 4 2 3 3 3 3 Rep Val hist x un
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • Scala 中的随机列表[重复]

    这个问题在这里已经有答案了 我对 scala 中的随机播放列表有疑问 使用scala util Random 例如我有 val a cyan val b magenta val c yellow val d key val color Ra
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • matlab 中的动画绘图

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到
  • 更新:随机将行添加到矩阵中,但遵循严格的规则

    以下是一个更大的矩阵的一部分 0 1 0000 1 0000 77 0000 100 0000 0 0 2500 0 1 0000 1 0000 72 0000 100 0000 0 2500 0 2500 0 1 0000 1 0000

随机推荐

  • HTML5 / js - 如何为两个坐标之间的直线设置动画?

    足够简单的问题 可能是错的 我希望使用 HTML5 和 或 Jquery 在直线上的两点之间制作动画 ctx beginPath ctx moveTo 0 0 a ctx lineTo 100 100 b ctx stroke http j
  • 如何设置QGraphicsScene/View到特定的坐标系

    我想在a中绘制多边形QGraphicsScene但多边形具有纬度 经度位置 在等距柱状投影中 坐标来自 90 180 gt 180 90 我怎样才能设置QGraphicsScene QGraphicsView这样的预测 非常感谢 Carlo
  • 使用 Google App Engine Blobstore 下载的文件名

    我正在使用 Google App Engine Blobstore 来存储一系列文件类型 PDF XLS 等 并尝试找到一种机制 通过该机制可以使用上传文件的原始文件名 存储在 blob info 中 来命名下载的文件 即用户在保存对话框中
  • 编译器实际上会生成机器代码吗?

    我一直在读到 在大多数情况下 如 gcc 编译器以高级语言读取源代码并吐出相应的机器代码 现在 机器代码的定义是处理器可以直接理解的代码 因此 机器代码应该仅依赖于机器 处理器 且独立于操作系统 但这种情况并非如此 即使 2 个不同的操作系
  • 如何在 Objective-C 中播种随机生成器并创建随机 int

    我在 Objective C 中见过一些随机 int 的例子 但是所有人都在抱怨每次应用程序运行时都有相同的数字序列 我读过有关播种随机数的内容 但我不确定这意味着什么 即使应用程序重新启动后 如何每次都会生成不同的随机数 是否可以将某些数
  • CMake 错误:启用语言后未设置 CMAKE_C_COMPILER

    当我构建一个包含 ndk 代码的 android 项目时 我收到以下错误 Build command failed Error while executing process home gongzelong Android Sdk cmak
  • WPF中如何处理鼠标滚轮点击事件?

    我想在单击鼠标滚轮时关闭选项卡控件中的选项卡 如何在 WPF 中捕获此事件 编辑 这是代码 private void tabMain MouseDown object sender MouseButtonEventArgs e if e C
  • 在 Docker 构建期间安装自制程序包

    我正在尝试安装 docker 映像 并希望在运行容器时预安装某些 Homebrew 软件包 我能够很好地构建它 并且版本语句按预期工作 但是当我运行时 已安装的软件包丢失了 知道我做错了什么吗 RUN git clone https git
  • 如何在 MongoDB 中的一个命令中更新增量两个字段?

    文档告诉我 如果我想设置一个值并增加另一个值 这是合法的 set x 1 inc y 1 如果我想增加两个变量怎么办 我正在尝试这个 但它不起作用 inc y 1 x 1 这可能吗 我是个白痴 inc y 1 x 1
  • 如何在Airflow MsSqlOperator中使用mssql_conn_id?

    我正在尝试在 Airflow 工作流程中使用 MsSqlOperator 但我不知道如何设置连接字符串 我尝试将 mssql conn id 设置为连接字符串本身 t2 MsSqlOperator task id sql op mssql
  • XCode:在哪里放置图像资源

    我正在尝试添加一些App Icons and Launch Images对于我的应用程序 我的代码文件在 Xcode 内按组组织 在文件系统中也是如此 我尝试拖动一个名为Resources将我的 PNG 图像添加到我的应用程序中 然后尝试将
  • 将桌面客户端直接连接到 MySQL 是否明智?

    我正在编写一个 Java 桌面客户端应用程序 用于从远程 MySQL 服务器检索数据 出于开发目的 我将其直接连接到 MySQL 服务器 即使用 DriverManager getConnection databaseURL 等 但一直打算
  • 在选项卡栏控制器内时,分割视图控制器的导航栏会变暗

    如果将拆分视图控制器放置在选项卡栏控制器内 则导航栏和选项卡栏在左侧会更暗 我已附上屏幕截图 我通过创建主从应用程序然后添加选项卡栏控制器来创建它 您如何纠正这个问题 截至撰写本文时 2017 年 5 月 此错误仍然存 在 我不敢相信苹果不
  • CoffeeScript:coffee -w 文件名.coffee 抱怨:“窗口未定义”

    在 CofeeScript 中 我通过这样做创建一个全局对象 window App init gt Running coffee w app coffee抱怨window is not defined并且不重写app js file 然而
  • 从n个已排序的数组中查找第k个最小的数

    所以 你有n个排序数组 不一定是等长的 你要返回组合数组中第k个最小的元素 即通过合并所有n个排序数组形成的组合数组 我已经尝试它和它的其他变体有一段时间了 到目前为止 我只在有两个长度相等的数组 都已排序 并且必须返回这两个数组的中位数的
  • 在商业 Java 应用程序中使用 LGPL 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个商业 Java 应用程序 我将分发 我想使用 LGPL 的 java 库 我不会修改库 该库的 LGPL 许可证对我的应用程序许可
  • 在 Firefox/Chrome 扩展程序中使用 Java/Python 库

    我有一个研究浏览器上用户行为的想法 为此我打算制作一个 Chrome Firefox 扩展来动态研究行为 我有一些 Java 和 Python 中的预定义库来分析结果 这不可能用纯 JavaScript 进行编程 现在我的问题是 是否可以使
  • 更改facet_wrap多重图中的绘图标题大小

    Can any help me change the title text size for these plots i e make them larger Script ggplot NMPSCMOR aes Length fill Y
  • Gradle 2.2.0 执行失败:SymbolForDebug

    将我的项目 以及附加的库 的 gradle 从 2 1 3 gt 2 2 0 升级后 它不再构建 并且显示 错误 任务 app transformNative libsWithStripDebugSymbolForDebug 执行失败 ja
  • 在matlab中通过非整数移位来移动向量的元素

    我想通过非整数移位来移位向量 线性插值似乎不是很准确 所以我尝试使用sinc通过以下使用傅立叶变换的代码进行插值 function y fshift x s FSHIFT Fractional circular shift Syntax g