📄 cirshift.m
字号:
function y = cirshift(x,m,N)
%《数字信号处理教程——MATLAB释义与实现》子程序
% 循环移位子程序
% 电子工业出版社出版 陈怀琛编著 2004年9月
%
% [y] = cirshift(x,m,N)
% -------------------------------------------------------------------
% 长度为 N 的x序列: (时域)作m采样点循环移位
% y = 包含循环移位的输出序列
% x = 长度 <= N的输入序列
% m = 移位采样数
% N = 循环缓冲器长度
% 方法: y(n) = x((n-m) mod N)
%
% 检查x的长度
if length(x) > N
error('N 必须 >= x的长度')
end
x = [x zeros(1,N-length(x))]; % 将x的长度扩展为N
n = [0:1:N-1]; % x原来的位置序列
n1 = mod(n-m,N); % 将原位置序列移位m再求其在主值区间的值
y = x(n1+1); % y为移位后的x(MATLAB下标从1开始,mod的最小值从0开始,所以要加一)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -