⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cirshift.m

📁 digital signal processing-MATLAB
💻 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 + -